This report summarizes scanner evidence for mvschwarz/openrig. SynthScan examined 933,365 lines of code across 3927 source files, recording 1802 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 2.9 (Low 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.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 1583 finding(s).
Are imports declared and package/API names verified? 47 finding(s).
Are wrappers, guards, and repeated structures necessary? 770 finding(s).
Which changes need focused human review? 1802 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 1802 distinct pattern matches across 15 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 |
|---|---|---|---|---|
| LOW | vitest.config.ts | 1 | // B15 — root-invocation hermeticity (r1-reviewed shape: test.projects, NOT the deprecated | COMMENT |
| LOW | test/hermetic-env.setup.ts | 1 | // D12 base-health + WRITE-leak containment (broadcast-leak atom). | COMMENT |
| LOW | test/hermetic-env.setup.ts | 21 | // `.openrig-fixture` marker) BEFORE any daemon-resolving module loads and | COMMENT |
| LOW | test/hermetic-env.setup.ts | 81 | const h = fs.mkdtempSync(path.join(os.tmpdir(), ".openrig-test-fixture-home-")); | COMMENT |
| LOW | test/hermetic-env.setup.ts | 161 | COMMENT | |
| LOW | test/stub-runtimes.ts | 1 | // Stub `codex` and `claude` binaries for the test PATH. | COMMENT |
| LOW | scripts/bootstrap-product-factory-vps.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/build-testbed-image.sh | 81 | --build-arg OPENRIG_TARBALL=openrig.tgz \ | COMMENT |
| LOW | scripts/smoke-fresh-install.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/build-package.sh | 41 | # the committed src/build-info.ts files stay the honest dev stubs). No | COMMENT |
| LOW | scripts/vm-bootstrap/two-daemon-start.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/vm-bootstrap/two-daemon-start.sh | 21 | # | COMMENT |
| LOW | packages/ui/test/topology-perf-table-large-n.test.tsx | 1 | // V0.3.1 bug-fix slice topology-perf — large-N smoke fixture. | COMMENT |
| LOW | packages/ui/test/topology-perf-table-large-n.test.tsx | 21 | // ContextCell, TokenCell) — i.e., no row double-mounts. | COMMENT |
| LOW | packages/ui/test/node-selection-migration.test.tsx | 1 | // V1 polish slice Phase 5.1 P5.1-1 + DRIFT P5.1-D2 — drawer-as-seat-detail | COMMENT |
| LOW | packages/ui/test/review-intent-markdown.test.tsx | 1 | // @vitest-environment jsdom | COMMENT |
| LOW | packages/ui/test/plugin-detail-page.test.tsx | 1 | // PluginDetailPage state + content tests. | COMMENT |
| LOW | packages/ui/test/dashboard-card-vellum.test.tsx | 1 | // Dashboard source-level tests. | COMMENT |
| LOW | packages/ui/test/slice-tabs-v1.test.tsx | 1 | // Slice Story View v1 — focused tab tests for the 4 v1 dimensions. | COMMENT |
| LOW | packages/ui/test/slice-28-index-pages.test.tsx | 1 | // Slice 28 Checkpoint C — Index page rolled-up-rows regression (HG-9 + HG-10). | COMMENT |
| LOW | packages/ui/test/p5-ship-gate-bounce.test.tsx | 1 | // V1 attempt-3 Phase 5 ship-gate bounce P0-1 + P0-2 regression guards. | COMMENT |
| LOW | packages/ui/test/p5-ship-gate-bounce.test.tsx | 141 | }); | COMMENT |
| LOW | packages/ui/test/artifacts-navigator.test.tsx | 201 | COMMENT | |
| LOW | packages/ui/test/mission-progress-heatmap.test.tsx | 1 | // V0.3.1 slice 13.5 mission-progress-artifacts-heatmap. | COMMENT |
| LOW | packages/ui/test/mission-status-surfaces.test.tsx | 1 | // VM-005 (release-0.4.7) — TIER A: the DIFFERENTIAL suite at the observable | COMMENT |
| LOW | packages/ui/test/p5-topology-terminal.test.tsx | 1 | // V1 attempt-3 Phase 5 P5-7 — Topology terminal grid (safe-N + pulsing-ring). | COMMENT |
| LOW | packages/ui/test/app-shell.test.tsx | 1 | // V1 attempt-3 Phase 2 — AppShell chrome tests. | COMMENT |
| LOW | packages/ui/test/fleet-page.test.tsx | 1 | // OPR.0.4.6.MH5 C5 — the /fleet route page twin-state smokes (the 3 | COMMENT |
| LOW | …es/ui/test/p5-2-bounce-rig-expand-persistence.test.tsx | 1 | // V1 polish slice Phase 5.2 bounce-fix — rig-expanded state persistence. | COMMENT |
| LOW | packages/ui/test/setup.ts | 1 | // HARNESS TEARDOWN HYGIENE (desk-caught post-teardown ReferenceError, 2026-08-07): | COMMENT |
| LOW | packages/ui/test/workflow-render-parity.test.tsx | 1 | // OPR.0.4.6.WF4 — RENDER-PARITY (PM refined Rule B, 2026-07-07). The two | COMMENT |
| LOW | packages/ui/test/p5-subscription-toggle.test.tsx | 1 | // V1 attempt-3 Phase 5 P5-3 — Subscription toggle wiring (SC-29 allowlist | COMMENT |
| LOW | packages/ui/test/drawer-primitives.test.tsx | 1 | // V1 attempt-3 Phase 4 — drawer primitives reachability proof (ritual #6). | COMMENT |
| LOW | packages/ui/test/slice-28-detail-pages.test.tsx | 1 | // Slice 28 Checkpoint C — Detail pages docs-browser (real file tree). | COMMENT |
| LOW | packages/ui/test/acceptance-tab-enhancement.test.tsx | 1 | // UI Enhancement Pack v0 — AcceptanceTab item-1A extension tests. | COMMENT |
| LOW | packages/ui/test/p5-mobile-polish.test.tsx | 1 | // V1 attempt-3 Phase 5 P5-9 — Mobile responsive polish. | COMMENT |
| LOW | packages/ui/test/topology-view-mode.test.tsx | 121 | it("SeatScopePage renders all three seat tabs when mounted directly", async () => { | COMMENT |
| LOW | …kages/ui/test/explorer-mobile-zindex-layering.test.tsx | 1 | // Slice 26.B HG-8 mobile-drawer-layering regression (OPT-B repair). | COMMENT |
| LOW | …kages/ui/test/explorer-mobile-zindex-layering.test.tsx | 181 | // | COMMENT |
| LOW | packages/ui/test/workflow-anti-prose.test.ts | 1 | // OPR.0.4.6.WF4 (C4) P3 — the ANTI-PROSE negative (arch Q6-P3, made mechanical). | COMMENT |
| LOW | packages/ui/test/harness-teardown-hygiene.test.tsx | 1 | // UI HARNESS TEARDOWN HYGIENE — the R5-family "work must not outlive its | COMMENT |
| LOW | packages/ui/test/agent-plugins-list.test.tsx | 1 | // Phase 3a slice 3.3 — AgentPluginsList enrichment component tests. | COMMENT |
| LOW | packages/ui/test/review-needs-you-slice-ref.test.tsx | 1 | // @vitest-environment jsdom | COMMENT |
| LOW | packages/ui/test/fileviewer-resolvable-target.test.tsx | 1 | // @vitest-environment jsdom | COMMENT |
| LOW | packages/ui/test/p5-trigger-sites.test.tsx | 1 | // V1 attempt-3 Phase 5 P5-1 — site-of-use trigger reachability proof (ritual #6). | COMMENT |
| LOW | packages/ui/test/slice-20-mobile-density.test.tsx | 1 | // Slice 20 mobile regression tests. | COMMENT |
| LOW | packages/ui/test/proof-tab.test.tsx | 201 | }); | COMMENT |
| LOW | packages/ui/test/opr-0.4.1.13-table-crash.test.tsx | 1 | // OPR.0.4.1.13 — topology table-view intermittent page-crash repro + fix. | COMMENT |
| LOW | packages/ui/test/feed-multi-host.test.tsx | 1 | // @vitest-environment jsdom | COMMENT |
| LOW | packages/ui/test/mission-status-reconcile.test.ts | 1 | // VM-005 (release-0.4.7) — TIER B: the new-symbol unit suite + TIER A pure | COMMENT |
| LOW | packages/ui/test/markdown-viewer.test.tsx | 121 | // but DISCARDS the numeric value (:167-172), and the renderer emits | COMMENT |
| LOW | packages/ui/test/markdown-viewer.test.tsx | 181 | expect(text).toContain("plain trailing prose"); | COMMENT |
| LOW | packages/ui/test/use-files-list-focus-refetch.test.tsx | 1 | // V0.3.1 slice 17 walk-item 8 forward-fix #2 — focus-refetch regression test. | COMMENT |
| LOW | packages/ui/twin/capture/twin-capture.ts | 1 | // twin:capture wrapper. | COMMENT |
| LOW | packages/ui/twin/corrective/media-webm.ts | 1 | // CORRECTIVE §7.3 surface leg — a REAL 6s VP8/WebM (ffmpeg testsrc, frame | COMMENT |
| LOW | packages/ui/src/components/SharedDetailDrawer.tsx | 1 | // V1 attempt-3 Phase 4 — SharedDetailDrawer chrome + DrawerSelection | COMMENT |
| LOW | packages/ui/src/components/Explorer.tsx | 281 | const { data: rigs } = useRigSummary(); | COMMENT |
| LOW | packages/ui/src/components/Explorer.tsx | 341 | // layer ABOVE the mobile-rail-tray (AppShell.tsx z-30) so | COMMENT |
| LOW | packages/ui/src/components/RigStatusCard.tsx | 1 | // OPR.0.4.3.22 — the reusable rig-status card. Renders the COMPOSED backend | COMMENT |
| LOW | packages/ui/src/components/AppShell.tsx | 1 | // V1 attempt-3 Phase 2 — AppShell chrome. | COMMENT |
| 694 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/ui/test/p5-subscription-toggle.test.tsx | 83 | function mockHighlightsSettingsCapturingPosts(posted: Record<string, string>) { | CODE |
| LOW | packages/ui/test/live-node-details.test.tsx | 114 | function renderDetailsWithDrawerSelection(setSelection: (sel: DrawerSelection) => void, logicalId = "dev.impl") { | CODE |
| LOW | packages/ui/test/activity-feed.test.tsx | 111 | function PackagesInvalidationHarness() { | CODE |
| LOW | packages/ui/test/activity-feed.test.tsx | 123 | function renderPackagesInvalidationHarness() { | CODE |
| LOW | packages/ui/test/helpers/mock-event-source.ts | 18 | export function createMockEventSourceClass() { | CODE |
| LOW | packages/ui/twin/capture/headless-chrome.ts | 30 | export function buildChromeScreenshotArgs(input: ChromeScreenshotInput): string[] { | CODE |
| LOW | packages/ui/src/App.tsx | 10 | function wasMaintenanceNoticeDismissed(): boolean { | CODE |
| LOW | packages/ui/src/components/Explorer.tsx | 54 | export function shouldSuppressExplorerMount( | CODE |
| LOW | packages/ui/src/components/SeatOverviewTable.tsx | 73 | function activityLabelFromVisualState(state: TopologyActivityVisual["state"]): string { | CODE |
| LOW | packages/ui/src/components/LibraryReview.tsx | 266 | function LibraryWorkflowReviewPage({ review }: { review: LibraryWorkflowReview }) { | CODE |
| LOW | packages/ui/src/components/LibraryReview.tsx | 398 | function LibraryContextPackReviewPage({ entryId }: { entryId: string }) { | CODE |
| LOW | packages/ui/src/components/LibraryReview.tsx | 538 | function LibraryAgentImageReviewPage({ entryId }: { entryId: string }) { | CODE |
| LOW | …/ui/src/components/topology/TerminalPreviewPopover.tsx | 78 | export function computeTerminalPopoverPosition( | CODE |
| LOW | …es/ui/src/components/topology/activity-card-visuals.ts | 5 | export function fallbackActivityCardState(activityState: ActivityState): ActivityRingState { | CODE |
| LOW | …kages/ui/src/components/progress/priority-rail-rule.ts | 24 | export function classifyPriorityRailLevel(file: ProgressFileNode): PriorityRailLevel { | CODE |
| LOW | …kages/ui/src/components/progress/priority-rail-rule.ts | 55 | export function getPriorityRailLevelStyle(level: PriorityRailLevel): PriorityRailLevelStyle { | CODE |
| LOW | packages/ui/src/components/markdown/SyntaxHighlight.tsx | 114 | function tokenizeWithKeywordsAndComments( | CODE |
| LOW | packages/ui/src/components/for-you/FeedCard.tsx | 92 | export function resolveCardTerminalSession( | CODE |
| LOW | packages/ui/src/components/for-you/FeedCard.tsx | 213 | function fallbackOutcomeFromQueueItem( | CODE |
| LOW | packages/ui/src/components/lab/VellumBackgroundLab.tsx | 67 | function ScrollingTopoLinesBackground() { | CODE |
| LOW | packages/ui/src/components/lab/VellumBackgroundLab.tsx | 271 | function IsometricShapesBackground() { | CODE |
| LOW | packages/ui/src/components/terminal/FocusedTerminal.tsx | 109 | export function applyOpaqueTerminalBackground(container: HTMLElement): void { | CODE |
| LOW | packages/ui/src/components/terminal/FocusedTerminal.tsx | 122 | export function scrollTerminalViewportToPrompt(container: HTMLElement): void { | CODE |
| LOW | …i/src/components/system/ClaudeCompactionPolicyForm.tsx | 61 | export function ClaudeCompactionPolicyForm() { | CODE |
| LOW | …ui/src/components/system/SettingsSystemStatusPanel.tsx | 26 | export function SettingsSystemStatusPanel() { | CODE |
| LOW | …es/ui/src/components/feed/cards/storytelling-cards.tsx | 549 | export function buildStorytellingFeedItems( | CODE |
| LOW | …i/src/components/mission-control/missionControlAuth.ts | 7 | export function readMissionControlBearerToken(): string | null { | CODE |
| LOW | …i/src/components/mission-control/missionControlAuth.ts | 18 | export function missionControlAuthHeaders(): Record<string, string> { | CODE |
| LOW | …i/src/components/mission-control/missionControlAuth.ts | 39 | export function primeMissionControlBearerTokenFromUrl(): void { | CODE |
| LOW | …/components/mission-control/components/VerbActions.tsx | 59 | function extractMutationErrorMessage(err: unknown): string { | CODE |
| LOW | …mission-control/hooks/useMissionControlDestinations.ts | 24 | export function useMissionControlDestinations(enabled: boolean) { | CODE |
| LOW | …sion-control/hooks/useMissionControlCliCapabilities.ts | 30 | export function useMissionControlCliCapabilities() { | CODE |
| LOW | packages/ui/src/hooks/useDiscovery.ts | 75 | export function useDiscoveredSessionsConditional(enabled: boolean): DiscoveredSession[] { | CODE |
| LOW | packages/ui/src/hooks/useTopologyActivity.ts | 48 | export function resetTopologyActivityStoreForTests(): void { | CODE |
| LOW | packages/ui/src/hooks/useScopeMarkdown.ts | 96 | export function resolveScopePathToAllowlist( | CODE |
| LOW | packages/ui/src/hooks/useHosts.ts | 108 | export function useClearPlacementOnHostSwitch(clear: () => void) { | CODE |
| LOW | packages/ui/src/lib/hybrid-layout.ts | 463 | function deterministicFallbackPositions( | CODE |
| LOW | packages/ui/src/lib/project-mission-state.ts | 35 | export function projectSliceFromListEntry(slice: SliceListEntry): ProjectSliceRow { | CODE |
| LOW | packages/ui/src/lib/project-mission-state.ts | 150 | function deriveMissionStatusFromSlices(slices: ProjectSliceRow[], now: number): MissionStatus { | CODE |
| LOW | packages/ui/src/lib/project-mission-state.ts | 180 | export function latestProjectMissionActivity(mission: ProjectMissionGroup): number { | CODE |
| LOW | packages/ui/src/lib/topology-activity.ts | 108 | export function buildTopologySessionIndex(entries: readonly TopologySessionIndexEntry[]): TopologySessionIndex { | CODE |
| LOW | packages/ui/src/lib/topology-activity.ts | 219 | export function parseTopologyActivityEvent(raw: unknown): ParsedTopologyEvent | null { | CODE |
| LOW | packages/ui/src/lib/topology-events.ts | 125 | export function subscribeTopologyEventStatus(listener: TopologyStatusListener): () => void { | CODE |
| LOW | packages/ui/src/lib/instantiate-status-colors.ts | 6 | export function getInstantiateStatusColorClass(status: string): string { | CODE |
| LOW | packages/ui/src/lib/library-skills-routing.ts | 37 | export function librarySkillFilePathFromToken(token: string): string | null { | CODE |
| LOW | packages/ui/src/lib/library-skills-routing.ts | 49 | export function librarySkillSelectionFromPath(pathname: string): { | CODE |
| LOW | packages/ui/src/lib/activity-visuals.ts | 27 | export function identityVerdictDownranksRunning( | CODE |
| LOW | packages/ui/src/lib/activity-visuals.ts | 80 | export function getActivityStateWithSource( | CODE |
| LOW | packages/ui/src/lib/activity-visuals.ts | 133 | export function getActivityAnimationClass(state: ActivityState): string { | CODE |
| LOW | packages/ui/src/lib/restore-status-colors.ts | 5 | export function getRestoreStatusColorClass(status: string): string { | CODE |
| LOW | packages/tui/test/hydrate.test.ts | 189 | function expectIncompleteNeedsTruth(snap: Awaited<ReturnType<typeof hydrateSnapshot>>): void { | CODE |
| LOW | packages/tui/src/state.ts | 386 | function clearScopeCoordinatesOnSectionChange(previous: ViewState, next: ViewState): ViewState { | CODE |
| LOW | packages/tui/src/socket-server.ts | 117 | function publishRecoveryReservation(reservation: string): () => void { | CODE |
| LOW | packages/tui/src/socket-server.ts | 142 | function abandonedRecoveryReservation(reservation: string): fs.Stats | undefined { | CODE |
| LOW | packages/tui/src/socket-server.ts | 166 | function acquireRecoveryReservation(reservation: string, depth = 0): () => void { | CODE |
| LOW | packages/tui/src/socket-server.ts | 186 | async function createReservedControlSocket(options: ControlSocketOptions): Promise<ControlSocket> { | CODE |
| LOW | packages/tui/src/crash-cart/render-crash-cart.ts | 168 | export function renderRestoreLifecycleView(vm: RestoreLifecycleVM): Line[] { | CODE |
| LOW | packages/cli/test/send.test.ts | 1276 | function scrubDaemonHostPortAliases(): void { | CODE |
| LOW | packages/cli/test/restore-packet.test.ts | 1288 | function jsonlWithBareSessionMetaId(): string { | CODE |
| LOW | packages/cli/test/setup.test.ts | 55 | function expectRuntimeConfigDisclosure(result: SetupResult): void { | CODE |
| 538 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/ui/test/dashboard-card-vellum.test.tsx | 72 | // ── Legacy vellum primitives — retained ONLY for /lab/vellum-lab ────────── | COMMENT |
| MEDIUM | …ui/src/components/dashboard/vellum/fidelity-glyphs.tsx | 20 | // ── 01 TOPOLOGY — six-node tree (existing TreeGraphic geometry) ─────────────── | COMMENT |
| MEDIUM | …ui/src/components/dashboard/vellum/fidelity-glyphs.tsx | 55 | // centre dot stays amber at rest via df-amf) ──────────────────────────────── | COMMENT |
| MEDIUM | …ui/src/components/dashboard/vellum/fidelity-glyphs.tsx | 69 | // ── 04 LIBRARY — gyroscope globe (existing SphereGraphic geometry) ──────────── | COMMENT |
| MEDIUM | …ui/src/components/dashboard/vellum/fidelity-glyphs.tsx | 121 | // ── Field Environment globe — 72-unit gyroscope readout glyph ──────────────── | COMMENT |
| MEDIUM | …ui/src/components/dashboard/vellum/fidelity-glyphs.tsx | 137 | // ── Caption mini-glyphs (9px) — paired one per card per the twin ───────────── | COMMENT |
| MEDIUM | packages/tui/test/pulse-view.test.ts | 232 | // segRows (the sidebar selection legitimately carries inverse). ───────────────── | COMMENT |
| MEDIUM | packages/tui/src/detail.ts | 6 | // section rule " ── title ──────" → chrome rule / bright title | COMMENT |
| MEDIUM | packages/cli/test/b8-probe-honesty.test.ts | 71 | // ── B8-2: send timeout = delivery-UNCONFIRMED, never "not sent" ───────────────── | COMMENT |
| MEDIUM | packages/cli/test/queue.test.ts | 2052 | // ─────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/queue.test.ts | 2068 | // ─────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/context.test.ts | 492 | // ── OPR.0.5.3.7 R4 — `rig context add <url>` (external load) ────────────── | COMMENT |
| MEDIUM | packages/cli/test/restore-packet.test.ts | 299 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/restore-packet.test.ts | 304 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/restore-packet.test.ts | 635 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/restore-packet.test.ts | 650 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/restore-packet.test.ts | 829 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/restore-packet.test.ts | 841 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/restore-packet.test.ts | 1224 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/restore-packet.test.ts | 1237 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/restore-packet.test.ts | 1541 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/restore-packet.test.ts | 1554 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/restore-packet.test.ts | 1645 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/restore-packet.test.ts | 1652 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/restore-packet.test.ts | 1776 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/restore-packet.test.ts | 1783 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/file-transfer.test.ts | 37 | // ── grammar (FR-1/FR-2/N18-1/G18-P1) ──────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/file-transfer.test.ts | 162 | // ── the deny wall (FR-4) ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/file-transfer.test.ts | 264 | // ── planning: the fail-closed set (all BEFORE any spawn) ──────────────────── | COMMENT |
| MEDIUM | packages/cli/test/file-transfer.test.ts | 300 | // ── the CLOSED argv builder: property tests ───────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/test/file-transfer.test.ts | 358 | // ── classification (executor taxonomy minus the daemon class) ─────────────── | COMMENT |
| MEDIUM | packages/cli/test/cross-host-executor.test.ts | 304 | // ─── D13 (INTAKE 5674431c): remote rig resolution over ssh ───────────────────── | COMMENT |
| MEDIUM | packages/cli/src/lib/file-transfer.ts | 48 | // ── grammar ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/src/lib/file-transfer.ts | 98 | // ── the deny wall + normalization ────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/src/lib/file-transfer.ts | 182 | // ── planning ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/src/lib/file-transfer.ts | 260 | // ── the CLOSED argv builder ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/cli/src/lib/file-transfer.ts | 284 | // ── execution + classification ────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/daemon/test/context-usage-store.test.ts | 350 | // ── GHOST-STAGE (c-id): generation guard ────────────────────────────────── | COMMENT |
| MEDIUM | packages/daemon/test/claude-handover-readiness.test.ts | 186 | returnedPane = `Claude Code v2.1.303\n❯ [Pasted text #2 +${packetText.split("\n").length - 1} lines]\n────────── | CODE |
| MEDIUM | packages/daemon/test/claude-handover-readiness.test.ts | 189 | else if (packetEnterCount === 1) returnedPane = `Claude Code v2.1.303\n❯ [Pasted text #1 +${packetText.split("\n | CODE |
| MEDIUM | packages/daemon/test/claude-handover-readiness.test.ts | 209 | ? `Claude Code v2.1.303\n❯ [Pasted text #1 +${packetText.split("\n").length - 1} lines]\n───────────────── | CODE |
| MEDIUM | packages/daemon/test/claude-handover-readiness.test.ts | 215 | returnedPane = `Claude Code v2.1.303\n❯ [Pasted text #2 +${packetText.split("\n").length - 1} lines]\n──────── | CODE |
| MEDIUM | packages/daemon/test/agent-manifest.test.ts | 560 | // ─── OPR.0.5.6.20 P3 — compaction_strategy wiring (locked A1 compat rule) ─────── | COMMENT |
| MEDIUM | packages/daemon/test/workflow-deadline.test.ts | 46 | // ── pure-evaluator fixtures ────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/daemon/test/workflow-deadline.test.ts | 199 | // ── real-row integration: the arch-NAMED third-state test ─────────── | COMMENT |
| MEDIUM | packages/daemon/test/workflow-deadline.test.ts | 313 | // ── FR-6: max_hops enforcement ─────────────────────────────────────── | COMMENT |
| MEDIUM | packages/daemon/test/profile-resolver.test.ts | 605 | // ─── OPR.0.5.6.20 P3 — compactionStrategy resolution, most-specific-WINS ──────── | COMMENT |
| MEDIUM | packages/daemon/test/profile-resolver.test.ts | 655 | // ─── OPR.0.5.6.20 B-3 — a non-specifying level must not participate ──────────── | COMMENT |
| MEDIUM | packages/daemon/test/profile-resolver.test.ts | 699 | // ─── OPR.0.5.6.20 B-4 — omitted restore_policy must not participate either ───── | COMMENT |
| MEDIUM | packages/daemon/test/transcript-routes.test.ts | 303 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/daemon/test/transcript-routes.test.ts | 320 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/daemon/test/quiet-hold-release.test.ts | 44 | // ─── The decision ────────────────────────────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/daemon/test/quiet-hold-release.test.ts | 93 | // ─── Through the real gateway ─────────────────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/daemon/test/quiet-hold-release.test.ts | 327 | // ─── After QA: a buffered release re-checked at post time, and quiet per actual recipient in the digest flush ────── | COMMENT |
| MEDIUM | packages/daemon/test/quiet-hold-release.test.ts | 986 | // ─── After review: the real outbound sweep when a dispatch throws ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kages/daemon/test/p34-terminal-closing-writers.test.ts | 12 | // ── RED 1 (this file, first increment): THE CURRENT MISS ────────────────────── | COMMENT |
| MEDIUM | …kages/daemon/test/p34-terminal-closing-writers.test.ts | 283 | // ── THE CONTROLS ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/daemon/test/parked-owner-consumer.test.ts | 492 | // ─── R2 hard checks at the REAL seams (real DB via canonical migrations) ────── | COMMENT |
| MEDIUM | packages/daemon/test/p34-call-site-allowlist.test.ts | 35 | // ── REV 2 (review-r2 HIGH-1) — THE GRANULARITY FIX ─────────────────────────── | COMMENT |
| MEDIUM | packages/daemon/test/delivery-rules-engine.test.ts | 93 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| 105 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | CHANGELOG.md | 5304 | ### Container test bed — scaffolding | COMMENT |
| MEDIUM | docs/releases/v0.5.1.md | 19 | ### Container test bed — scaffolding | COMMENT |
| MEDIUM | docs/as-built/architecture/workspace-primitive.md | 270 | ## 3. Default project-workspace scaffold | COMMENT |
| MEDIUM | docs/as-built/architecture/agent-spec-and-startup.md | 182 | ## 4. Startup orchestration (the spec-startup contract) | COMMENT |
| MEDIUM | packages/ui/test/proof-tab.test.tsx | 3 | // navigator). Tests: verdict parse (robust to authored shapes incl. the scaffold | COMMENT |
| MEDIUM | packages/ui/src/components/project/SteeringTab.tsx | 94 | // Byte-exact canonical headers + order. The scaffold, the populate SOP, and this projector | COMMENT |
| MEDIUM | packages/cli/test/scope-progress.test.ts | 98 | // Existing progress files are retained rather than migrated to the new scaffold. | COMMENT |
| MEDIUM | packages/cli/test/progress-ui-conformance.test.ts | 1 | // OPR.0.4.0.33 FR-4 — UI-contract conformance. The scaffold templates | COMMENT |
| MEDIUM | packages/cli/test/progress-ui-conformance.test.ts | 3 | // PROGRESS UI's data source parses. This test runs the real scaffold + | COMMENT |
| MEDIUM | packages/cli/test/progress-ui-conformance.test.ts | 59 | // Real verb logic applied to the real scaffold. | COMMENT |
| MEDIUM | packages/cli/test/scope-convention-scaffold.test.ts | 1 | // OPR.0.4.4.23 — the scaffold emits the SDLC convention sections for EVERY | COMMENT |
| MEDIUM | packages/cli/test/config-store-extended.test.ts | 10 | // - init-workspace creates the canonical project scaffold; idempotent | COMMENT |
| MEDIUM | packages/cli/test/scope-commands.test.ts | 1151 | // Discriminator (guard catch qitem-20260601121058): the failed scaffold | COMMENT |
| MEDIUM | packages/cli/test/scope-commands.test.ts | 2002 | // implied by the reads above: those would also pass if create wrote both files, and a scaffold | COMMENT |
| MEDIUM⚡ | packages/cli/test/proof.test.ts | 304 | const prd = "# PRD\n## Proof contract\n- [ ] [scaffold placeholder]\n- [ ] real deliverable A\n- [ ] real deliverabl | CODE |
| MEDIUM⚡ | packages/cli/test/proof.test.ts | 306 | // The scaffold placeholder is skipped per-item exactly as the composer does: | COMMENT |
| MEDIUM⚡ | packages/cli/test/proof.test.ts | 311 | // (real deliverable A). Pre-fix it landed on "[scaffold placeholder]", | COMMENT |
| MEDIUM | packages/cli/test/proof.test.ts | 395 | // never be the canonical item index. Both observed faces pinned: the scaffold's | COMMENT |
| MEDIUM | packages/cli/test/scope-slice-claims.test.ts | 159 | fs.writeFileSync(path.join(mission, "slices", name, "SPEC.md"), "# scaffold\n"); | CODE |
| MEDIUM | packages/cli/test/permission-policy-parity.test.ts | 2 | // daemon's authoritative modules (the same twin-plus-parity arrangement as scaffold-placeholder): | COMMENT |
| MEDIUM | packages/cli/test/scope-intent-visual-template.test.ts | 2 | // generated IMPL-PRD/slice scaffold so builders see the approved target. | COMMENT |
| MEDIUM | packages/cli/test/scope-audit.test.ts | 566 | // the corresponding PRISTINE scaffold-only PRD section. The decision is made | COMMENT |
| MEDIUM | packages/cli/test/scope-audit.test.ts | 572 | describe("PM dogfood #1 — authored README sections vs pristine scaffold PRD", () => { | CODE |
| MEDIUM⚡ | packages/cli/src/lib/scope/scaffold-placeholder.ts | 1 | // release-0.4.7 intent-stage/scaffold-projection — the ONE scaffold-recognition | COMMENT |
| MEDIUM⚡ | packages/cli/src/lib/scope/scaffold-placeholder.ts | 6 | // packages/cli/src/lib/scope/scaffold-placeholder.ts | COMMENT |
| MEDIUM⚡ | packages/cli/src/lib/scope/scaffold-placeholder.ts | 7 | // packages/daemon/src/domain/scope/scaffold-placeholder.ts | COMMENT |
| MEDIUM⚡ | packages/cli/src/lib/scope/scaffold-placeholder.ts | 16 | // Grammar (arch-stated): trimmed text fully bracket-wrapped = a scaffold | COMMENT |
| MEDIUM | packages/cli/src/lib/scope/scope-audit.ts | 433 | // PRESENT-and-PRISTINE scaffold-only PRD section yields to an authored | COMMENT |
| MEDIUM | packages/cli/src/lib/scope/scope-audit.ts | 489 | // release-0.4.7 intent-stage: an AUTHORED checkbox item — a scaffold | COMMENT |
| MEDIUM | packages/cli/src/lib/scope/scope-audit.ts | 491 | // ./scaffold-placeholder.js — the same helper review compose and the | COMMENT |
| MEDIUM | packages/cli/src/lib/scope/scope-audit.ts | 518 | // "mockup" (the scaffold placeholder says "name their planned | COMMENT |
| MEDIUM | packages/cli/src/commands/scope.ts | 389 | // post-scaffold write re-plans from the latest manifest and disk. | COMMENT |
| MEDIUM | packages/cli/src/commands/scope.ts | 413 | // Persist the parent id before building the scaffold. Incomplete | COMMENT |
| MEDIUM | packages/cli/src/commands/scope.ts | 439 | // PROOF.md is the final scaffold file. Once complete, leave this | COMMENT |
| MEDIUM | packages/cli/src/commands/proof.ts | 128 | // NOT filtered here: the pristine-scaffold second-face check below needs to | COMMENT |
| MEDIUM | packages/cli/src/commands/proof.ts | 366 | // ONE-HOMED in the scaffold-placeholder twin (selectProofContractBody) | COMMENT |
| MEDIUM | packages/cli/src/commands/proof.ts | 399 | // logical-checkbox grammar, then drop scaffold-placeholder rows PER-ITEM | COMMENT |
| MEDIUM | packages/cli/src/commands/config.ts | 55 | rig config init-workspace # scaffold a repo-ready project workspace | CODE |
| MEDIUM | …tem/scenarios/one-view-state-after-mutation-storm.yaml | 19 | # provisions the shipped TUI (isolated tmux server + scaffold socket) only when | COMMENT |
| MEDIUM | …mon/test/community-harness-runtime.integration.test.ts | 182 | const foreground = execFileSync("tmux", ["-S", scaffold.tmuxSocketPath, "display-message", "-p", "-t", `=${session}: | CODE |
| MEDIUM | …mon/test/community-harness-runtime.integration.test.ts | 285 | const panes = execFileSync("tmux", ["-S", scaffold.tmuxSocketPath, "list-panes", "-a", "-F", "#{session_name} #{pane | CODE |
| MEDIUM | packages/daemon/test/scaffold-placeholder.test.ts | 1 | // release-0.4.7 intent-stage/scaffold-projection — T1 (helper unit vectors) + | COMMENT |
| MEDIUM | packages/daemon/test/scaffold-placeholder.test.ts | 2 | // T6 (new outcome scaffold and legacy generic-triple compatibility). | COMMENT |
| MEDIUM | packages/daemon/test/scaffold-placeholder.test.ts | 199 | // the SECTION-level pristine test (every non-blank line is scaffold | COMMENT |
| MEDIUM | …ckages/daemon/test/scenario-daemon.integration.test.ts | 68 | // teardown: the daemon is gone (connection refused), scaffold removed | COMMENT |
| MEDIUM | packages/daemon/test/rig-edge-cli.integration.test.ts | 40 | "#{session_name} #{pane_id} #{pane_pid} #{pane_dead}"], { env: scaffold!.env, encoding: "utf8" }) | CODE |
| MEDIUM | packages/daemon/test/scope-approve.test.ts | 274 | // current SPEC pin, with that file contentless/scaffold, now refuses with teaching. | COMMENT |
| MEDIUM | packages/daemon/test/scope-approve.test.ts | 327 | // PRISTINE-scaffold PRD proof-contract (bracket-wrapped placeholder) -> README wins; the PRD scaffold contributes N | COMMENT |
| MEDIUM | packages/daemon/test/hermetic-clock.test.ts | 17 | // var; the scaffold sets it ONLY via injectClockNow (self-set injection). | COMMENT |
| MEDIUM | packages/daemon/test/scenario-pipeline.test.ts | 44 | port: 9, baseUrl: "http://127.0.0.1:9", readEnv: scaffold.env, | CODE |
| MEDIUM | packages/daemon/test/scenario-pipeline.test.ts | 215 | // a real ScenarioDaemon's readEnv carries the scaffold env (PATH included) | COMMENT |
| MEDIUM | packages/daemon/test/topology-defaults-door.e2e.test.ts | 10 | // actions) so nothing agent-shaped launches; seats land on the scaffold-owned | COMMENT |
| MEDIUM | packages/daemon/test/topology-defaults-door.e2e.test.ts | 81 | // A spec dir INSIDE the scaffold carrying topology/ defaults at all four altitudes. | COMMENT |
| MEDIUM | packages/daemon/test/topology-defaults-door.e2e.test.ts | 129 | // 7-agent roster (launching claude/codex agents in a hermetic scaffold | COMMENT |
| MEDIUM | …/seat-interruption-levels-scenario.integration.test.ts | 65 | if (daemon) await daemon.stop(); // also removes the scaffold | CODE |
| MEDIUM | packages/daemon/test/hermetic-tmux.test.ts | 61 | // pre-effect: the private root is still EMPTY — no scaffold was created | COMMENT |
| MEDIUM | packages/daemon/test/hermetic-tmux.test.ts | 83 | // (b) it is replaced by a scaffold-OWNED, existing directory | COMMENT |
| MEDIUM | packages/daemon/test/hermetic-tmux.test.ts | 98 | // cleanup removes the scaffold-owned server dir with everything else | COMMENT |
| MEDIUM | packages/daemon/test/hermetic-tmux.test.ts | 313 | // the inherited sentinel server gains nothing, and the explicit scaffold socket | COMMENT |
| MEDIUM | packages/daemon/test/hermetic-tmux.test.ts | 367 | // scaffold cwds with the slice's OWN staging helper instead. | COMMENT |
| 72 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | packages/cli/test/project-worker-entry.test.ts | 208 | expect(p.snapshot.sources.project.files.every((x:{hash:string})=>x.hash.startsWith("sha256:"))).toBe(true); | CODE |
| CRITICAL | packages/daemon/test/codex-seat-home.test.ts | 63 | expect(JSON.parse((await f.run(f.tmux.sendShellCommand.mock.calls.at(-1)![1])).stdout).home).toBe(f.seatHome); | CODE |
| CRITICAL | packages/daemon/test/codex-seat-home.test.ts | 82 | expect(JSON.parse((await f.run(f.tmux.sendShellCommand.mock.calls.at(-1)![1])).stdout).home).toBe(configured); | CODE |
| CRITICAL | packages/daemon/test/codex-seat-home.test.ts | 94 | expect(JSON.parse((await f.run(f.tmux.sendShellCommand.mock.calls.at(-1)![1])).stdout).home).toBe(f.daemonHome); | CODE |
| CRITICAL | packages/daemon/test/codex-seat-home.test.ts | 167 | const homeOf = async () => JSON.parse((await f.run(f.tmux.sendShellCommand.mock.calls.at(-1)![1])).stdout).home; | CODE |
| CRITICAL | packages/daemon/test/rig-name-override-journey.test.ts | 251 | expect(s2.tmux.createSession.mock.calls.map(([name]) => name)).toEqual(["work-worker@alpha"]); | CODE |
| CRITICAL | …ages/daemon/test/kernel-lost-restore-overrides.test.ts | 43 | expect(h.adapter.launchHarness.mock.calls.at(-1)?.[1].resumeToken).toBe(corrected); | CODE |
| CRITICAL | …ages/daemon/test/kernel-lost-restore-overrides.test.ts | 124 | expect(h.adapter.launchHarness.mock.calls.at(-1)?.[1].resumeToken).toBe(corrected); | CODE |
| CRITICAL | packages/daemon/test/seat-env-journey.test.ts | 139 | const call = f.tmux.createSession.mock.calls.find(([name]) => name.includes(sessionPart)); | CODE |
| CRITICAL | packages/daemon/test/seat-env-journey.test.ts | 198 | expect(f.tmux.setSessionEnv.mock.calls.map(([s, k, v]) => [s, k, v]).sort()).toEqual([ | CODE |
| CRITICAL | packages/daemon/test/seat-env-journey.test.ts | 202 | expect(f.tmux.unsetSessionEnv.mock.calls.map(([s, k]) => [s, k]).sort()).toEqual([ | CODE |
| CRITICAL | …daemon/test/seat-launch-environment-regression.test.ts | 94 | const command = (f.tmux.sendShellCommand.mock.calls.at(-1) as unknown as string[])[1]!; | CODE |
| CRITICAL | packages/daemon/test/codex-selected-home.test.ts | 53 | expect(JSON.parse((await f.run(f.tmux.sendShellCommand.mock.calls.at(-1)![1])).stdout).home).toBe(f.selected); | CODE |
| CRITICAL | packages/daemon/test/codex-selected-home.test.ts | 81 | if (kind !== 'capability') expect(JSON.parse((await f.run(f.tmux.sendShellCommand.mock.calls.at(-1)![1])).stdout).home | CODE |
| CRITICAL | …ckages/daemon/test/startup-submit-confirmation.test.ts | 99 | expect(f.submitted).toEqual(f.tmux.sendText.mock.calls.map(c => c[1])); | CODE |
| CRITICAL | packages/daemon/test/helpers/scenario-pipeline.ts | 345 | || !loaded.loaded.scenario.env.work_fixture || loaded.loaded.scenario.env.work_fixture.startsWith("/") | CODE |
| CRITICAL | packages/daemon/test/helpers/scenario-pipeline.ts | 346 | || loaded.loaded.scenario.env.work_fixture.split(/[\\/]/).includes(".."))) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | packages/cli/src/commands/whoami.ts | 240 | // Step 7: raw tmux session name (weakest fallback) | COMMENT |
| LOW | packages/cli/src/commands/restore-packet.ts | 88 | // Step 1: source_session_id — override > parsed > --source-session arg. | COMMENT |
| LOW | packages/cli/src/commands/restore-packet.ts | 104 | // Step 2: source_rig — override > <seat>@<rig> split. | COMMENT |
| LOW⚡ | packages/daemon/test/plugins-routes.test.ts | 179 | // Step 1: list with ?cwd= — captures id. | COMMENT |
| LOW⚡ | packages/daemon/test/plugins-routes.test.ts | 189 | // Step 2: detail call with that id — must 200 (was 404 pre-fix). | COMMENT |
| LOW | packages/daemon/test/workflow-projector.test.ts | 533 | // Step 1: instantiate, then handoff produce → review. | COMMENT |
| LOW | packages/daemon/test/workflow-projector.test.ts | 553 | // Step 2: park review on the same qitem. | COMMENT |
| LOW | packages/daemon/test/workflow-projector.test.ts | 568 | // Step 3: resume with done on the SAME packet. Must close step "review", | COMMENT |
| LOW | …specs/agents/shared/skills/pm/context-builder/SKILL.md | 25 | ### Step 1: Understand the Feature | COMMENT |
| LOW | …specs/agents/shared/skills/pm/context-builder/SKILL.md | 32 | ### Step 2: Search and Gather | COMMENT |
| LOW | …specs/agents/shared/skills/pm/context-builder/SKILL.md | 44 | ### Step 3: Update Shared Context (if new knowledge found) | COMMENT |
| LOW | …specs/agents/shared/skills/pm/context-builder/SKILL.md | 48 | ### Step 4: Write background.md | COMMENT |
| LOW⚡ | …on/specs/agents/shared/skills/pm/office-hours/SKILL.md | 61 | ### Step 1: Get the Pitch | COMMENT |
| LOW⚡ | …on/specs/agents/shared/skills/pm/office-hours/SKILL.md | 64 | ### Step 2: Run the Questions | COMMENT |
| LOW⚡ | …on/specs/agents/shared/skills/pm/office-hours/SKILL.md | 70 | ### Step 3: Verdict | COMMENT |
| LOW⚡ | …aemon/specs/agents/shared/skills/pm/ui-mockup/SKILL.md | 46 | ### Step 1: Understand What to Mockup | COMMENT |
| LOW⚡ | …aemon/specs/agents/shared/skills/pm/ui-mockup/SKILL.md | 55 | ### Step 2: Gather Real Data | COMMENT |
| LOW⚡ | …aemon/specs/agents/shared/skills/pm/ui-mockup/SKILL.md | 62 | ### Step 3: Create the Mockup | COMMENT |
| LOW⚡ | …aemon/specs/agents/shared/skills/pm/ui-mockup/SKILL.md | 64 | ### Step 4: Connect to Requirements | COMMENT |
| LOW⚡ | …mon/specs/agents/shared/skills/pm/plan-review/SKILL.md | 38 | ### Step 1: Read the Material | COMMENT |
| LOW⚡ | …mon/specs/agents/shared/skills/pm/plan-review/SKILL.md | 45 | ### Step 2: Run All Three Reviews | COMMENT |
| LOW⚡ | …mon/specs/agents/shared/skills/pm/plan-review/SKILL.md | 47 | ### Step 3: Synthesis | COMMENT |
| LOW | …mon/specs/agents/shared/skills/pm/plan-review/SKILL.md | 89 | ### Step 4: Generate Executive Summary | COMMENT |
| LOW | …s/agents/shared/skills/core/openrig-architect/SKILL.md | 67 | ### Step 1: Understand the User's Intent | COMMENT |
| LOW | …s/agents/shared/skills/core/openrig-architect/SKILL.md | 79 | ### Step 2: Identify Bounded Contexts → Pods | COMMENT |
| LOW | …s/agents/shared/skills/core/openrig-architect/SKILL.md | 106 | ### Step 3: Design Agent Roles → Members | COMMENT |
| LOW | …s/agents/shared/skills/core/openrig-architect/SKILL.md | 142 | ### Step 4: Choose Runtimes and Models | COMMENT |
| LOW | …s/agents/shared/skills/core/openrig-architect/SKILL.md | 158 | ### Step 5: Design Edge Topology | COMMENT |
| LOW | …s/agents/shared/skills/core/openrig-architect/SKILL.md | 171 | ### Step 6: Design Startup Content Strategy | COMMENT |
| LOW | …s/agents/shared/skills/core/openrig-architect/SKILL.md | 188 | ### Step 7: Services Integration (If Needed) | COMMENT |
| LOW⚡ | packages/daemon/src/domain/bundle-archive.ts | 113 | // Step 1: Verify archive-level digest | COMMENT |
| LOW⚡ | packages/daemon/src/domain/bundle-archive.ts | 119 | // Step 2: Pre-scan archive for unsafe entries BEFORE extraction | COMMENT |
| LOW⚡ | packages/daemon/src/domain/bundle-archive.ts | 126 | // Step 3: Extract (safe — pre-scanned and defensively filtered) | COMMENT |
| LOW | packages/daemon/src/domain/bundle-archive.ts | 138 | // Step 3: Verify content integrity | COMMENT |
| LOW | skills/_canonical/pm/context-builder/SKILL.md | 25 | ### Step 1: Understand the Feature | COMMENT |
| LOW | skills/_canonical/pm/context-builder/SKILL.md | 32 | ### Step 2: Search and Gather | COMMENT |
| LOW | skills/_canonical/pm/context-builder/SKILL.md | 44 | ### Step 3: Update Shared Context (if new knowledge found) | COMMENT |
| LOW | skills/_canonical/pm/context-builder/SKILL.md | 48 | ### Step 4: Write background.md | COMMENT |
| LOW⚡ | skills/_canonical/pm/office-hours/SKILL.md | 61 | ### Step 1: Get the Pitch | COMMENT |
| LOW⚡ | skills/_canonical/pm/office-hours/SKILL.md | 64 | ### Step 2: Run the Questions | COMMENT |
| LOW⚡ | skills/_canonical/pm/office-hours/SKILL.md | 70 | ### Step 3: Verdict | COMMENT |
| LOW⚡ | skills/_canonical/pm/ui-mockup/SKILL.md | 46 | ### Step 1: Understand What to Mockup | COMMENT |
| LOW⚡ | skills/_canonical/pm/ui-mockup/SKILL.md | 55 | ### Step 2: Gather Real Data | COMMENT |
| LOW⚡ | skills/_canonical/pm/ui-mockup/SKILL.md | 62 | ### Step 3: Create the Mockup | COMMENT |
| LOW⚡ | skills/_canonical/pm/ui-mockup/SKILL.md | 64 | ### Step 4: Connect to Requirements | COMMENT |
| LOW⚡ | skills/_canonical/pm/plan-review/SKILL.md | 38 | ### Step 1: Read the Material | COMMENT |
| LOW⚡ | skills/_canonical/pm/plan-review/SKILL.md | 45 | ### Step 2: Run All Three Reviews | COMMENT |
| LOW⚡ | skills/_canonical/pm/plan-review/SKILL.md | 47 | ### Step 3: Synthesis | COMMENT |
| LOW | skills/_canonical/pm/plan-review/SKILL.md | 89 | ### Step 4: Generate Executive Summary | COMMENT |
| LOW | skills/_canonical/core/openrig-architect/SKILL.md | 67 | ### Step 1: Understand the User's Intent | COMMENT |
| LOW | skills/_canonical/core/openrig-architect/SKILL.md | 79 | ### Step 2: Identify Bounded Contexts → Pods | COMMENT |
| LOW | skills/_canonical/core/openrig-architect/SKILL.md | 106 | ### Step 3: Design Agent Roles → Members | COMMENT |
| LOW | skills/_canonical/core/openrig-architect/SKILL.md | 142 | ### Step 4: Choose Runtimes and Models | COMMENT |
| LOW | skills/_canonical/core/openrig-architect/SKILL.md | 158 | ### Step 5: Design Edge Topology | COMMENT |
| LOW | skills/_canonical/core/openrig-architect/SKILL.md | 171 | ### Step 6: Design Startup Content Strategy | COMMENT |
| LOW | skills/_canonical/core/openrig-architect/SKILL.md | 188 | ### Step 7: Services Integration (If Needed) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker/testbed/stub-assets/rig.yaml | 4 | # node-script harness, so this topology stands up headlessly in real tmux INSIDE the | COMMENT |
| MEDIUM | …eference/community-harness-examples/cursor/cursor.yaml | 14 | passes_model: false # the launcher maps OPENRIG_MODEL for a new session; set true once checked with the rea | CODE |
| MEDIUM | …eference/community-harness-examples/hermes/hermes.yaml | 13 | passes_model: false # the launcher maps OPENRIG_MODEL for a new session; set true once checked with the rea | CODE |
| MEDIUM | packages/ui/test/story-graph.test.tsx | 53 | // time-only / relative "Today"/"Yesterday" label (tz-robust shape check) | COMMENT |
| MEDIUM | packages/ui/test/p5-2-host-multi-rig-graph.test.tsx | 415 | // are robust to comment density (don't strip comments here — the file | COMMENT |
| MEDIUM | packages/ui/test/p5-2-host-multi-rig-graph.test.tsx | 449 | // Substring contracts (robust to multi-line formatting). | COMMENT |
| MEDIUM | packages/ui/test/proof-tab.test.tsx | 3 | // navigator). Tests: verdict parse (robust to authored shapes incl. the scaffold | COMMENT |
| MEDIUM | packages/ui/src/components/lab/VellumBackgroundLab.tsx | 88 | // total dy at x=0 equals dy at x=PATTERN_W (seamless loop). | COMMENT |
| MEDIUM | packages/cli/test/cross-host-http.test.ts | 700 | // X-OpenRig-Session. Strict body + any-string marker (robust to either sender value). | COMMENT |
| MEDIUM | packages/cli/src/lib/scope/templates.ts | 5 | // them directly via fileURLToPath to remain robust across local dev | COMMENT |
| MEDIUM | …-system/scenarios/compaction-restore-resumes-role.yaml | 8 | # that fault needs it to ride the same launch script, which the harness does not do | COMMENT |
| MEDIUM | …est-system/scenarios/queue-baton-survives-restart.yaml | 36 | # Arm the paired harness BEFORE the affected action. Healthy runs record a | COMMENT |
| MEDIUM | packages/daemon/test/rig-edge-cli.integration.test.ts | 11 | // #1193: reuse the scenario harness with real CLI/daemon/SQLite/tmux. The YAML | COMMENT |
| MEDIUM | packages/daemon/test/startup-orchestrator.test.ts | 2069 | // OPR.0.4.3.06 — text-aware mock (robust to the extra orientation-challenge | COMMENT |
| MEDIUM | packages/daemon/test/workspace-doctor.test.ts | 90 | // must be robust under varied test environments. | COMMENT |
| MEDIUM | packages/daemon/test/rigspec-exporter.test.ts | 95 | // Definitely not DB primary keys | COMMENT |
| MEDIUM | …/daemon/src/builtins/workflow-specs/gated-release.yaml | 4 | # resolved by `rig queue resolve`), plus per-step harness pins. | COMMENT |
| MEDIUM | packages/daemon/src/domain/session-transport.ts | 132 | // (`› N.`) is already caught above; these question lines make the fallback robust if it scrolls out. | COMMENT |
| MEDIUM | packages/daemon/src/domain/session-transport.ts | 3132 | // 2. OPR.0.4.1.10 — robust prompt/permission + mid-work guard on the DEFAULT path. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/ui/test/p5-mission-discovery.test.tsx | 469 | rawStatus: "placeholder", | CODE |
| LOW⚡ | packages/cli/src/lib/scope/types.ts | 69 | | "placeholder" | CODE |
| LOW⚡ | packages/cli/src/lib/scope/types.ts | 76 | "placeholder", | CODE |
| LOW⚡ | packages/cli/src/lib/scope/types.ts | 84 | export type MissionTemplateKind = "placeholder" | "release"; | CODE |
| LOW⚡ | packages/cli/src/lib/scope/types.ts | 86 | "placeholder", | CODE |
| LOW | packages/cli/src/commands/scope.ts | 324 | .option("--template <kind>", `Template: ${SLICE_TEMPLATE_KINDS.join(" | ")}`, "placeholder") | CODE |
| LOW | packages/cli/src/commands/scope.ts | 872 | if (!templateKind) templateKind = isReleaseName ? "release" : "placeholder"; | CODE |
| LOW | packages/cli/src/commands/scope.ts | 1748 | if (s === "placeholder") return "wip"; | CODE |
| LOW | packages/daemon/test/mission-status-sidecar.test.ts | 100 | expect(fresh?.rawStatus).toBe("placeholder"); | CODE |
| LOW | packages/daemon/test/claude-member-token.test.ts | 106 | writeFileSync(project, JSON.stringify({ apiKeyHelper: "/bin/echo not-a-key", env: { ANTHROPIC_API_KEY: "placeholder" | CODE |
| LOW | packages/daemon/test/claude-member-token.test.ts | 126 | db.prepare("UPDATE nodes SET env_json = ? WHERE id = ?").run(JSON.stringify({ ANTHROPIC_AUTH_TOKEN: "placeholder" }) | CODE |
| LOW | packages/daemon/test/claude-member-token.test.ts | 127 | const managed = new ClaudeManagedLaunch(db, { PATH: "/usr/bin:/bin", HOME: home, ANTHROPIC_API_KEY: "placeholder" }, | CODE |
| LOW | packages/daemon/test/review-composer.test.ts | 599 | readme: mod.renderSliceTemplate("placeholder", opts), | CODE |
| LOW | packages/daemon/test/scaffold-cross-reader.test.ts | 50 | readme: mod.renderSliceTemplate("placeholder", opts), | CODE |
| LOW | packages/daemon/test/slice-detail-projector-v1.test.ts | 299 | readme: mod.renderSliceTemplate("placeholder", opts), | CODE |
| LOW | …cs/agents/shared/skills/process/agent-browser/SKILL.md | 33 | agent-browser fill @e1 "user@example.com" | CODE |
| LOW | …cs/agents/shared/skills/process/agent-browser/SKILL.md | 49 | agent-browser fill @e1 "user@example.com" && agent-browser fill @e2 "password123" && agent-browser click @e3 | CODE |
| LOW | …cs/agents/shared/skills/process/agent-browser/SKILL.md | 112 | agent-browser fill @e1 "Jane Doe" | CODE |
| LOW | …cs/agents/shared/skills/process/agent-browser/SKILL.md | 350 | agent-browser find label "Email" fill "user@example.com" | CODE |
| LOW | …ed/skills/process/dogfood/references/issue-taxonomy.md | 65 | - Placeholder or lorem ipsum content left in | CODE |
| LOW⚡ | packages/daemon/src/domain/scope/types.ts | 69 | | "placeholder" | CODE |
| LOW⚡ | packages/daemon/src/domain/scope/types.ts | 76 | "placeholder", | CODE |
| LOW⚡ | packages/daemon/src/domain/scope/types.ts | 84 | export type MissionTemplateKind = "placeholder" | "release"; | CODE |
| LOW⚡ | packages/daemon/src/domain/scope/types.ts | 86 | "placeholder", | CODE |
| LOW | skills/_canonical/process/agent-browser/SKILL.md | 33 | agent-browser fill @e1 "user@example.com" | CODE |
| LOW | skills/_canonical/process/agent-browser/SKILL.md | 49 | agent-browser fill @e1 "user@example.com" && agent-browser fill @e2 "password123" && agent-browser click @e3 | CODE |
| LOW | skills/_canonical/process/agent-browser/SKILL.md | 112 | agent-browser fill @e1 "Jane Doe" | CODE |
| LOW | skills/_canonical/process/agent-browser/SKILL.md | 350 | agent-browser find label "Email" fill "user@example.com" | CODE |
| LOW | …canonical/process/dogfood/references/issue-taxonomy.md | 65 | - Placeholder or lorem ipsum content left in | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | packages/cli/src/commands/whoami.ts | 228 | // Step 5: @rigged_node_id metadata (strongest adopted-session anchor) | COMMENT |
| LOW⚡ | packages/cli/src/commands/whoami.ts | 234 | // Step 6: @rigged_session_name metadata | COMMENT |
| LOW⚡ | packages/cli/src/commands/whoami.ts | 240 | // Step 7: raw tmux session name (weakest fallback) | COMMENT |
| LOW | packages/cli/src/commands/restore-packet.ts | 88 | // Step 1: source_session_id — override > parsed > --source-session arg. | COMMENT |
| LOW | packages/cli/src/commands/restore-packet.ts | 104 | // Step 2: source_rig — override > <seat>@<rig> split. | COMMENT |
| LOW⚡ | packages/daemon/test/plugins-routes.test.ts | 179 | // Step 1: list with ?cwd= — captures id. | COMMENT |
| LOW⚡ | packages/daemon/test/plugins-routes.test.ts | 189 | // Step 2: detail call with that id — must 200 (was 404 pre-fix). | COMMENT |
| LOW | packages/daemon/test/workflow-projector.test.ts | 533 | // Step 1: instantiate, then handoff produce → review. | COMMENT |
| LOW | packages/daemon/test/workflow-projector.test.ts | 553 | // Step 2: park review on the same qitem. | COMMENT |
| LOW | packages/daemon/test/workflow-projector.test.ts | 568 | // Step 3: resume with done on the SAME packet. Must close step "review", | COMMENT |
| LOW⚡ | packages/daemon/src/domain/bundle-archive.ts | 113 | // Step 1: Verify archive-level digest | COMMENT |
| LOW⚡ | packages/daemon/src/domain/bundle-archive.ts | 119 | // Step 2: Pre-scan archive for unsafe entries BEFORE extraction | COMMENT |
| LOW⚡ | packages/daemon/src/domain/bundle-archive.ts | 126 | // Step 3: Extract (safe — pre-scanned and defensively filtered) | COMMENT |
| LOW | packages/daemon/src/domain/bundle-archive.ts | 138 | // Step 3: Verify content integrity | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …penrig-core/skills/refocusing/scripts/trace-to-root.py | 88 | except OSError: | CODE |
| HIGH | …penrig-core/skills/refocusing/scripts/trace-to-root.py | 116 | except json.JSONDecodeError: | CODE |
| HIGH | packages/daemon/assets/openshell/guest.py | 282 | except (Refused, OSError): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …penrig-core/skills/refocusing/scripts/trace-to-root.py | 93 | CODE | |
| LOW | …penrig-core/skills/refocusing/scripts/trace-to-root.py | 256 | CODE | |
| LOW | …penrig-core/skills/refocusing/scripts/trace-to-root.py | 500 | CODE | |
| LOW | …core/skills/openrig-operating-model/scripts/compose.py | 141 | CODE | |
| LOW | …core/skills/openrig-operating-model/scripts/compose.py | 314 | CODE | |
| LOW | …core/skills/openrig-operating-model/scripts/compose.py | 493 | CODE | |
| LOW | packages/daemon/assets/openshell/guest.py | 213 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/reference/a2a-agents.md | 238 | except Exception as error: | CODE |
| LOW | …core/skills/openrig-operating-model/scripts/compose.py | 78 | except Exception as e: | CODE |
| LOW | …core/skills/openrig-operating-model/scripts/compose.py | 310 | except Exception: | CODE |
| MEDIUM | …core/skills/openrig-operating-model/scripts/compose.py | 38 | def _template_bytes(name): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | packages/cli/src/commands/send.ts | 994 | print(`Existing input: ${label}`); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …d/skills/process/systematic-debugging/find-polluter.sh | 54 | # Check if pollution appeared | COMMENT |
| LOW | …anonical/process/systematic-debugging/find-polluter.sh | 54 | # Check if pollution appeared | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …s/daemon/test/getting-started-narrative-parity.test.ts | 72 | const scratchEnd = skill.indexOf("### Create a workflow inside an existing workspace", scratchStart); | CODE |