Skip to content

✨ feat: extensiontest: run manifest examples safely - #394

Merged
pascalandy merged 6 commits into
mainfrom
cor-103-t4-run-examples
Oct 30, 2026
Merged

pascalandy merged 6 commits into
mainfrom
cor-103-t4-run-examples

Conversation

@pascalandy

@pascalandy pascalandy commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

Manifest examples could pass just check even when command preparation refused them.
The agent examples omitted their required model value, which parsing alone could not detect.

Run each example in fresh scratch folders with scenario fixtures and the shared answer check.
Use a dry run when available, and require declared unpaid effects for other runs.
Print each skip reason, and keep example calls separate from scenario coverage.
The agent examples now include --model MODEL_ID.

Proved by: D069 returned exit 2 before the example fix and exit 0 afterward; uv run --no-project --python 3.12 just check passes.

  • 1. Spec: the sections that the card reads cover every command, flag, JSON key, and error code you add or change
  • 2. Scenario: each scenario that the card proves fails for the missing behavior
  • 3. Code: those scenarios pass
  • 4. Text: n/a, new messages are test diagnostics, with no new product strings
  • 5. Checks: just check passes
  • 6. Verify: claude-haiku-5-5 (xhigh) ran verify-nicely on agent at 7f154ee1, clean (evidence/commit.txt: 7f154ee10c3c). The later fixes change only how notices print, not the examples or the agent feature:
    • ncly v0.23.4-0.20261030024727-7f154ee10c3c; Install, Discovery, Help, Dry run, Dry run as text, No record, and Without --tools of agent pass
    • ncly agent run --help lists $ ncly agent run "Review this branch" --tools --model MODEL_ID --effort high --dry-run and $ ncly agent run --task-file task.md --tools --model MODEL_ID --run-id review-1 --json
    • That first example with test-model: exit 0, "dry_run":true, "model":"test-model", "effort":"high"
    • The old example without --model: exit 2, "code":"USAGE_INVALID","message":"No model is set for Codex."
  • 7. Docs: the card is done in its backlog item, README.md shows any change a user sees, and a skill teaches any command you add: the extension's, or nicely for core. No new product command
  • 8. Sign off: pending: root. just signoff passes, or just signoff-layers for a stack

Review fixes: a skipped example's reason is a notice that the template's just check prints after the test results, through go run ./internal/export test (Sol S1). Core keeps its cached go test lines (S2), and the notices go to stderr, so -json output stays valid (S3). Card T5 reuses extensionrepo.Notice for its untested reasons.

Rebase onto T6 (nicely#396): T6's fixture tests now run T4's manifest examples. The paired fixture answers its declared dry run without a key, since ncly passes no key in a dry run, and only hang.mov starts the cleanup test's endless child (03f7dc08). The template's command now offers a dry run, so the notice test uses an example of ncly describe, which the kit skips (d38bc5ae). The Manifest examples section moves unchanged to manifest-examples.md to keep test-kit.md under its size limit (9a7c2317). Separate Sol reviews approved 03f7dc08 and d38bc5ae. The split moves text without a change.

Root review: Opus 5.5 read the full diff and each fix, and wrote the three rebase commits.

Reviewed with sol-loop: 3 rounds with gpt-6.1-sol on xhigh. Sol verdict: approved

by GPT-6.1-Sol via Codex

@coderabbitai

coderabbitai Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Repository UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 955da80f-53fb-429b-a78c-b63d9e189072

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@pascalandy
pascalandy force-pushed the cor-103-t4-run-examples branch from 7f154ee to c233fbe Compare October 30, 2026 03:13
- Purpose: catch examples that cannot prepare, including COR-103-T4 defect D069
- Impact: check example answers in scratch folders and require explicit safety before execution
- Purpose: expose skipped examples after Go filters passing test output
- Impact: share the notice path with declared-code checks
- Purpose: Preserve cached core tests and valid JSON test output
- Impact: Print collected notices on stderr in rendered extension checks
@pascalandy
pascalandy force-pushed the cor-103-t4-run-examples branch from 6955b06 to f1041ca Compare October 30, 2026 03:35
pascalandy and others added 3 commits October 29, 2026 23:52
- Purpose: Run T4's manifest example inside T6's paired and signal fixtures
- Impact: The paired fixture answers its declared dry run without a key, and only hang.mov starts the endless child

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Purpose: Keep the notice test working now that the template command offers a dry run
- Impact: An example of ncly describe gives the skip notice that plain and JSON checks must show

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Purpose: Keep test-kit.md under its size limit after T4 and T6
- Impact: The Manifest examples section moves unchanged to manifest-examples.md, linked from test-kit.md and the contract index

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@pascalandy
pascalandy merged commit 9a7c231 into main Oct 30, 2026
3 checks passed
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.

1 participant