The best agent harness.
This report summarizes scanner evidence for mindfold-ai/Trellis, a TypeScript project with 14,916 GitHub stars. SynthScan examined 431,751 lines of code across 2000 source files, recording 2140 pattern matches distributed across 19 syntactic categories. The legacy adjusted pattern signal is 11.7 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1007 finding(s).
Are imports declared and package/API names verified? 178 finding(s).
Are wrappers, guards, and repeated structures necessary? 1220 finding(s).
Which changes need focused human review? 2140 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 2140 distinct pattern matches across 19 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | .cursor/hooks/inject-subagent-context.py | 53 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .cursor/hooks/inject-subagent-context.py | 55 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .cursor/hooks/inject-subagent-context.py | 61 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .cursor/hooks/inject-subagent-context.py | 63 | # ============================================================================= | COMMENT |
| MEDIUM | .cursor/hooks/inject-subagent-context.py | 169 | # ============================================================================= | COMMENT |
| MEDIUM | .cursor/hooks/inject-subagent-context.py | 175 | # ============================================================================= | COMMENT |
| MEDIUM | …trellis-meta/references/claude-code/worktree-config.md | 50 | # ============================================================================= | COMMENT |
| MEDIUM | …trellis-meta/references/claude-code/worktree-config.md | 52 | # ============================================================================= | COMMENT |
| MEDIUM | …trellis-meta/references/claude-code/worktree-config.md | 77 | # ============================================================================= | COMMENT |
| MEDIUM | …trellis-meta/references/claude-code/worktree-config.md | 79 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .claude/hooks/inject-workflow-state.py | 79 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .claude/hooks/inject-workflow-state.py | 81 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .claude/hooks/inject-workflow-state.py | 97 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .claude/hooks/inject-workflow-state.py | 99 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .claude/hooks/inject-workflow-state.py | 198 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .claude/hooks/inject-workflow-state.py | 200 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .claude/hooks/inject-workflow-state.py | 383 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .claude/hooks/inject-workflow-state.py | 385 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .claude/hooks/inject-subagent-context.py | 53 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .claude/hooks/inject-subagent-context.py | 55 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .claude/hooks/inject-subagent-context.py | 61 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .claude/hooks/inject-subagent-context.py | 63 | # ============================================================================= | COMMENT |
| MEDIUM | .claude/hooks/inject-subagent-context.py | 169 | # ============================================================================= | COMMENT |
| MEDIUM | .claude/hooks/inject-subagent-context.py | 175 | # ============================================================================= | COMMENT |
| MEDIUM | …trellis-meta/references/claude-code/worktree-config.md | 50 | # ============================================================================= | COMMENT |
| MEDIUM | …trellis-meta/references/claude-code/worktree-config.md | 52 | # ============================================================================= | COMMENT |
| MEDIUM | …trellis-meta/references/claude-code/worktree-config.md | 77 | # ============================================================================= | COMMENT |
| MEDIUM | …trellis-meta/references/claude-code/worktree-config.md | 79 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .codex/hooks/inject-workflow-state.py | 79 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .codex/hooks/inject-workflow-state.py | 81 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .codex/hooks/inject-workflow-state.py | 97 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .codex/hooks/inject-workflow-state.py | 99 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .codex/hooks/inject-workflow-state.py | 198 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .codex/hooks/inject-workflow-state.py | 200 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .codex/hooks/inject-workflow-state.py | 383 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .codex/hooks/inject-workflow-state.py | 385 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | .codex/hooks/inject-subagent-context.py | 53 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .codex/hooks/inject-subagent-context.py | 55 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .codex/hooks/inject-subagent-context.py | 61 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | .codex/hooks/inject-subagent-context.py | 63 | # ============================================================================= | COMMENT |
| MEDIUM | .codex/hooks/inject-subagent-context.py | 169 | # ============================================================================= | COMMENT |
| MEDIUM | .codex/hooks/inject-subagent-context.py | 175 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | packages/cli/src/templates/markdown/worktree.yaml.txt | 6 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | packages/cli/src/templates/markdown/worktree.yaml.txt | 8 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | packages/cli/src/templates/markdown/worktree.yaml.txt | 14 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | packages/cli/src/templates/markdown/worktree.yaml.txt | 16 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/cli/src/templates/markdown/worktree.yaml.txt | 27 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/cli/src/templates/markdown/worktree.yaml.txt | 29 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/cli/src/templates/markdown/worktree.yaml.txt | 42 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | packages/cli/src/templates/markdown/worktree.yaml.txt | 44 | #------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …s/cli/src/templates/pi/extensions/trellis/index.ts.txt | 21 | // ── Types ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/cli/src/templates/pi/extensions/trellis/index.ts.txt | 63 | // ── Lazy-load pi-tui (avoid failing top-level imports) ───────────────── | COMMENT |
| MEDIUM | …s/cli/src/templates/pi/extensions/trellis/index.ts.txt | 89 | // ── Constants ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/cli/src/templates/pi/extensions/trellis/index.ts.txt | 117 | // ── State types ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/cli/src/templates/pi/extensions/trellis/index.ts.txt | 166 | // ── Native partial-update card state ────────────────────────────────── | COMMENT |
| MEDIUM | …s/cli/src/templates/pi/extensions/trellis/index.ts.txt | 413 | // ── Utilities ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/cli/src/templates/pi/extensions/trellis/index.ts.txt | 627 | // ── Pi CLI path resolution ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/cli/src/templates/pi/extensions/trellis/index.ts.txt | 719 | // ── BoundedBufferCollector ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/cli/src/templates/pi/extensions/trellis/index.ts.txt | 755 | // ── Context Injection Limits (issue #441) ─────────────────────────────── | COMMENT |
| MEDIUM | …s/cli/src/templates/pi/extensions/trellis/index.ts.txt | 755 | // ── Context Injection Limits (issue #441) ─────────────────────────────── | COMMENT |
| 374 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .cursor/hooks/session-start.py | 0 | normalize unix-style shell paths to real windows paths. on windows, shells like git bash / msys2 / cygwin may report pat | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | normalize unix-style shell paths to real windows paths. on windows, shells like git bash / msys2 / cygwin may report pat | STRING |
| HIGH | .codex/hooks/session-start.py | 0 | normalize unix-style shell paths to real windows paths. on windows, shells like git bash / msys2 / cygwin may report pat | STRING |
| HIGH | …kages/cli/src/templates/copilot/hooks/session-start.py | 0 | normalize unix-style shell paths to real windows paths. on windows, shells like git bash / msys2 / cygwin may report pat | STRING |
| HIGH | packages/cli/src/templates/codex/hooks/session-start.py | 0 | normalize unix-style shell paths to real windows paths. on windows, shells like git bash / msys2 / cygwin may report pat | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | normalize unix-style shell paths to real windows paths. on windows, shells like git bash / msys2 / cygwin may report pat | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | <first-reply-notice> on the first visible assistant reply in this session, briefly acknowledge that trellis sessionstart | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | <first-reply-notice> on the first visible assistant reply in this session, briefly acknowledge that trellis sessionstart | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | <first-reply-notice> on the first visible assistant reply in this session, briefly acknowledge that trellis sessionstart | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | <first-reply-notice> on the first visible assistant reply in this session, briefly acknowledge that trellis sessionstart | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | <first-reply-notice> on the first visible assistant reply in this session, briefly acknowledge that trellis sessionstart | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | <first-reply-notice> on the first visible assistant reply in this session, briefly acknowledge that trellis sessionstart | STRING |
| HIGH | .codex/hooks/session-start.py | 0 | <first-reply-notice> on the first visible assistant reply in this session, briefly acknowledge that trellis sessionstart | STRING |
| HIGH | packages/cli/src/templates/codex/hooks/session-start.py | 0 | <first-reply-notice> on the first visible assistant reply in this session, briefly acknowledge that trellis sessionstart | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | first-reply notice, carrying the trellis update reminder when there is one. the reminder has to reach the *user*, not ju | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | first-reply notice, carrying the trellis update reminder when there is one. the reminder has to reach the *user*, not ju | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | first-reply notice, carrying the trellis update reminder when there is one. the reminder has to reach the *user*, not ju | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | return true iff jsonl has at least one row with a ``file`` field. a newly created jsonl is empty, and older tasks may st | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | return true iff jsonl has at least one row with a ``file`` field. a newly created jsonl is empty, and older tasks may st | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | return true iff jsonl has at least one row with a ``file`` field. a newly created jsonl is empty, and older tasks may st | STRING |
| HIGH | .codex/hooks/session-start.py | 0 | return true iff jsonl has at least one row with a ``file`` field. a newly created jsonl is empty, and older tasks may st | STRING |
| HIGH | …kages/cli/src/templates/copilot/hooks/session-start.py | 0 | return true iff jsonl has at least one row with a ``file`` field. a newly created jsonl is empty, and older tasks may st | STRING |
| HIGH | packages/cli/src/templates/codex/hooks/session-start.py | 0 | return true iff jsonl has at least one row with a ``file`` field. a newly created jsonl is empty, and older tasks may st | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | check if any platform's non-interactive flag is set, or if trellis hooks are explicitly disabled via trellis_hooks=0 / t | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | check if any platform's non-interactive flag is set, or if trellis hooks are explicitly disabled via trellis_hooks=0 / t | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | check if any platform's non-interactive flag is set, or if trellis hooks are explicitly disabled via trellis_hooks=0 / t | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | expose trellis session identity to later claude code bash commands. claude code sessionstart hooks can append exports to | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | expose trellis session identity to later claude code bash commands. claude code sessionstart hooks can append exports to | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | expose trellis session identity to later claude code bash commands. claude code sessionstart hooks can append exports to | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | return the last `export trellis_context_id=` line in env_file, if any. a missing file means "no previous export" (the ca | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | return the last `export trellis_context_id=` line in env_file, if any. a missing file means "no previous export" (the ca | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | return the last `export trellis_context_id=` line in env_file, if any. a missing file means "no previous export" (the ca | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | ask common.session_context whether a trellis update is available. throttling lives there: the first sessionstart of a se | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | ask common.session_context whether a trellis update is available. throttling lives there: the first sessionstart of a se | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | ask common.session_context whether a trellis update is available. throttling lives there: the first sessionstart of a se | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | return compact active-task status, artifact presence, and next action. | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | return compact active-task status, artifact presence, and next action. | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | return compact active-task status, artifact presence, and next action. | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | load trellis config for session-start decisions. returns: (is_mono, packages_dict, spec_scope, task_pkg, default_pkg) | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | load trellis config for session-start decisions. returns: (is_mono, packages_dict, spec_scope, task_pkg, default_pkg) | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | load trellis config for session-start decisions. returns: (is_mono, packages_dict, spec_scope, task_pkg, default_pkg) | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | check for legacy spec directory structure in monorepo. returns warning message if legacy structure detected, none otherw | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | check for legacy spec directory structure in monorepo. returns warning message if legacy structure detected, none otherw | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | check for legacy spec directory structure in monorepo. returns warning message if legacy structure detected, none otherw | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | resolve which packages should have their specs injected. returns: set of package names to include, or none for full scan | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | resolve which packages should have their specs injected. returns: set of package names to include, or none for full scan | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | resolve which packages should have their specs injected. returns: set of package names to include, or none for full scan | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | extract lines starting at `## start_header` up to (but excluding) `## end_header`. both parameters are full header lines | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | extract lines starting at `## start_header` up to (but excluding) `## end_header`. both parameters are full header lines | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | extract lines starting at `## start_header` up to (but excluding) `## end_header`. both parameters are full header lines | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | remove `[workflow-state:status]...[/workflow-state:status]` blocks. the tag blocks live inside `## phase index` (since v | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | remove `[workflow-state:status]...[/workflow-state:status]` blocks. the tag blocks live inside `## phase index` (since v | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | remove `[workflow-state:status]...[/workflow-state:status]` blocks. the tag blocks live inside `## phase index` (since v | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | inject only the compact phase index summary for sessionstart. | STRING |
| HIGH | .claude/hooks/session-start.py | 0 | inject only the compact phase index summary for sessionstart. | STRING |
| HIGH | .codex/hooks/session-start.py | 0 | inject only the compact phase index summary for sessionstart. | STRING |
| HIGH | …kages/cli/src/templates/copilot/hooks/session-start.py | 0 | inject only the compact phase index summary for sessionstart. | STRING |
| HIGH | packages/cli/src/templates/codex/hooks/session-start.py | 0 | inject only the compact phase index summary for sessionstart. | STRING |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 0 | inject only the compact phase index summary for sessionstart. | STRING |
| HIGH | .cursor/hooks/session-start.py | 0 | <session-context> trellis compact sessionstart context. use it to orient the session; load details on demand. </session- | STRING |
| 188 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .cursor/agents/trellis-check.md | 52 | ### Step 1: Get Changes | COMMENT |
| LOW | .cursor/agents/trellis-check.md | 59 | ### Step 2: Check Against Specs and Task Artifacts | COMMENT |
| LOW | .cursor/agents/trellis-check.md | 71 | ### Step 3: Self-Fix | COMMENT |
| LOW | .cursor/agents/trellis-check.md | 79 | ### Step 4: Run Verification | COMMENT |
| LOW⚡ | .cursor/agents/trellis-research.md | 29 | ### Step 1: Resolve Current Task | COMMENT |
| LOW⚡ | .cursor/agents/trellis-research.md | 39 | ### Step 2: Understand Search Request | COMMENT |
| LOW⚡ | .cursor/agents/trellis-research.md | 43 | ### Step 3: Execute Search | COMMENT |
| LOW⚡ | .cursor/agents/trellis-research.md | 47 | ### Step 4: Persist Each Topic | COMMENT |
| LOW⚡ | .cursor/agents/trellis-research.md | 51 | ### Step 5: Report to Main Agent | COMMENT |
| LOW | .cursor/commands/trellis-publish-skill.md | 11 | ### Step 1: Identify the Skill | COMMENT |
| LOW | .cursor/commands/trellis-publish-skill.md | 29 | ### Step 2: Check Existing Docs | COMMENT |
| LOW | .cursor/commands/trellis-publish-skill.md | 39 | ### Step 3: Create EN Detail Page | COMMENT |
| LOW⚡ | .cursor/commands/trellis-publish-skill.md | 86 | ### Step 4: Create ZH Detail Page | COMMENT |
| LOW⚡ | .cursor/commands/trellis-publish-skill.md | 90 | ### Step 5: Update Index Pages | COMMENT |
| LOW⚡ | .cursor/commands/trellis-publish-skill.md | 96 | ### Step 6: Update docs.json | COMMENT |
| LOW⚡ | .cursor/commands/trellis-publish-skill.md | 103 | ### Step 7: Commit and Push Docs | COMMENT |
| LOW⚡ | .cursor/commands/trellis-publish-skill.md | 113 | ### Step 8: Ensure Skill on Main Branch | COMMENT |
| LOW | .cursor/commands/trellis-publish-skill.md | 136 | ### Step 9: Confirm | COMMENT |
| LOW⚡ | .cursor/commands/trellis-create-manifest.md | 11 | ### Step 1: Identify Last Release | COMMENT |
| LOW⚡ | .cursor/commands/trellis-create-manifest.md | 20 | ### Step 2: Gather Changes | COMMENT |
| LOW⚡ | .cursor/commands/trellis-create-manifest.md | 30 | ### Step 3: Analyze Each Commit | COMMENT |
| LOW⚡ | .cursor/commands/trellis-create-manifest.md | 37 | ### Step 4: Draft Changelog | COMMENT |
| LOW | .cursor/commands/trellis-create-manifest.md | 49 | ### Step 5: Determine Manifest Fields | COMMENT |
| LOW | .cursor/commands/trellis-create-manifest.md | 58 | ### Step 6: Create Manifest | COMMENT |
| LOW | .cursor/commands/trellis-create-manifest.md | 70 | ### Step 7: Review and Confirm | COMMENT |
| LOW⚡ | .cursor/commands/trellis-continue.md | 7 | ## Step 1: Load Current Context | COMMENT |
| LOW⚡ | .cursor/commands/trellis-continue.md | 15 | ## Step 2: Load the Phase Index | COMMENT |
| LOW⚡ | .cursor/commands/trellis-continue.md | 23 | ## Step 3: Decide Where You Are | COMMENT |
| LOW | .cursor/commands/trellis-continue.md | 42 | ## Step 4: Load the Specific Step | COMMENT |
| LOW | .cursor/commands/trellis-finish-work.md | 5 | ## Step 1: Survey current state | COMMENT |
| LOW | .cursor/commands/trellis-finish-work.md | 19 | ## Step 2: Sanity check — classify dirty paths | COMMENT |
| LOW | .cursor/commands/trellis-finish-work.md | 45 | ## Step 3: Archive task(s) | COMMENT |
| LOW | .cursor/commands/trellis-finish-work.md | 55 | ## Step 4: Record session journal | COMMENT |
| LOW | .cursor/skills/trellis-brainstorm/SKILL.md | 88 | ### Step 1: Restate the Problem | COMMENT |
| LOW | .cursor/skills/trellis-brainstorm/SKILL.md | 95 | ### Step 2: List Fundamental Truths | COMMENT |
| LOW⚡ | .cursor/skills/trellis-brainstorm/SKILL.md | 106 | ### Step 3: Challenge Assumptions | COMMENT |
| LOW⚡ | .cursor/skills/trellis-brainstorm/SKILL.md | 115 | ### Step 4: Build Up from Truths | COMMENT |
| LOW⚡ | .cursor/skills/trellis-brainstorm/SKILL.md | 121 | ### Step 5: Validate | COMMENT |
| LOW | .cursor/skills/trellis-break-loop/SKILL.md | 118 | ### Step 1: Establish Priors | COMMENT |
| LOW⚡ | .cursor/skills/trellis-break-loop/SKILL.md | 130 | ### Step 2: Observe Evidence | COMMENT |
| LOW⚡ | .cursor/skills/trellis-break-loop/SKILL.md | 138 | ### Step 3: Update Beliefs | COMMENT |
| LOW⚡ | .cursor/skills/trellis-break-loop/SKILL.md | 147 | ### Step 4: Seek Discriminating Evidence | COMMENT |
| LOW⚡ | .cursor/skills/trellis-break-loop/SKILL.md | 153 | ### Step 5: State Confidence | COMMENT |
| LOW | .cursor/skills/trellis-check/SKILL.md | 12 | ## Step 1: Identify What Changed | COMMENT |
| LOW | .cursor/skills/trellis-check/SKILL.md | 19 | ## Step 2: Read Task Artifacts and Applicable Specs | COMMENT |
| LOW | .cursor/skills/trellis-check/SKILL.md | 39 | ## Step 3: Run Project Checks | COMMENT |
| LOW | .cursor/skills/trellis-check/SKILL.md | 43 | ## Step 4: Review Against Checklist | COMMENT |
| LOW | .cursor/skills/trellis-check/SKILL.md | 73 | ## Step 5: Cross-Layer Dimensions (if applicable) | COMMENT |
| LOW | .cursor/skills/trellis-check/SKILL.md | 104 | ## Step 6: Report and Fix | COMMENT |
| LOW | .cursor/skills/trellis-update-spec/SKILL.md | 97 | ### Step 1: Identify What You Learned | COMMENT |
| LOW | .cursor/skills/trellis-update-spec/SKILL.md | 105 | ### Step 2: Classify the Update Type | COMMENT |
| LOW | .cursor/skills/trellis-update-spec/SKILL.md | 117 | ### Step 3: Read the Target Code-Spec | COMMENT |
| LOW | .cursor/skills/trellis-update-spec/SKILL.md | 128 | ### Step 4: Make the Update | COMMENT |
| LOW | .cursor/skills/trellis-update-spec/SKILL.md | 138 | ### Step 5: Update the Index (if needed) | COMMENT |
| LOW | .opencode/agents/trellis-check.md | 60 | ### Step 1: Get Changes | COMMENT |
| LOW | .opencode/agents/trellis-check.md | 67 | ### Step 2: Check Against Specs and Task Artifacts | COMMENT |
| LOW | .opencode/agents/trellis-check.md | 79 | ### Step 3: Self-Fix | COMMENT |
| LOW | .opencode/agents/trellis-check.md | 87 | ### Step 4: Run Verification | COMMENT |
| LOW⚡ | .opencode/agents/trellis-research.md | 38 | ### Step 1: Resolve Current Task | COMMENT |
| LOW⚡ | .opencode/agents/trellis-research.md | 48 | ### Step 2: Understand Search Request | COMMENT |
| 500 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .cursor/hooks/session-start.py | 305 | except OSError: | CODE |
| HIGH | .cursor/hooks/session-start.py | 450 | except (json.JSONDecodeError, PermissionError): | CODE |
| HIGH | .cursor/hooks/session-start.py | 741 | except Exception: | CODE |
| HIGH | .cursor/hooks/session-start.py | 119 | except Exception: | CODE |
| HIGH | .cursor/hooks/session-start.py | 729 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | .cursor/hooks/session-start.py | 124 | except Exception: | CODE |
| HIGH | .cursor/hooks/session-start.py | 552 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | .cursor/hooks/inject-shell-session-context.py | 31 | except (OSError, ValueError): | CODE |
| HIGH | .cursor/hooks/inject-shell-session-context.py | 89 | except OSError: | CODE |
| HIGH | .cursor/hooks/inject-shell-session-context.py | 198 | except OSError: | CODE |
| HIGH | .cursor/hooks/inject-subagent-context.py | 40 | except (OSError, ValueError): | CODE |
| HIGH | .cursor/hooks/inject-subagent-context.py | 389 | except Exception: | CODE |
| HIGH | .cursor/hooks/inject-subagent-context.py | 447 | except Exception: | CODE |
| HIGH | .cursor/hooks/inject-subagent-context.py | 1106 | except Exception: | CODE |
| HIGH | .claude/hooks/inject-workflow-state.py | 61 | except Exception: | CODE |
| HIGH | .claude/hooks/inject-workflow-state.py | 66 | except Exception: | CODE |
| HIGH | .claude/hooks/session-start.py | 305 | except OSError: | CODE |
| HIGH | .claude/hooks/session-start.py | 450 | except (json.JSONDecodeError, PermissionError): | CODE |
| HIGH | .claude/hooks/session-start.py | 741 | except Exception: | CODE |
| HIGH | .claude/hooks/session-start.py | 119 | except Exception: | CODE |
| HIGH | .claude/hooks/session-start.py | 729 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | .claude/hooks/session-start.py | 124 | except Exception: | CODE |
| HIGH | .claude/hooks/session-start.py | 552 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | .claude/hooks/inject-subagent-context.py | 40 | except (OSError, ValueError): | CODE |
| HIGH | .claude/hooks/inject-subagent-context.py | 389 | except Exception: | CODE |
| HIGH | .claude/hooks/inject-subagent-context.py | 447 | except Exception: | CODE |
| HIGH | .claude/hooks/inject-subagent-context.py | 1106 | except Exception: | CODE |
| HIGH | .codex/hooks/inject-workflow-state.py | 61 | except Exception: | CODE |
| HIGH | .codex/hooks/inject-workflow-state.py | 66 | except Exception: | CODE |
| HIGH | .codex/hooks/session-start.py | 124 | except Exception: | CODE |
| HIGH | .codex/hooks/session-start.py | 252 | except (json.JSONDecodeError, PermissionError): | CODE |
| HIGH | .codex/hooks/session-start.py | 407 | except Exception: | CODE |
| HIGH | .codex/hooks/session-start.py | 35 | except Exception: | CODE |
| HIGH | .codex/hooks/session-start.py | 395 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | .codex/hooks/session-start.py | 40 | except Exception: | CODE |
| HIGH | .codex/hooks/inject-subagent-context.py | 40 | except (OSError, ValueError): | CODE |
| HIGH | .codex/hooks/inject-subagent-context.py | 389 | except Exception: | CODE |
| HIGH | .codex/hooks/inject-subagent-context.py | 447 | except Exception: | CODE |
| HIGH | .codex/hooks/inject-subagent-context.py | 1106 | except Exception: | CODE |
| HIGH | …kages/cli/src/templates/copilot/hooks/session-start.py | 123 | except Exception: | CODE |
| HIGH | …kages/cli/src/templates/copilot/hooks/session-start.py | 251 | except (json.JSONDecodeError, PermissionError): | CODE |
| HIGH | …kages/cli/src/templates/copilot/hooks/session-start.py | 406 | except Exception: | CODE |
| HIGH | …kages/cli/src/templates/copilot/hooks/session-start.py | 36 | except Exception: | CODE |
| HIGH | …kages/cli/src/templates/copilot/hooks/session-start.py | 394 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | …kages/cli/src/templates/copilot/hooks/session-start.py | 41 | except Exception: | CODE |
| HIGH | packages/cli/src/templates/claude/hooks/statusline.py | 30 | except (OSError, ValueError): | CODE |
| HIGH | packages/cli/src/templates/claude/hooks/statusline.py | 210 | except ValueError: | CODE |
| HIGH | packages/cli/src/templates/claude/hooks/statusline.py | 215 | except ValueError: | CODE |
| HIGH | packages/cli/src/templates/codex/hooks/session-start.py | 124 | except Exception: | CODE |
| HIGH | packages/cli/src/templates/codex/hooks/session-start.py | 252 | except (json.JSONDecodeError, PermissionError): | CODE |
| HIGH | packages/cli/src/templates/codex/hooks/session-start.py | 407 | except Exception: | CODE |
| HIGH | packages/cli/src/templates/codex/hooks/session-start.py | 35 | except Exception: | CODE |
| HIGH | packages/cli/src/templates/codex/hooks/session-start.py | 395 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | packages/cli/src/templates/codex/hooks/session-start.py | 40 | except Exception: | CODE |
| HIGH | …li/src/templates/shared-hooks/inject-workflow-state.py | 61 | except Exception: | CODE |
| HIGH | …li/src/templates/shared-hooks/inject-workflow-state.py | 66 | except Exception: | CODE |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 305 | except OSError: | CODE |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 450 | except (json.JSONDecodeError, PermissionError): | CODE |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 741 | except Exception: | CODE |
| HIGH | …ckages/cli/src/templates/shared-hooks/session-start.py | 119 | except Exception: | CODE |
| 44 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .cursor/hooks/session-start.py | 22 | def _normalize_windows_shell_path(path_str: str) -> str: | CODE |
| LOW | .cursor/hooks/session-start.py | 85 | def _build_first_reply_notice(update_hint: str | None) -> str: | CODE |
| LOW | .cursor/hooks/session-start.py | 278 | def _persist_context_key_for_bash(context_key: str | None) -> None: | CODE |
| LOW | .cursor/hooks/session-start.py | 666 | def _collect_spec_index_paths(trellis_dir: Path, allowed_pkgs: set | None) -> list[str]: | CODE |
| LOW | .cursor/hooks/session-start.py | 697 | def _build_compact_current_state( | CODE |
| LOW | .cursor/hooks/session-start.py | 788 | def _strip_breadcrumb_tag_blocks(content: str) -> str: | CODE |
| LOW | .cursor/hooks/inject-shell-session-context.py | 157 | def _load_active_task_resolver(root: Path): | CODE |
| LOW | .cursor/hooks/inject-shell-session-context.py | 166 | def _extract_task_subcommands(command: str) -> list[dict[str, str]]: | CODE |
| LOW | .cursor/hooks/inject-subagent-context.py | 461 | def _materialize_jsonl_entries( | CODE |
| LOW | .cursor/hooks/inject-subagent-context.py | 892 | def build_codex_subagent_context( | CODE |
| LOW | .cursor/hooks/inject-subagent-context.py | 913 | def _handle_codex_subagent_start(input_data: dict) -> None: | CODE |
| LOW | .opencode/plugins/inject-subagent-context.js | 379 | function buildTrellisContextPrefix(contextKey, hostPlatform = process.platform, env = process.env) { | CODE |
| LOW | .opencode/plugins/inject-subagent-context.js | 394 | function commandStartsWithTrellisContext(command) { | CODE |
| LOW | .opencode/plugins/inject-subagent-context.js | 410 | function injectTrellisContextIntoBash(ctx, input, output, hostPlatform, env) { | CODE |
| LOW | .opencode/lib/session-utils.js | 493 | export function hasInjectedTrellisContext(messages) { | CODE |
| LOW | .opencode/lib/session-utils.js | 507 | export async function hasPersistedInjectedContext(client, directory, sessionID) { | CODE |
| LOW | .opencode/lib/context-visibility.js | 95 | export function findLatestUserMessageIndex(messages) { | CODE |
| LOW | .opencode/lib/context-visibility.js | 103 | export function platformInputFromMessages(messages) { | CODE |
| LOW | .opencode/lib/context-visibility.js | 121 | export function transcriptHasAssistantMessage(messages) { | CODE |
| LOW | .opencode/lib/trellis-context.js | 151 | function readContextInjectionLimits(repoRoot) { | CODE |
| LOW | .claude/hooks/inject-workflow-state.py | 286 | def _resolve_codex_dispatch_mode(config: dict) -> str: | CODE |
| LOW | .claude/hooks/session-start.py | 22 | def _normalize_windows_shell_path(path_str: str) -> str: | CODE |
| LOW | .claude/hooks/session-start.py | 85 | def _build_first_reply_notice(update_hint: str | None) -> str: | CODE |
| LOW | .claude/hooks/session-start.py | 278 | def _persist_context_key_for_bash(context_key: str | None) -> None: | CODE |
| LOW | .claude/hooks/session-start.py | 666 | def _collect_spec_index_paths(trellis_dir: Path, allowed_pkgs: set | None) -> list[str]: | CODE |
| LOW | .claude/hooks/session-start.py | 697 | def _build_compact_current_state( | CODE |
| LOW | .claude/hooks/session-start.py | 788 | def _strip_breadcrumb_tag_blocks(content: str) -> str: | CODE |
| LOW | .claude/hooks/inject-subagent-context.py | 461 | def _materialize_jsonl_entries( | CODE |
| LOW | .claude/hooks/inject-subagent-context.py | 892 | def build_codex_subagent_context( | CODE |
| LOW | .claude/hooks/inject-subagent-context.py | 913 | def _handle_codex_subagent_start(input_data: dict) -> None: | CODE |
| LOW | .codex/hooks/inject-workflow-state.py | 286 | def _resolve_codex_dispatch_mode(config: dict) -> str: | CODE |
| LOW⚡ | .codex/hooks/session-start.py | 44 | def _normalize_windows_shell_path(path_str: str) -> str: | CODE |
| LOW | .codex/hooks/session-start.py | 114 | def configure_project_encoding(project_dir: Path) -> None: | CODE |
| LOW | .codex/hooks/session-start.py | 336 | def _collect_spec_index_paths(trellis_dir: Path) -> list[str]: | CODE |
| LOW | .codex/hooks/session-start.py | 363 | def _build_compact_current_state( | CODE |
| LOW | .codex/hooks/session-start.py | 449 | def _strip_breadcrumb_tag_blocks(content: str) -> str: | CODE |
| LOW | .codex/hooks/inject-subagent-context.py | 461 | def _materialize_jsonl_entries( | CODE |
| LOW | .codex/hooks/inject-subagent-context.py | 892 | def build_codex_subagent_context( | CODE |
| LOW | .codex/hooks/inject-subagent-context.py | 913 | def _handle_codex_subagent_start(input_data: dict) -> None: | CODE |
| LOW | .omp/extensions/trellis/index.ts | 391 | function readContextInjectionLimits(projectRoot: string): ContextInjectionLimits { | CODE |
| LOW | .omp/extensions/trellis/index.ts | 741 | function readPromptInjectionSkipKeyword(projectRoot: string): string { | CODE |
| LOW | packages/core/src/channel/internal/store/paths.ts | 208 | export function listChannelNamesInProject(project: string): string[] { | CODE |
| LOW | packages/core/src/channel/internal/store/paths.ts | 235 | export function resolveChannelProjectForCreate( | CODE |
| LOW | packages/core/src/channel/internal/store/paths.ts | 254 | export function resolveExistingChannelRef( | CODE |
| LOW | packages/core/src/channel/internal/store/paths.ts | 329 | export function selectExistingChannelProject(name: string): string { | CODE |
| LOW | packages/core/src/mem/sessions.ts | 143 | function searchSessionWithChildren( | CODE |
| LOW | packages/core/src/mem/internal/sqlite-readonly.ts | 734 | function decodeTextDecoderEncoding( | CODE |
| LOW | packages/core/src/mem/adapters/devin.ts | 448 | export function collectDevinTurnsAndEvents( | CODE |
| LOW | packages/core/src/mem/adapters/opencode.ts | 262 | export function prepareOpencodeSessionStore( | CODE |
| LOW | packages/core/src/mem/adapters/opencode.ts | 269 | export function releaseOpencodeSessionStore(): void { | CODE |
| LOW | packages/core/src/mem/adapters/opencode.ts | 310 | function compactionMarkerSummaryId( | CODE |
| LOW | packages/core/src/mem/adapters/grok.ts | 199 | export function collectGrokTurnsAndEvents( | CODE |
| LOW | packages/core/src/mem/adapters/claude.ts | 212 | export function collectClaudeTurnsAndEvents(s: MemSessionInfo): { | CODE |
| LOW | packages/core/src/mem/adapters/codex.ts | 94 | export function commandFromCodexArguments(argsRaw: unknown): string | undefined { | CODE |
| LOW | packages/core/src/mem/adapters/codex.ts | 342 | export function collectCodexTurnsAndEvents( | CODE |
| LOW | packages/core/src/mem/adapters/zcode.ts | 269 | function compactionMarkerSummaryId( | CODE |
| LOW | packages/core/src/mem/adapters/zcode.ts | 466 | export function collectZcodeTurnsAndEvents( | CODE |
| LOW | packages/cli/test/regression.test.ts | 2368 | function runContextWithTrellisOutput( | CODE |
| LOW | packages/cli/test/regression.test.ts | 2912 | function runPythonWithLegacyStdinLocale( | CODE |
| LOW | packages/cli/test/regression.test.ts | 4425 | function statuslineRateLimitPayload(): string { | CODE |
| 201 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .cursor/hooks/session-start.py | 119 | except Exception: | CODE |
| LOW | .cursor/hooks/session-start.py | 124 | except Exception: | CODE |
| LOW | .cursor/hooks/session-start.py | 348 | except Exception: | CODE |
| LOW | .cursor/hooks/session-start.py | 557 | except Exception: | CODE |
| LOW | .cursor/hooks/session-start.py | 708 | except Exception: | CODE |
| LOW | .cursor/hooks/session-start.py | 741 | except Exception: | CODE |
| LOW | .cursor/hooks/inject-subagent-context.py | 154 | except Exception: | CODE |
| LOW | .cursor/hooks/inject-subagent-context.py | 197 | except Exception: | CODE |
| LOW | .cursor/hooks/inject-subagent-context.py | 282 | except Exception: | CODE |
| LOW | .cursor/hooks/inject-subagent-context.py | 389 | except Exception: | CODE |
| LOW | .cursor/hooks/inject-subagent-context.py | 447 | except Exception: | CODE |
| LOW | .cursor/hooks/inject-subagent-context.py | 1106 | except Exception: | CODE |
| LOW | .claude/hooks/inject-workflow-state.py | 61 | except Exception: | CODE |
| LOW | .claude/hooks/inject-workflow-state.py | 66 | except Exception: | CODE |
| LOW | .claude/hooks/inject-workflow-state.py | 246 | except Exception: | CODE |
| LOW | .claude/hooks/inject-workflow-state.py | 250 | except Exception: | CODE |
| LOW | .claude/hooks/inject-workflow-state.py | 401 | except Exception as exc: | CODE |
| MEDIUM | .claude/hooks/inject-workflow-state.py | 398 | def _read() -> None: | CODE |
| LOW | .claude/hooks/session-start.py | 119 | except Exception: | CODE |
| LOW | .claude/hooks/session-start.py | 124 | except Exception: | CODE |
| LOW | .claude/hooks/session-start.py | 348 | except Exception: | CODE |
| LOW | .claude/hooks/session-start.py | 557 | except Exception: | CODE |
| LOW | .claude/hooks/session-start.py | 708 | except Exception: | CODE |
| LOW | .claude/hooks/session-start.py | 741 | except Exception: | CODE |
| LOW | .claude/hooks/inject-subagent-context.py | 154 | except Exception: | CODE |
| LOW | .claude/hooks/inject-subagent-context.py | 197 | except Exception: | CODE |
| LOW | .claude/hooks/inject-subagent-context.py | 282 | except Exception: | CODE |
| LOW | .claude/hooks/inject-subagent-context.py | 389 | except Exception: | CODE |
| LOW | .claude/hooks/inject-subagent-context.py | 447 | except Exception: | CODE |
| LOW | .claude/hooks/inject-subagent-context.py | 1106 | except Exception: | CODE |
| LOW | .codex/hooks/inject-workflow-state.py | 61 | except Exception: | CODE |
| LOW | .codex/hooks/inject-workflow-state.py | 66 | except Exception: | CODE |
| LOW | .codex/hooks/inject-workflow-state.py | 246 | except Exception: | CODE |
| LOW | .codex/hooks/inject-workflow-state.py | 250 | except Exception: | CODE |
| LOW | .codex/hooks/inject-workflow-state.py | 401 | except Exception as exc: | CODE |
| MEDIUM | .codex/hooks/inject-workflow-state.py | 398 | def _read() -> None: | CODE |
| LOW⚡ | .codex/hooks/session-start.py | 35 | except Exception: | CODE |
| LOW⚡ | .codex/hooks/session-start.py | 40 | except Exception: | CODE |
| LOW | .codex/hooks/session-start.py | 124 | except Exception: | CODE |
| LOW | .codex/hooks/session-start.py | 165 | except Exception: | CODE |
| LOW | .codex/hooks/session-start.py | 374 | except Exception: | CODE |
| LOW | .codex/hooks/session-start.py | 407 | except Exception: | CODE |
| LOW | .codex/hooks/inject-subagent-context.py | 154 | except Exception: | CODE |
| LOW | .codex/hooks/inject-subagent-context.py | 197 | except Exception: | CODE |
| LOW | .codex/hooks/inject-subagent-context.py | 282 | except Exception: | CODE |
| LOW | .codex/hooks/inject-subagent-context.py | 389 | except Exception: | CODE |
| LOW | .codex/hooks/inject-subagent-context.py | 447 | except Exception: | CODE |
| LOW | .codex/hooks/inject-subagent-context.py | 1106 | except Exception: | CODE |
| LOW | …kages/cli/src/templates/copilot/hooks/session-start.py | 36 | except Exception: | CODE |
| LOW | …kages/cli/src/templates/copilot/hooks/session-start.py | 41 | except Exception: | CODE |
| LOW | …kages/cli/src/templates/copilot/hooks/session-start.py | 123 | except Exception: | CODE |
| LOW | …kages/cli/src/templates/copilot/hooks/session-start.py | 164 | except Exception: | CODE |
| LOW | …kages/cli/src/templates/copilot/hooks/session-start.py | 373 | except Exception: | CODE |
| LOW | …kages/cli/src/templates/copilot/hooks/session-start.py | 406 | except Exception: | CODE |
| LOW | packages/cli/src/templates/claude/hooks/statusline.py | 110 | except Exception: | CODE |
| LOW⚡ | packages/cli/src/templates/codex/hooks/session-start.py | 35 | except Exception: | CODE |
| LOW⚡ | packages/cli/src/templates/codex/hooks/session-start.py | 40 | except Exception: | CODE |
| LOW | packages/cli/src/templates/codex/hooks/session-start.py | 124 | except Exception: | CODE |
| LOW | packages/cli/src/templates/codex/hooks/session-start.py | 165 | except Exception: | CODE |
| LOW | packages/cli/src/templates/codex/hooks/session-start.py | 374 | except Exception: | CODE |
| 109 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .cursor/hooks/session-start.py | 6 | CODE | |
| LOW | .cursor/hooks/inject-shell-session-context.py | 15 | CODE | |
| LOW | .cursor/hooks/inject-subagent-context.py | 23 | CODE | |
| LOW | .claude/hooks/inject-workflow-state.py | 37 | CODE | |
| LOW | .claude/hooks/session-start.py | 6 | CODE | |
| LOW | .claude/hooks/inject-subagent-context.py | 23 | CODE | |
| LOW | .codex/hooks/inject-workflow-state.py | 37 | CODE | |
| LOW | .codex/hooks/session-start.py | 10 | CODE | |
| LOW | .codex/hooks/inject-subagent-context.py | 23 | CODE | |
| LOW | …kages/cli/src/templates/copilot/hooks/session-start.py | 18 | CODE | |
| LOW | packages/cli/src/templates/claude/hooks/statusline.py | 14 | CODE | |
| LOW | packages/cli/src/templates/codex/hooks/session-start.py | 10 | CODE | |
| LOW | …li/src/templates/shared-hooks/inject-workflow-state.py | 37 | CODE | |
| LOW | …ckages/cli/src/templates/shared-hooks/session-start.py | 6 | CODE | |
| LOW | …templates/shared-hooks/inject-shell-session-context.py | 15 | CODE | |
| LOW | …/src/templates/shared-hooks/inject-subagent-context.py | 23 | CODE | |
| LOW | …/cli/src/templates/snow/hooks/write-trellis-context.py | 21 | CODE | |
| LOW | packages/cli/src/templates/trellis/scripts/task.py | 26 | CODE | |
| LOW | …ges/cli/src/templates/trellis/scripts/get_developer.py | 8 | CODE | |
| LOW | …kages/cli/src/templates/trellis/scripts/get_context.py | 10 | CODE | |
| LOW | …es/cli/src/templates/trellis/scripts/init_developer.py | 13 | CODE | |
| LOW | …kages/cli/src/templates/trellis/scripts/add_session.py | 46 | CODE | |
| LOW | …li/src/templates/trellis/scripts/common/safe_commit.py | 33 | CODE | |
| LOW | …rc/templates/trellis/scripts/common/session_context.py | 15 | CODE | |
| LOW | …li/src/templates/trellis/scripts/common/active_task.py | 9 | CODE | |
| LOW | …ckages/cli/src/templates/trellis/scripts/common/git.py | 7 | CODE | |
| LOW | …li/src/templates/trellis/scripts/common/git_context.py | 13 | CODE | |
| LOW | …li/src/templates/trellis/scripts/common/git_context.py | 18 | CODE | |
| LOW | …li/src/templates/trellis/scripts/common/git_context.py | 18 | CODE | |
| LOW | …cli/src/templates/trellis/scripts/common/task_queue.py | 13 | CODE | |
| LOW | …ages/cli/src/templates/trellis/scripts/common/tasks.py | 13 | CODE | |
| LOW | …ges/cli/src/templates/trellis/scripts/common/config.py | 8 | CODE | |
| LOW | …cli/src/templates/trellis/scripts/common/task_store.py | 18 | CODE | |
| LOW | …c/templates/trellis/scripts/common/packages_context.py | 12 | CODE | |
| LOW | …ages/cli/src/templates/trellis/scripts/common/paths.py | 13 | CODE | |
| LOW | …ckages/cli/src/templates/trellis/scripts/common/log.py | 8 | CODE | |
| LOW | packages/cli/src/templates/trellis/scripts/common/io.py | 9 | CODE | |
| LOW | …src/templates/trellis/scripts/common/workflow_phase.py | 21 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| LOW | …s/cli/src/templates/trellis/scripts/common/__init__.py | 58 | CODE | |
| 77 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | packages/cli/test/regression.test.ts | 6385 | // return None, and the hook path failed instead of degrading. | COMMENT |
| HIGH | packages/cli/test/regression.test.ts | 1747 | print(json.dumps({ | CODE |
| HIGH | packages/cli/test/regression.test.ts | 1836 | print(json.dumps({ | CODE |
| HIGH | packages/cli/test/regression.test.ts | 1860 | print(json.dumps({ | CODE |
| HIGH | packages/cli/test/regression.test.ts | 1882 | print(json.dumps({"result": result})) | CODE |
| HIGH | packages/cli/test/regression.test.ts | 1893 | print(json.dumps({ | CODE |
| HIGH | packages/cli/test/regression.test.ts | 3770 | print(json.dumps({ | CODE |
| HIGH | packages/cli/test/regression.test.ts | 3809 | print(json.dumps({ | CODE |
| HIGH | packages/cli/test/regression.test.ts | 7069 | print(len(entries)) | CODE |
| HIGH | packages/cli/test/regression.test.ts | 11643 | print(json.dumps({ | CODE |
| HIGH | …t/scripts/context-injection-limits.integration.test.ts | 233 | print(get_context_injection_limits(Path(${JSON.stringify(tmp)}))["max_file_bytes"]) | CODE |
| HIGH | …t/scripts/context-injection-limits.integration.test.ts | 261 | print(get_context_injection_limits(Path(${JSON.stringify(tmp)}))["max_artifact_bytes"]) | CODE |
| HIGH | …t/scripts/context-injection-limits.integration.test.ts | 291 | print(mod.truncate_utf8(data, len(data)) == data) | CODE |
| HIGH | …t/scripts/context-injection-limits.integration.test.ts | 292 | print(mod.truncate_utf8(data, len(data) + 5) == data) | CODE |
| HIGH | …t/scripts/context-injection-limits.integration.test.ts | 303 | print(mod.truncate_utf8(data, 9) == b"abcdefghi") | CODE |
| HIGH | …t/scripts/context-injection-limits.integration.test.ts | 319 | print("all-valid") | CODE |
| HIGH | …t/scripts/context-injection-limits.integration.test.ts | 320 | print(mod.truncate_utf8(data, 4).decode("utf-8")) | CODE |
| HIGH | …t/scripts/context-injection-limits.integration.test.ts | 336 | print("all-valid") | CODE |
| HIGH | …/cli/test/templates/snow-write-trellis-context.test.ts | 374 | print(json.dumps({"bytes": len(out.encode("utf-8")), "has_marker": "truncated" in out})) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …kills/ts-sdk-author/references/workspace-and-layout.md | 550 | # Step 1 — Create the monorepo scaffold | COMMENT |
| MEDIUM | packages/cli/src/configurators/gemini.ts | 28 | * BeforeTool can fire but #18128 limits chain-of-thought visibility; sub-agents | COMMENT |
| MEDIUM⚡ | packages/cli/src/templates/markdown/worktree.yaml.txt | 2 | # Used for worktree initialization in multi-agent workflows | COMMENT |
| MEDIUM | …cli/src/templates/trellis/scripts/common/task_store.py | 580 | # planning — a placeholder row would read as unresolved scaffolding to | COMMENT |
| MEDIUM | …5/05-15-workflow-marketplace-feature-flag/implement.md | 20 | ## 0. Research and guardrails | COMMENT |
| MEDIUM | …hook-reliability-audit/research/platform-hook-audit.md | 70 | - [Issue #18128](https://github.com/google-gemini/gemini-cli/issues/18128) (OPEN, 2026-02-02) — *"the transcript is ne | CODE |
| MEDIUM | …hook-reliability-audit/research/platform-hook-audit.md | 73 | - #18128 未修:BeforeTool hook 在 sub-agent 场景下收不到主 agent 的 chain-of-thought/content(可以改 input,但判断依据受限) | CODE |
| MEDIUM | …30-workflow-state-commit-gap/research/hook-topology.md | 76 | | **Gemini** | `gemini.ts:29` | `.gemini/hooks/` | `.gemini/settings.json` | session-start.py | inject-workflow-state.py | CODE |
| MEDIUM | …/tasks/archive/2026-03/03-07-learn-openspec-prd/prd.md | 129 | - [SDD 工具对比:GSD vs Spec Kit vs OpenSpec vs Taskmaster AI](https://medium.com/@richardhightower/agentic-coding-gsd-vs-spe | CODE |
| MEDIUM | …/tasks/archive/2026-03/03-12-codex-review-fixes/prd.md | 132 | | **P1 应修** | CR#11 | 真问题 | submodule status 解析 bug,影响 multi-agent pipeline | | CODE |
| MEDIUM | …-plugin-system-design/research/claude-code-hook-api.md | 17 | 来自 [Hooks reference · Hook lifecycle](https://docs.anthropic.com/en/docs/claude-code/hooks#hook-lifecycle)。Cadence 分三类:* | CODE |
| MEDIUM | …-plugin-system-design/research/claude-code-hook-api.md | 17 | 来自 [Hooks reference · Hook lifecycle](https://docs.anthropic.com/en/docs/claude-code/hooks#hook-lifecycle)。Cadence 分三类:* | CODE |
| MEDIUM | …04-20-plugin-system-design/research/cursor-trace-ux.md | 83 | — [digitalapplied.com · Cursor Automations guide](https://www.digitalapplied.com/blog/cursor-automations-always-on-age | CODE |
| MEDIUM | …unding-benchmark-toy-phase/research/opencode-driver.md | 122 | steps: 200 # cap agentic iterations; tune after first dry runs | CODE |
| MEDIUM | …release-v0-6-0-ga/research/PRESHIP-VERIFY-changelog.md | 30 | | Tip anchor link | `#multi-agent-collaboration` → `## Multi-agent collaboration` | `#多-a | CODE |
| MEDIUM | …release-v0-6-0-ga/research/PRESHIP-VERIFY-changelog.md | 65 | 1. `docs-site/changelog/v0.6.0.mdx:174–183` — Bundled skills section listed only 2 of 4 skills (spec-bootstrap, session- | CODE |
| MEDIUM | …5-release-v0-6-0-ga/research/0.6.0-manifest-draft.json | 1 | {"version": "0.6.0", "description": "v0.6.0 stable — multi-agent channel runtime, `trellis mem`, `@mindfoldhq/trellis-co | CODE |
| MEDIUM | …e/2026-06/06-15-release-v0-6-0-ga/research/CRITIQUE.md | 31 | ### A4. SHOULD-FIX — `multi-agent-channel.md` defers all command syntax to "the bundled `trellis-channel` skill" without | COMMENT |
| MEDIUM | …e/2026-06/06-15-release-v0-6-0-ga/research/CRITIQUE.md | 107 | Mintlify generates anchors from heading text via a deterministic slugifier that handles CJK inconsistently. ZH H2 is `## | CODE |
| MEDIUM | …elease-v0-6-0-ga/research/v0.6.0-changelog-en-draft.md | 9 | **Multi-agent collaboration is now a first-class primitive.** `trellis channel` ships a worker-supervisor runtime with C | CODE |
| MEDIUM | …06/06-15-release-v0-6-0-ga/research/CRITIQUE-VERIFY.md | 31 | ### A4 — SHOULD-FIX — `multi-agent-channel.md` missing platform sub-agent vs channel-runtime distinction | COMMENT |
| MEDIUM | .trellis/tasks/archive/2026-01/01-30-bash2py/prd.md | 22 | ├── multi-agent/ # Shell multi-agent scripts | CODE |
| MEDIUM | .trellis/tasks/archive/2026-01/01-30-bash2py/prd.md | 40 | ├── multi_agent/ # Python multi-agent scripts | CODE |
| MEDIUM | …2026-01/01-19-readme-redesign-taosu/version3/README.md | 70 | ### Complex task: /parallel(这个 Case 可以深度考虑, 最好的效果是它用 TMUX 多开了好几个 session 同时做这事,举个例子让他做一个 open cowork,一个是 research 了解 cow | COMMENT |
| MEDIUM | …01-19-readme-redesign-taosu/competitors/superpowers.md | 8 | **Superpowers** 是由 Jesse Vincent ([@obra](https://github.com/obra)) 开发的 Claude Code 插件,目前在 GitHub 上有 **29.5k+ stars**。它是 | CODE |
| MEDIUM | .trellis/tasks/08-06-mem-full-recall/implement.md | 24 | ## 3. Codex adapter — multi-agent turns | COMMENT |
| MEDIUM | .trellis/tasks/08-06-mem-full-recall/prd.md | 83 | ## Problem 2 — multi-agent sessions lose the entire user side | COMMENT |
| MEDIUM | .trellis/tasks/06-17-benchmark-showcase/implement.md | 15 | ## Phase 1 — Harness scaffolding | COMMENT |
| MEDIUM | .trellis/workspace/taosu/journal-5.md | 753 | ## Session 158: Trellis Channel Runtime — multi-agent collaboration layer | COMMENT |
| MEDIUM | .trellis/workspace/taosu/journal-5.md | 1442 | - Rewrite Discussion #474: remove the `compact_boundary` recommendation (undocumented internal format), replace with eve | CODE |
| MEDIUM | .trellis/workspace/taosu/journal-2.md | 1863 | ## Session 67: Fix nested Claude Code session error in multi-agent pipeline | COMMENT |
| MEDIUM | .trellis/spec/cli/backend/directory-structure.md | 33 | │ │ └── channel/ # Channel command renderers and CLI orchestration | CODE |
| MEDIUM | .trellis/spec/cli/backend/platform-integration.md | 1202 | | Gemini CLI | `BeforeTool` fires but [#18128](https://github.com/google-gemini/gemini-cli/issues/18128) hides chain-of- | CODE |
| MEDIUM | .trellis/scripts/common/task_store.py | 580 | # planning — a placeholder row would read as unresolved scaffolding to | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …kills/ts-sdk-author/references/workspace-and-layout.md | 581 | # In each imported package.json: | COMMENT |
| LOW | …trellis-meta/references/claude-code/worktree-config.md | 61 | copy: | COMMENT |
| LOW | …trellis-meta/references/claude-code/worktree-config.md | 461 | # "iteration": 2, | COMMENT |
| LOW | …trellis-meta/references/claude-code/worktree-config.md | 61 | copy: | COMMENT |
| LOW | …trellis-meta/references/claude-code/worktree-config.md | 461 | # "iteration": 2, | COMMENT |
| LOW | .codex/config.toml | 1 | # Project-scoped Codex defaults for Trellis workflows. | COMMENT |
| LOW | .codex/config.toml | 21 | # block here. Codex CLI changed `features` deserialization between 0.130 | COMMENT |
| LOW | packages/cli/test/registry-invariants.test.ts | 201 | // Docs Drift (docs-site is hand-written; AI_TOOLS is the source of truth) | COMMENT |
| LOW | packages/cli/test/regression.test.ts | 4021 | // real channel. | COMMENT |
| LOW | packages/cli/test/regression.test.ts | 4681 | // `get_update_hint`) computed "Trellis update available: X -> Y, run trellis | COMMENT |
| LOW | packages/cli/test/regression.test.ts | 10261 | }); | COMMENT |
| LOW | packages/cli/test/regression.test.ts | 10681 | // sub-agent task context. When the hook silently failed (Windows + Claude | COMMENT |
| LOW | packages/cli/test/regression.test.ts | 11081 | // by .gitignore`, fell back to a hint suggesting `git add .trellis && | COMMENT |
| LOW | packages/cli/test/regression.test.ts | 11501 | // commits. Another process holding `.git/index.lock` for a fraction of a | COMMENT |
| LOW | packages/cli/test/regression.test.ts | 11821 | // CodeBuddy, ZCode and Trae all set CLAUDE_PROJECT_DIR beside their own | COMMENT |
| LOW | packages/cli/test/templates/claude.test.ts | 21 | // v0.5.0-beta.8: pin CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1 at the project | COMMENT |
| LOW | packages/cli/scripts/migrate-features-to-tasks.sh | 1 | #!/bin/bash | COMMENT |
| LOW | packages/cli/src/configurators/shared.ts | 601 | } | COMMENT |
| LOW | packages/cli/src/configurators/codex.ts | 201 | // RESIDUAL — not expressible as a path→content pair: a directory with no | COMMENT |
| LOW | packages/cli/src/templates/markdown/worktree.yaml.txt | 1 | # Worktree Configuration for Multi-Agent Pipeline | COMMENT |
| LOW | packages/cli/src/templates/markdown/worktree.yaml.txt | 21 | # Environment variables (uncomment and customize as needed) | COMMENT |
| LOW | packages/cli/src/templates/markdown/worktree.yaml.txt | 41 | COMMENT | |
| LOW | packages/cli/src/templates/codex/config.toml | 1 | # Project-scoped Codex defaults for Trellis workflows. | COMMENT |
| LOW | packages/cli/src/templates/codex/config.toml | 21 | # block here. Codex CLI changed `features` deserialization between 0.130 | COMMENT |
| LOW | …s/cli/src/templates/pi/extensions/trellis/index.ts.txt | 1421 | } | COMMENT |
| LOW | packages/cli/src/templates/trellis/gitattributes.txt | 1 | # Trellis: append-only developer journals should merge cleanly across | COMMENT |
| LOW | packages/cli/src/templates/trellis/config.yaml | 1 | # Trellis Configuration | COMMENT |
| LOW | packages/cli/src/templates/trellis/config.yaml | 21 | # Auto-commit behavior for session journal + task archive operations. | COMMENT |
| LOW | packages/cli/src/templates/trellis/config.yaml | 41 | # Hook failures print a warning but do not block the main operation. | COMMENT |
| LOW | packages/cli/src/templates/trellis/config.yaml | 61 | # packages: | COMMENT |
| LOW | packages/cli/src/templates/trellis/config.yaml | 81 | #------------------------------------------------------------------------------- | COMMENT |
| LOW | packages/cli/src/templates/trellis/config.yaml | 101 | # | COMMENT |
| LOW | packages/cli/src/templates/trellis/config.yaml | 121 | # | COMMENT |
| LOW | packages/cli/src/templates/trellis/config.yaml | 141 | # All values are byte counts. `0` disables the corresponding limit. | COMMENT |
| LOW | …li/src/templates/trellis/scripts/common/active_task.py | 61 | COMMENT | |
| LOW | …li/src/templates/trellis/scripts/common/active_task.py | 81 | ("claude", ("CLAUDE_CODE_SESSION_ID",)), | COMMENT |
| LOW | …li/src/templates/trellis/scripts/common/active_task.py | 101 | # UNVERIFIED (2026-08-05): absent from docs.github.com/en/copilot/reference/ | COMMENT |
| LOW | …li/src/templates/trellis/scripts/common/active_task.py | 121 | ) | COMMENT |
| LOW | …src/templates/trellis/scripts/common/workflow_phase.py | 141 | return False | COMMENT |
| LOW | packages/cli/src/commands/init.ts | 2001 | execSync(`${pythonCmd} "${scriptPath}" "${developerName}"`, { | COMMENT |
| LOW | .trellis/config.yaml | 1 | # Trellis Configuration | COMMENT |
| LOW | .trellis/config.yaml | 21 | # Auto-commit behavior for session journal + task archive operations. | COMMENT |
| LOW | .trellis/config.yaml | 41 | # Hook failures print a warning but do not block the main operation. | COMMENT |
| LOW | .trellis/config.yaml | 61 | # packages: | COMMENT |
| LOW | .trellis/config.yaml | 81 | path: docs-site | COMMENT |
| LOW | .trellis/config.yaml | 101 | # | COMMENT |
| LOW | .trellis/config.yaml | 121 | # Codex-only knob; other platforms ignore it. Default ("auto") dispatches | COMMENT |
| LOW | .trellis/config.yaml | 141 | # Sub-agent context injection limits | COMMENT |
| LOW | .trellis/config.yaml | 161 | # word-boundary match — "no-trellisfoo" does NOT count), the breadcrumb is | COMMENT |
| LOW | .trellis/spec/cli/backend/commands-channel.md | 281 | COMMENT | |
| LOW | .trellis/spec/cli/backend/commands-channel.md | 301 | // Internal legacy compatibility helper only. Do not export from | COMMENT |
| LOW | .trellis/scripts/common/active_task.py | 61 | COMMENT | |
| LOW | .trellis/scripts/common/active_task.py | 81 | ("claude", ("CLAUDE_CODE_SESSION_ID",)), | COMMENT |
| LOW | .trellis/scripts/common/active_task.py | 101 | # UNVERIFIED (2026-08-05): absent from docs.github.com/en/copilot/reference/ | COMMENT |
| LOW | .trellis/scripts/common/active_task.py | 121 | ) | COMMENT |
| LOW | .trellis/scripts/common/workflow_phase.py | 141 | return False | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .cursor/hooks/session-start.py | 309 | CODE | |
| LOW | .cursor/hooks/session-start.py | 517 | CODE | |
| LOW | .cursor/hooks/session-start.py | 697 | CODE | |
| LOW | .cursor/hooks/inject-subagent-context.py | 201 | CODE | |
| LOW | .cursor/hooks/inject-subagent-context.py | 395 | CODE | |
| LOW | .cursor/hooks/inject-subagent-context.py | 974 | CODE | |
| LOW | .claude/hooks/inject-workflow-state.py | 286 | CODE | |
| LOW | .claude/hooks/session-start.py | 309 | CODE | |
| LOW | .claude/hooks/session-start.py | 517 | CODE | |
| LOW | .claude/hooks/session-start.py | 697 | CODE | |
| LOW | .claude/hooks/inject-subagent-context.py | 201 | CODE | |
| LOW | .claude/hooks/inject-subagent-context.py | 395 | CODE | |
| LOW | .claude/hooks/inject-subagent-context.py | 974 | CODE | |
| LOW | .codex/hooks/inject-workflow-state.py | 286 | CODE | |
| LOW | .codex/hooks/session-start.py | 363 | CODE | |
| LOW | .codex/hooks/inject-subagent-context.py | 201 | CODE | |
| LOW | .codex/hooks/inject-subagent-context.py | 395 | CODE | |
| LOW | .codex/hooks/inject-subagent-context.py | 974 | CODE | |
| LOW | …kages/cli/src/templates/copilot/hooks/session-start.py | 362 | CODE | |
| LOW | packages/cli/src/templates/codex/hooks/session-start.py | 363 | CODE | |
| LOW | …li/src/templates/shared-hooks/inject-workflow-state.py | 286 | CODE | |
| LOW | …ckages/cli/src/templates/shared-hooks/session-start.py | 309 | CODE | |
| LOW | …ckages/cli/src/templates/shared-hooks/session-start.py | 517 | CODE | |
| LOW | …ckages/cli/src/templates/shared-hooks/session-start.py | 697 | CODE | |
| LOW | …/src/templates/shared-hooks/inject-subagent-context.py | 201 | CODE | |
| LOW | …/src/templates/shared-hooks/inject-subagent-context.py | 395 | CODE | |
| LOW | …/src/templates/shared-hooks/inject-subagent-context.py | 974 | CODE | |
| LOW | …/cli/src/templates/snow/hooks/write-trellis-context.py | 102 | CODE | |
| LOW | …/cli/src/templates/snow/hooks/write-trellis-context.py | 116 | CODE | |
| LOW | packages/cli/src/templates/trellis/scripts/task.py | 491 | CODE | |
| LOW | …kages/cli/src/templates/trellis/scripts/add_session.py | 681 | CODE | |
| LOW | …li/src/templates/trellis/scripts/common/safe_commit.py | 61 | CODE | |
| LOW | …ckages/cli/src/templates/trellis/scripts/common/git.py | 100 | CODE | |
| LOW | …li/src/templates/trellis/scripts/common/git_context.py | 46 | CODE | |
| LOW | …cli/src/templates/trellis/scripts/common/task_store.py | 329 | CODE | |
| LOW | …cli/src/templates/trellis/scripts/common/task_store.py | 846 | CODE | |
| LOW | …cli/src/templates/trellis/scripts/common/task_store.py | 1257 | CODE | |
| LOW | …src/templates/trellis/scripts/common/workflow_phase.py | 163 | CODE | |
| LOW | …src/templates/trellis/scripts/common/trellis_config.py | 113 | CODE | |
| LOW | …cli/src/templates/trellis/scripts/common/task_utils.py | 381 | CODE | |
| LOW | …li/src/templates/trellis/scripts/common/cli_adapter.py | 772 | CODE | |
| LOW | …li/src/templates/trellis/scripts/common/cli_adapter.py | 104 | CODE | |
| LOW | …li/src/templates/trellis/scripts/common/cli_adapter.py | 269 | CODE | |
| LOW | …li/src/templates/trellis/scripts/common/cli_adapter.py | 321 | CODE | |
| LOW | …li/src/templates/trellis/scripts/common/cli_adapter.py | 366 | CODE | |
| LOW | …li/src/templates/trellis/scripts/common/cli_adapter.py | 480 | CODE | |
| LOW | …li/src/templates/trellis/scripts/common/cli_adapter.py | 582 | CODE | |
| LOW | .trellis/scripts/task.py | 491 | CODE | |
| LOW | .trellis/scripts/add_session.py | 681 | CODE | |
| LOW | .trellis/scripts/common/safe_commit.py | 61 | CODE | |
| LOW | .trellis/scripts/common/git.py | 100 | CODE | |
| LOW | .trellis/scripts/common/git_context.py | 46 | CODE | |
| LOW | .trellis/scripts/common/task_store.py | 329 | CODE | |
| LOW | .trellis/scripts/common/task_store.py | 846 | CODE | |
| LOW | .trellis/scripts/common/task_store.py | 1257 | CODE | |
| LOW | .trellis/scripts/common/workflow_phase.py | 163 | CODE | |
| LOW | .trellis/scripts/common/trellis_config.py | 113 | CODE | |
| LOW | .trellis/scripts/common/task_utils.py | 381 | CODE | |
| LOW | .trellis/scripts/common/cli_adapter.py | 772 | CODE | |
| LOW | .trellis/scripts/common/cli_adapter.py | 104 | CODE | |
| 5 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …commands/init-uninstall-overdelete.integration.test.ts | 268 | hashes["AGENTS.md"] = "fake-user-hash"; | CODE |
| LOW | …codex-schema/codex_app_server_protocol.v2.schemas.json | 2834 | "placeholder": { | CODE |
| LOW | …ch/codex-schema/codex_app_server_protocol.schemas.json | 7953 | "placeholder": { | CODE |
| LOW | …agent-runtime/research/codex-schema/ClientRequest.json | 5424 | "placeholder": { | CODE |
| LOW | …-runtime/research/codex-schema/ServerNotification.json | 4242 | "placeholder": { | CODE |
| LOW | …time/research/codex-schema/v2/ThreadStartResponse.json | 1378 | "placeholder": { | CODE |
| LOW | …-runtime/research/codex-schema/v2/TurnStartParams.json | 464 | "placeholder": { | CODE |
| LOW | …/research/codex-schema/v2/ItemStartedNotification.json | 505 | "placeholder": { | CODE |
| LOW | …esearch/codex-schema/v2/TurnCompletedNotification.json | 639 | "placeholder": { | CODE |
| LOW | …esearch/codex-schema/v2/ItemCompletedNotification.json | 505 | "placeholder": { | CODE |
| LOW | …esearch/codex-schema/v2/ThreadStartedNotification.json | 777 | "placeholder": { | CODE |
| LOW | …e/research/codex-schema/v2/ThreadRollbackResponse.json | 782 | "placeholder": { | CODE |
| LOW | …/research/codex-schema/v2/TurnStartedNotification.json | 639 | "placeholder": { | CODE |
| LOW | …ntime/research/codex-schema/v2/ThreadReadResponse.json | 777 | "placeholder": { | CODE |
| LOW | …-runtime/research/codex-schema/v2/TurnSteerParams.json | 59 | "placeholder": { | CODE |
| LOW | …untime/research/codex-schema/v2/TurnStartResponse.json | 635 | "placeholder": { | CODE |
| LOW | …/research/codex-schema/v2/ThreadUnarchiveResponse.json | 777 | "placeholder": { | CODE |
| LOW | …ntime/research/codex-schema/v2/ThreadForkResponse.json | 1378 | "placeholder": { | CODE |
| LOW | …arch/codex-schema/v2/ThreadMetadataUpdateResponse.json | 777 | "placeholder": { | CODE |
| LOW | …ntime/research/codex-schema/v2/ThreadListResponse.json | 794 | "placeholder": { | CODE |
| LOW | …ime/research/codex-schema/v2/ThreadResumeResponse.json | 1378 | "placeholder": { | CODE |
| LOW | …time/research/codex-schema/v2/ReviewStartResponse.json | 640 | "placeholder": { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …cli/src/templates/trellis/scripts/common/task_queue.py | 121 | List tasks assigned to current developer. Args: filter_status: Optional status filter. repo_root: R | STRING |
| HIGH | …li/src/templates/trellis/scripts/common/cli_adapter.py | 688 | Get CLI adapter for the specified platform. Args: platform: Platform name ('claude', 'opencode', 'cursor', | STRING |
| HIGH | .trellis/scripts/common/task_queue.py | 121 | List tasks assigned to current developer. Args: filter_status: Optional status filter. repo_root: R | STRING |
| HIGH | .trellis/scripts/common/cli_adapter.py | 688 | Get CLI adapter for the specified platform. Args: platform: Platform name ('claude', 'opencode', 'cursor', | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | .claude/hooks/inject-workflow-state.py | 80 | # CWD-robust Trellis root discovery (fixes hook-path-robustness for this hook) | COMMENT |
| MEDIUM⚡ | .codex/hooks/inject-workflow-state.py | 80 | # CWD-robust Trellis root discovery (fixes hook-path-robustness for this hook) | COMMENT |
| MEDIUM⚡ | …es/cli/src/templates/kiro/agents/trellis-research.json | 4 | "prompt": "# Research Agent\n\nYou are the Research Agent in the Trellis workflow.\n\n## Core Principle\n\n**You do on | CODE |
| MEDIUM⚡ | …li/src/templates/shared-hooks/inject-workflow-state.py | 80 | # CWD-robust Trellis root discovery (fixes hook-path-robustness for this hook) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | packages/cli/src/configurators/shared.ts | 627 | ### Step 1: Find the active task path | COMMENT |
| LOW⚡ | packages/cli/src/configurators/shared.ts | 635 | ### Step 2: Load task context from the resolved path | COMMENT |
| LOW⚡ | …kages/cli/src/templates/kiro/agents/trellis-check.json | 4 | "prompt": "# Check Agent\n\nYou are the Check Agent in the Trellis workflow.\n\n## Recursion Guard\n\nYou are already | CODE |
| LOW⚡ | …es/cli/src/templates/kiro/agents/trellis-research.json | 4 | "prompt": "# Research Agent\n\nYou are the Research Agent in the Trellis workflow.\n\n## Core Principle\n\n**You do on | CODE |
| LOW | packages/cli/src/commands/init.ts | 465 | ### Step 1: Import from existing convention files first (preferred) | COMMENT |
| LOW⚡ | packages/cli/src/commands/init.ts | 486 | ### Step 2: Analyze the codebase for anything not covered by existing docs | COMMENT |
| LOW⚡ | packages/cli/src/commands/init.ts | 493 | ### Step 3: Document reality, not ideals | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/cli/scripts/migrate-features-to-tasks.sh | 36 | # Check if .trellis exists | COMMENT |
| LOW | …es/cli/src/templates/trellis/scripts/init_developer.py | 36 | # Check if already initialized | COMMENT |
| LOW | …kages/cli/src/templates/trellis/scripts/add_session.py | 1141 | # Check if there are staged changes for the paths we just staged. | COMMENT |
| LOW | …cli/src/templates/trellis/scripts/common/task_store.py | 1656 | # Check if child already has a parent | COMMENT |
| LOW | …i/src/templates/trellis/scripts/common/task_context.py | 103 | # Check if already exists | COMMENT |
| LOW | …01-19-readme-redesign-taosu/bootstrap-skill/install.sh | 26 | # Check if already installed | COMMENT |
| LOW | .trellis/scripts/init_developer.py | 36 | # Check if already initialized | COMMENT |
| LOW | .trellis/scripts/add_session.py | 1141 | # Check if there are staged changes for the paths we just staged. | COMMENT |
| LOW | .trellis/scripts/common/task_store.py | 1656 | # Check if child already has a parent | COMMENT |
| LOW | .trellis/scripts/common/task_context.py | 103 | # Check if already exists | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …kages/cli/src/templates/kiro/agents/trellis-check.json | 4 | "prompt": "# Check Agent\n\nYou are the Check Agent in the Trellis workflow.\n\n## Recursion Guard\n\nYou are already | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …kages/cli/src/templates/trellis/scripts/add_session.py | 1187 | CODE | |
| LOW | …cli/src/templates/trellis/scripts/common/task_store.py | 110 | CODE | |
| LOW | .trellis/scripts/add_session.py | 1187 | CODE | |
| LOW | .trellis/scripts/common/task_store.py | 110 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …01-19-readme-redesign-taosu/bootstrap-skill/install.sh | 5 | # Usage: | COMMENT |