obsidian-linear-sync
Pass
Audited by Gen Agent Trust Hub on Aug 27, 2026
Risk Level: SAFECOMMAND_EXECUTIONEXTERNAL_DOWNLOADSDATA_EXFILTRATIONINDIRECT_PROMPT_INJECTION
Full Analysis
- [COMMAND_EXECUTION]: The skill uses
subprocess.runwithin its Python script to execute theprettierformatting tool on generated Markdown files. It also calls theqmdutility to update and embed vault indexes. These operations are restricted to formatting and indexing tasks and include pre-execution environment checks. - [EXTERNAL_DOWNLOADS]: The skill performs network requests to the official Linear GraphQL API (
api.linear.app) to fetch project and ticket data. These operations are limited to read-only queries and target a well-known, trusted service domain. - [DATA_EXFILTRATION]: The skill accesses the local file path
~/.config/linear/api-keyand environment variables to retrieve the Linear API token. This is a standard method for managing service credentials for CLI-based tools. The script includes specific logic to ensure the key is never logged or interpolated into error messages. - [INDIRECT_PROMPT_INJECTION]: The skill ingests untrusted data (ticket titles, descriptions, and comments) from Linear. It mitigates potential injection risks through several layers:
- Ingestion points: Data is fetched from the Linear API and processed by the
scripts/linear_sync.pyscript rather than the agent directly. - Boundary markers: Machine-generated content is strictly delimited by
<!-- linear:begin -->and<!-- linear:end -->markers to protect user-owned notes. - Capability inventory: The skill's write capabilities are limited to a specific vault subdirectory (
01 Projects/Linear/), and it explicitly lacksEditorWritetool permissions for the agent. - Sanitization: The
render_markdownfunction performs extensive sanitization, including stripping unauthorized HTML, demoting headings to preserve note structure, and masking code blocks during the rewriting process.
Audit Metadata