Update intake extension structured IR contracts#44
Conversation
66b7b90 to
a76d8ad
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 66b7b908d8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| elif status == "ready": | ||
| non_ci_assertions.append(assertion_id) |
There was a problem hiding this comment.
Do not fail allowed manual-review assertions
When an IR bundle has at least one ready ci_low_cost assertion plus a separate ready manual_review assertion, this branch records the manual-review assertion as non_ci_assertions and the later readiness check fails the whole bundle with IR_ASSERTION_COVERAGE_INCOMPLETE. The structured IR contract allows manual-review assertions as explicit evidence; they just must not satisfy CI readiness, so this should only require at least one ready low-cost CI assertion rather than blocking additional manual-review evidence.
Useful? React with 👍 / 👎.
| for ir_ref in assertion.get("ir_refs") or []: | ||
| if ir_ref not in ir_ids: | ||
| missing_refs.append(str(ir_ref)) |
There was a problem hiding this comment.
Guard scalar IR refs before iterating
If ir-assertions.yaml is schema-invalid because an assertion has a scalar ir_refs value such as 123, schema validation records IR_SCHEMA_INVALID but validation continues into this loop and attempts to iterate the scalar, raising TypeError before emit() can return the blocker/JSON result. This makes malformed user artifacts crash the validator instead of reporting the schema blocker; check that ir_refs is a list before iterating or skip cross-reference checks after schema failure.
Useful? React with 👍 / 👎.
| }, | ||
| "provides": { | ||
| "commands": 4, | ||
| "commands": 5, |
There was a problem hiding this comment.
Publish a new release before advertising five commands
This catalog entry now advertises five Intake commands and the structured-IR capability, but the surrounding metadata still points consumers at version/download_url v0.1.3 while the extension changelog keeps the new IR command under Unreleased. Users installing from the catalog URL will fetch the old release archive without speckit.intake.ir, so the catalog should be updated to a source release that actually contains the fifth command or keep the command count at the released artifact's contents.
Useful? React with 👍 / 👎.
Assisted-by: Codex (GPT-5, autonomous)
a76d8ad to
1a0339a
Compare
Summary
intakeextension contracts to include structured UI acceptance IR./speckit.intake.ircommand, structured IR schemas, evidence packet template, and validator.Community submission metadata
Submission route: pr-template
Catalog type: extension
Maintainer direct PR approval: bigsmartben/spec-kit-intake#2
Source repository: https://github.com/bigsmartben/spec-kit-intake
Source version: 0.1.3
Source commit: f87d4c1667bdba744aadf5a7e827233f41d638ad
Download URL: https://github.com/bigsmartben/spec-kit-intake/archive/refs/tags/v0.1.3.zip
Changed catalog type: extension
Validation evidence:
.venv\Scripts\python.exe -m pytest extensions\intake\tests\test_extension_contract.py -q.venv\Scripts\python.exe extensions\intake\scripts\python\validate_structured_ir_intake.py --helpDownstream context
community/update-intake-contractsNotes
This keeps structured IR owned by the Intake extension as provider-neutral evidence. Downstream workflow-preset consumes refs/readiness but does not own visual validation tasks.