Skip to content

fix: status names a complete phase whose report is not on disk, and the README says what to commit - #302

Merged
TheAmericanMaker merged 1 commit into
mainfrom
fix/259-findings-gitignore
Sep 12, 2026
Merged

fix: status names a complete phase whose report is not on disk, and the README says what to commit#302
TheAmericanMaker merged 1 commit into
mainfrom
fix/259-findings-gitignore

Conversation

@TheAmericanMaker

Copy link
Copy Markdown
Member

Closes #259 (D-M16, "port differently").

What the issue asked, and what this does

The issue's fix is "pick one policy (findings committed by default, documented opt-out) and apply it on both install paths". Half of that landed in 0.19.6: since #229 both install paths write the same .gitignore. The other half — flipping the default to commit findings — is a product decision the maintainer made the opposite way in the same release (the ignore list was extended to cover the two deep-audit reports), and the spec carries it as needs-maintainer-decision. So this PR keeps ignore-by-default and removes the silent part of the problem:

  • listMissingCompletedOutputs(state) / describeMissingCompletedOutputs(missing) in core/pipeline.ts: every phase status.yaml marks complete whose primary_output is not on disk.
  • codecarto_status prints the list after the scaffold notice and adds missingOutputs to structuredContent; /codecarto-status prints the same lines in the widget and its notice becomes a warning. Line-for-line parity is tested.
  • README gains a What to commit subsection stating the policy, the consequence (a clone carries the status, not the reports), where it is surfaced, and the per-workspace opt-out (delete the findings/… lines from the workspace's .codecarto/.gitignore).

If you'd rather flip the default, it is a template edit (.codecarto/templates/gitignore + the byte-identical .codecarto/.gitignore) and a README sentence; this PR's check stays useful either way (it also catches a report deleted by hand).

Tests

tests/missing-completed-outputs.test.mjs (3 new; suite 724/724; all 3 fail on the pre-fix code): the helper on a fresh workspace (nothing) and after complete-then-delete (one entry); MCP status text + payload, and silence once the report is back; Pi widget lines equal MCP's and the notice level is warning.

🤖 Generated with Claude Code

…he README says what to commit

status.yaml is committed and records which phases are complete; the
reports those phases wrote are gitignored by default (on every install
path since #229). A teammate's fresh clone therefore says "6/7 complete"
about findings it does not have, and nothing said so.

The default stays — the ignore list was extended deliberately in 0.19.6,
and the spec left "commit findings by default?" as a maintainer decision
— but the divergence is no longer silent: listMissingCompletedOutputs
names every complete phase whose primary output is absent, and both
codecarto_status and /codecarto-status print the list (Pi's notice
becomes a warning; MCP adds missingOutputs to the payload). README gains
a "What to commit" section stating the policy, the consequence, and the
per-workspace opt-out (#259).

Closes #259.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@TheAmericanMaker
TheAmericanMaker force-pushed the fix/259-findings-gitignore branch from ef406a2 to 3b44f9d Compare September 12, 2026 05:53
@TheAmericanMaker
TheAmericanMaker merged commit 3e47976 into main Sep 12, 2026
5 checks passed
@TheAmericanMaker
TheAmericanMaker deleted the fix/259-findings-gitignore branch September 12, 2026 05:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[self-audit D-M16] Findings are gitignored in checkout installs but committed in npm installs

1 participant