The skill intentionally stores notes, profiles, conversation logs, and vector indexes under local Claude skill directories. Most static hits are false positives from markdown code fences, documentation snippets, or local paths, but the package still needs review because it installs scripts, writes local databases, reads cache paths, and documents scoped recursive deletion commands.
The documentation includes a recursive deletion command under the user home Claude skill data directory. It is scoped, but destructive commands in user documentation can remove local data.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
print(f"💾 Connecting to vector database at: {self.db_path}")
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
f"Failed to connect to database at {self.db_path}. "
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
Capability review items (47)
These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.
The documentation installs dependencies from a requirements file inside a hidden Claude skill directory. This is normal setup but requires user trust in local package files.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill includes an install.sh shell installer. Shell installers modify local files and require explicit user trust even when no malicious command is evident.
The documentation installs dependencies from a requirements file inside a hidden Claude skill directory. This is normal setup but requires user trust in local package files.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
with open(self.metadata_file, 'w', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
with open(daily_file, 'a', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
with open(summary_file, 'w', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
with open(self.timeline_path, 'w', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
with open(self.state_file, 'w', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
with open(taxonomy_file, 'w', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
with open(self.index_path, 'w', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
with open(report_file, 'w', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The skill intentionally stores notes, profiles, conversation logs, and vector indexes under local Claude skill directories. Most static hits are false positives from markdown code fences, documentation snippets, or local paths, but the package still needs review because it installs scripts, writes local databases, reads cache paths, and documents scoped recursive deletion commands.
The documentation includes a recursive deletion command under the user home Claude skill data directory. It is scoped, but destructive commands in user documentation can remove local data.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
print(f"💾 Connecting to vector database at: {self.db_path}")
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
f"Failed to connect to database at {self.db_path}. "
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
The skill stores notes, conversations, or vector data in a local SQLite or Chroma database. This is core functionality but may contain sensitive user content.
Capability review items (47)
These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.
The documentation installs dependencies from a requirements file inside a hidden Claude skill directory. This is normal setup but requires user trust in local package files.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill includes an install.sh shell installer. Shell installers modify local files and require explicit user trust even when no malicious command is evident.
The documentation installs dependencies from a requirements file inside a hidden Claude skill directory. This is normal setup but requires user trust in local package files.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
with open(self.metadata_file, 'w', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
with open(daily_file, 'a', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
with open(summary_file, 'w', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
with open(self.timeline_path, 'w', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
with open(self.state_file, 'w', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
with open(taxonomy_file, 'w', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
with open(self.index_path, 'w', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
with open(report_file, 'w', encoding='utf-8') as f:
The script writes metadata, logs, reports, indexes, or timelines to local files. This is expected for the skill but has privacy and retention implications.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The skill intentionally persists notes, conversation state, or indexes in a hidden Claude skill directory. This is expected behavior but creates privacy and retention risk.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
The installer deletes existing skill files or data paths under its target directory. The path is scoped, but recursive deletion can remove user data if the target resolves unexpectedly.
Most static command detections are false positives from Markdown code fences, documentation, normal imports, and safe local cache paths. Confirmed risks include persistent storage of conversations, notes, tags, emotion data, and vector data under hidden home directories, plus temporary backup of skill data during installation. Semantic review also found remote model loading with trusted code enabled, default conversation logging, and opaque reuse of stored personal context.
The vector indexer loads the embedding model with trust_remote_code=True. When a remote model is downloaded, custom model code can execute during model loading.
The code directly passes trust_remote_code=True to SentenceTransformer for the configured model name. This is a recognized remote-code execution risk for model loading.
The skill instructs Claude to record each conversation and store all data in the hidden skill data directory unless the user explicitly opts out. This can retain sensitive prompts, replies, notes, and code by default.
The cited instructions explicitly require recording every conversation and describe automatic conversation history storage. The code path in conversation_logger.py supports that behavior.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
print(f"💾 Connecting to vector database at: {self.db_path}")
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
f"Failed to connect to database at {self.db_path}. "
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The AI persona template tells the assistant to introduce user information like its own memories and not mention that it came from records. This weakens transparency around stored personal data use.
The cited template text directly asks the assistant to avoid saying that recalled user information came from records. This is a clear transparency and consent concern rather than a scanner pattern.
Capability review items (29)
These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The orchestrator defaults runtime data to ~/.claude/skills/ai-partner-chat/data. This hidden home-directory storage contains long-term note and conversation memory.
The orchestrator defaults runtime data to ~/.claude/skills/ai-partner-chat/data. This hidden home-directory storage contains long-term note and conversation memory.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The skill ships a Bash installer that copies files and removes old skill subdirectories under ~/.claude. This creates a real external command surface even though execution is explicit.
The installer targets ~/.claude/skills/ai-partner-chat and modifies a hidden home-directory skill location. That is expected for installation but security-sensitive for marketplace auto-install policy.
The installer backs up existing skill data into /tmp using a predictable path. That can expose personal memory data to local temp-directory risks during installation.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The installer backs up existing skill data into /tmp using a predictable path. That can expose personal memory data to local temp-directory risks during installation.
with open(self.metadata_file, 'w', encoding='utf-8') as f:
This is an actual file write of conversation, note, tag, emotion, or report metadata. The behavior is intended, but it persists personal context and should be consented and managed.
with open(daily_file, 'a', encoding='utf-8') as f:
This is an actual file write of conversation, note, tag, emotion, or report metadata. The behavior is intended, but it persists personal context and should be consented and managed.
with open(summary_file, 'w', encoding='utf-8') as f:
This is an actual file write of conversation, note, tag, emotion, or report metadata. The behavior is intended, but it persists personal context and should be consented and managed.
with open(self.timeline_path, 'w', encoding='utf-8') as f:
This is an actual file write of conversation, note, tag, emotion, or report metadata. The behavior is intended, but it persists personal context and should be consented and managed.
with open(self.state_file, 'w', encoding='utf-8') as f:
This is an actual file write of conversation, note, tag, emotion, or report metadata. The behavior is intended, but it persists personal context and should be consented and managed.
The orchestrator defaults runtime data to ~/.claude/skills/ai-partner-chat/data. This hidden home-directory storage contains long-term note and conversation memory.
The orchestrator defaults runtime data to ~/.claude/skills/ai-partner-chat/data. This hidden home-directory storage contains long-term note and conversation memory.
with open(self.index_path, 'w', encoding='utf-8') as f:
This is an actual file write of conversation, note, tag, emotion, or report metadata. The behavior is intended, but it persists personal context and should be consented and managed.
with open(report_file, 'w', encoding='utf-8') as f:
This is an actual file write of conversation, note, tag, emotion, or report metadata. The behavior is intended, but it persists personal context and should be consented and managed.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
Static false positives ignored (1)
These static matches were dismissed by semantic review or matched schema-only tokens, so they are shown for transparency but do not drive the quality score.
Most static command detections are false positives from Markdown code fences, documentation, normal imports, and safe local cache paths. Confirmed risks include persistent storage of conversations, notes, tags, emotion data, and vector data under hidden home directories, plus temporary backup of skill data during installation. Semantic review also found remote model loading with trusted code enabled, default conversation logging, and opaque reuse of stored personal context.
The vector indexer loads the embedding model with trust_remote_code=True. When a remote model is downloaded, custom model code can execute during model loading.
The code directly passes trust_remote_code=True to SentenceTransformer for the configured model name. This is a recognized remote-code execution risk for model loading.
The skill instructs Claude to record each conversation and store all data in the hidden skill data directory unless the user explicitly opts out. This can retain sensitive prompts, replies, notes, and code by default.
The cited instructions explicitly require recording every conversation and describe automatic conversation history storage. The code path in conversation_logger.py supports that behavior.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
print(f"💾 Connecting to vector database at: {self.db_path}")
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
f"Failed to connect to database at {self.db_path}. "
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The skill stores notes, conversations, and code embeddings in a persistent ChromaDB SQLite-backed vector database. This is security-sensitive because it can contain personal or proprietary content.
The AI persona template tells the assistant to introduce user information like its own memories and not mention that it came from records. This weakens transparency around stored personal data use.
The cited template text directly asks the assistant to avoid saying that recalled user information came from records. This is a clear transparency and consent concern rather than a scanner pattern.
Capability review items (29)
These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The orchestrator defaults runtime data to ~/.claude/skills/ai-partner-chat/data. This hidden home-directory storage contains long-term note and conversation memory.
The orchestrator defaults runtime data to ~/.claude/skills/ai-partner-chat/data. This hidden home-directory storage contains long-term note and conversation memory.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The skill ships a Bash installer that copies files and removes old skill subdirectories under ~/.claude. This creates a real external command surface even though execution is explicit.
The installer targets ~/.claude/skills/ai-partner-chat and modifies a hidden home-directory skill location. That is expected for installation but security-sensitive for marketplace auto-install policy.
The installer backs up existing skill data into /tmp using a predictable path. That can expose personal memory data to local temp-directory risks during installation.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The installer backs up existing skill data into /tmp using a predictable path. That can expose personal memory data to local temp-directory risks during installation.
with open(self.metadata_file, 'w', encoding='utf-8') as f:
This is an actual file write of conversation, note, tag, emotion, or report metadata. The behavior is intended, but it persists personal context and should be consented and managed.
with open(daily_file, 'a', encoding='utf-8') as f:
This is an actual file write of conversation, note, tag, emotion, or report metadata. The behavior is intended, but it persists personal context and should be consented and managed.
with open(summary_file, 'w', encoding='utf-8') as f:
This is an actual file write of conversation, note, tag, emotion, or report metadata. The behavior is intended, but it persists personal context and should be consented and managed.
with open(self.timeline_path, 'w', encoding='utf-8') as f:
This is an actual file write of conversation, note, tag, emotion, or report metadata. The behavior is intended, but it persists personal context and should be consented and managed.
with open(self.state_file, 'w', encoding='utf-8') as f:
This is an actual file write of conversation, note, tag, emotion, or report metadata. The behavior is intended, but it persists personal context and should be consented and managed.
The orchestrator defaults runtime data to ~/.claude/skills/ai-partner-chat/data. This hidden home-directory storage contains long-term note and conversation memory.
The orchestrator defaults runtime data to ~/.claude/skills/ai-partner-chat/data. This hidden home-directory storage contains long-term note and conversation memory.
with open(self.index_path, 'w', encoding='utf-8') as f:
This is an actual file write of conversation, note, tag, emotion, or report metadata. The behavior is intended, but it persists personal context and should be consented and managed.
with open(report_file, 'w', encoding='utf-8') as f:
This is an actual file write of conversation, note, tag, emotion, or report metadata. The behavior is intended, but it persists personal context and should be consented and managed.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
The referenced path is the hidden home-directory location where this skill stores long-term personal memory data. That storage model is intentional but privacy-sensitive.
Static false positives ignored (1)
These static matches were dismissed by semantic review or matched schema-only tokens, so they are shown for transparency but do not drive the quality score.
Static analysis reported many command, filesystem, network, and obfuscation signals. Most shell/backtick and weak-crypto hits are documentation or regex false positives, and no prompt injection attempt was found. The skill still presents high risk because it loads a model with trust_remote_code=True and is designed to persist user conversations and project notes by default.
The vector indexer loads BAAI/bge-m3 with trust_remote_code=True. If the model source changes or is compromised, model loading can execute untrusted code in the user environment.
The code explicitly enables trust_remote_code while loading an external embedding model. This is a known supply-chain execution risk, even if the intended model is legitimate.
The skill instructions tell Claude to record every conversation, and the logger writes user and AI messages to Markdown files and vector storage when importance is medium or higher.
The behavior is directly documented in the skill instructions and implemented in the logger. It is local storage, but it can retain sensitive conversation content by default.
The note processor scans Markdown files under the project notes directory, reads their contents, and sends them to the orchestrator for tagging, analysis, and vector indexing.
The scanner behavior and persistence path are explicit in both the skill instructions and implementation. This is legitimate functionality but needs user consent and privacy warnings.
The installer writes into ~/.claude/skills/ai-partner-chat and removes selected old subdirectories before copying new files. The deletion is scoped, but it still changes hidden application data.
The installer uses a fixed target under the user home directory and scoped rm commands. This is not malicious, but marketplace users should understand the filesystem changes.
The README documents rm -rf for rebuilding the local vector database. It is a manual troubleshooting command and targets only the skill vector database path.
The command is visible in documentation and is scoped to the skill database. It can delete user memory data but is not executed automatically.
Static false positives ignored (2)
These static matches were dismissed by semantic review or matched schema-only tokens, so they are shown for transparency but do not drive the quality score.
Static Command Alerts Are Mostly Markdown Examples
Many shell, Python, and PowerShell alerts occur inside README and SKILL usage examples. They are not hidden runtime execution paths, but users may copy and run them.
The cited locations are fenced documentation snippets. They are relevant user guidance, but they are not automatic command execution by the skill.
The weak-crypto hits correspond to taxonomy words and prose such as design-patterns, system-design, and query descriptions, not cryptographic primitives.
The inspected lines contain tag names or ordinary prose. No hashing, encryption, or weak cryptographic algorithm usage is present there.
After detailed analysis, this is a legitimate AI learning companion skill. All static findings are false positives: backticks are documentation examples, cryptographic patterns are benign tech lists, hidden file access is standard Claude Code skill storage, and SQLite/ChromaDB operations are intended local persistence. No malicious intent or credential exfiltration detected.
After detailed analysis, this is a legitimate AI learning companion skill. All static findings are false positives: backticks are documentation examples, cryptographic patterns are benign tech lists, hidden file access is standard Claude Code skill storage, and SQLite/ChromaDB operations are intended local persistence. No malicious intent or credential exfiltration detected.
Legitimate AI learning assistant skill with local data storage. All data stays on user's machine via ChromaDB. Network access only for downloading embedding model from HuggingFace.
17
Files scanned
3,580
Lines analyzed
5
Review items
0
False positives ignored
Capability review items (2)
These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.
The skill scans project 'notes/' directory to process markdown files. This is expected behavior for a note processing skill. Access is limited to notes directory within projects where the skill is activated.
The BAAI/bge-m3 embedding model (~4.3GB) is downloaded from HuggingFace on first run. This is documented and necessary for vector embeddings. Model cached locally for subsequent runs.
Legitimate AI learning assistant skill with local data storage. All data stays on user's machine via ChromaDB. Network access only for downloading embedding model from HuggingFace.
17
Files scanned
3,580
Lines analyzed
5
Review items
0
False positives ignored
Capability review items (2)
These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.
The skill scans project 'notes/' directory to process markdown files. This is expected behavior for a note processing skill. Access is limited to notes directory within projects where the skill is activated.
The BAAI/bge-m3 embedding model (~4.3GB) is downloaded from HuggingFace on first run. This is documented and necessary for vector embeddings. Model cached locally for subsequent runs.
Legitimate AI learning assistant skill with local data storage. All data stays on user's machine via ChromaDB. Network access only for downloading embedding model from HuggingFace.
17
Files scanned
3,580
Lines analyzed
5
Review items
0
False positives ignored
Capability review items (2)
These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.
The skill scans project 'notes/' directory to process markdown files. This is expected behavior for a note processing skill. Access is limited to notes directory within projects where the skill is activated.
The BAAI/bge-m3 embedding model (~4.3GB) is downloaded from HuggingFace on first run. This is documented and necessary for vector embeddings. Model cached locally for subsequent runs.