Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"schema_version": 1,
"workflow_version": 2,
"workflow_origin_version": 2,
"id": "CHG-0073-approve-rejects-living-added-reqs-and-draft-next-action-waits-on-complete-artifa",
"slug": "approve-rejects-living-added-reqs-and-draft-next-action-waits-on-complete-artifa",
"title": "Approve rejects living ADDED REQs and draft next_action waits on complete artifacts",
"description": "Approve rejects living ADDED REQs and draft next_action waits on complete artifacts",
"kind": "bug_fix",
"state": "accepted",
"canonical_applied": true,
"base_commit": "109164ad9faccb598ae7e8caf7a2d488722cc237",
"created_at": 1785595484,
"updated_at": 1785627961,
"affected_specs": [
"change",
"cmd_change"
],
"affected_paths": [
".specsync/change-sequence.json",
"AGENTS.md",
"CHANGELOG.md",
"CONTRIBUTING.md",
"fledge.toml",
"scripts/",
"specs/change/",
"specs/cmd_change/",
"src/change.rs",
"src/commands/change.rs"
],
"no_spec_change": false,
"no_spec_change_rationale": null,
"acceptance_criteria": [
"Approve fails closed when ## ADDED targets a living requirement ID and steers agents to ## MODIFIED; draft next_action prefers completing incomplete selected artifacts over approve when artifacts_complete is false."
],
"selected_artifacts": [
"context",
"testing",
"tasks",
"design",
"requirements",
"docs"
],
"dependencies": [],
"answers": {
"architecture_risk": "no",
"public_contract": "yes"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,13 @@
"public_contract": "yes"
}
}
},
{
"gate": "finalization",
"actor": "specsync:finalization",
"timestamp": 1785627961,
"digest": "6fc0821b4f677810b36199fec875f59e4b9a3129bad7b3c5b322a835d76a4630",
"note": "Same-PR finalization closing digest"
}
],
"reopenings": []
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
id: CHG-0073-approve-rejects-living-added-reqs-and-draft-next-action-waits-on-complete-artifa
state: implementing
state: archived
type: bug_fix
base_commit: 109164ad9faccb598ae7e8caf7a2d488722cc237
---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@ artifact: context

# Context

## CLI next-action regression coverage

- Trigger: independent review found that domain-summary coverage did not execute the text command
adapter used by `change status`, `change show`, and `change list`.
- Root cause: the testing map treated shared domain logic as proof of command-renderer behavior.
- Invariant: every text draft surface prefers incomplete-artifact guidance and never recommends
`change approve` until selected artifacts are complete.
- Regression: `draft_text_surfaces_require_complete_artifacts_before_approval` exercises the exact
shared renderer used by all three text surfaces against one interview-complete draft.

Sandbox dogfood (issues #14 and #16) showed two agent-facing lifecycle gaps on SpecSync 6.0:

1. Draft next_action recommended change approve while selected artifacts still contained incomplete HTML TODO comment stubs (artifacts_complete=false).
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"schema_version": 2,
"change_id": "CHG-0073-approve-rejects-living-added-reqs-and-draft-next-action-waits-on-complete-artifa",
"implementation_commit": "5a2547ec2f8fc516c2dc28bc04f84346dec62971",
"implementation_tree": "907d6ab8c738628bdebad1e82abb0d8e1b0d7590",
"contract_digest": "83601613808f75a7ca0550a4f9566c835b943bebd7a61b53587b77eaefa11f53",
"workspace_digest": "5b2ee5cca0f72cbd13dcc5ae664cd04099a5ea6f508ef9021269e252af971dac",
"closing_digest": "6fc0821b4f677810b36199fec875f59e4b9a3129bad7b3c5b322a835d76a4630",
"review_digest": "9897c41148a0f19a1dcb4591c3edc1cb933ea3d77507f4ce823e17080c160842",
"finalization_digest": "63a91e81cfdaa958c042ddd26ffb6b299800e175f6f4c40ec762bf63cf36ae47",
"timestamp": 1785627961
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,38 @@
"execution_digest": "ccf5fb9a066c478344c84bf1fa3f1e7e2087882a89f820ea41b55b881d6d4b10",
"workspace_digest": "c7c77d0ee4f3cee9a55824be8bcc28d525d064ba7a5da0726607ba92bf622283",
"timestamp": 1785603972
},
{
"schema_version": 2,
"change_id": "CHG-0073-approve-rejects-living-added-reqs-and-draft-next-action-waits-on-complete-artifa",
"reviewer": "Ohm",
"provenance": {
"schema_version": 1,
"provider": "github_actions_check",
"required_check": "SpecSync scoped review"
},
"verdict": "pass",
"implementation_commit": "6a0956fbe53669aa9a7bc564fd472e0952a70f2a",
"contract_digest": "83601613808f75a7ca0550a4f9566c835b943bebd7a61b53587b77eaefa11f53",
"execution_digest": "43ac93c221045e4fd2b7571d5bac1b05715a66c54a6d4d53997cc911a9e1f057",
"workspace_digest": "5b2ee5cca0f72cbd13dcc5ae664cd04099a5ea6f508ef9021269e252af971dac",
"timestamp": 1785621014
},
{
"schema_version": 2,
"change_id": "CHG-0073-approve-rejects-living-added-reqs-and-draft-next-action-waits-on-complete-artifa",
"reviewer": "Ohm",
"provenance": {
"schema_version": 1,
"provider": "github_actions_check",
"required_check": "SpecSync scoped review"
},
"verdict": "pass",
"implementation_commit": "5a2547ec2f8fc516c2dc28bc04f84346dec62971",
"contract_digest": "83601613808f75a7ca0550a4f9566c835b943bebd7a61b53587b77eaefa11f53",
"execution_digest": "43ac93c221045e4fd2b7571d5bac1b05715a66c54a6d4d53997cc911a9e1f057",
"workspace_digest": "5b2ee5cca0f72cbd13dcc5ae664cd04099a5ea6f508ef9021269e252af971dac",
"timestamp": 1785627934
}
]
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"schema_version": 2,
"change_id": "CHG-0073-approve-rejects-living-added-reqs-and-draft-next-action-waits-on-complete-artifa",
"reviewer": "product-scoped-review",
"reviewer": "Ohm",
"provenance": {
"schema_version": 1,
"provider": "github_actions_check",
"required_check": "SpecSync scoped review"
},
"verdict": "pass",
"implementation_commit": "ec4eb1bcde91e8158bba08286d242da85a705244",
"implementation_commit": "5a2547ec2f8fc516c2dc28bc04f84346dec62971",
"contract_digest": "83601613808f75a7ca0550a4f9566c835b943bebd7a61b53587b77eaefa11f53",
"execution_digest": "ccf5fb9a066c478344c84bf1fa3f1e7e2087882a89f820ea41b55b881d6d4b10",
"workspace_digest": "c7c77d0ee4f3cee9a55824be8bcc28d525d064ba7a5da0726607ba92bf622283",
"timestamp": 1785603972
"execution_digest": "43ac93c221045e4fd2b7571d5bac1b05715a66c54a6d4d53997cc911a9e1f057",
"workspace_digest": "5b2ee5cca0f72cbd13dcc5ae664cd04099a5ea6f508ef9021269e252af971dac",
"timestamp": 1785627934
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
"title": "Approve rejects living ADDED REQs and draft next_action waits on complete artifacts",
"description": "Approve rejects living ADDED REQs and draft next_action waits on complete artifacts",
"kind": "bug_fix",
"state": "verifying",
"state": "archived",
"canonical_applied": true,
"base_commit": "109164ad9faccb598ae7e8caf7a2d488722cc237",
"created_at": 1785595484,
"updated_at": 1785605361,
"updated_at": 1785628109,
"affected_specs": [
"change",
"cmd_change"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,7 @@ artifact: testing

- `REQ-change-047`: covered by `draft_next_action_prefers_complete_artifacts_over_approve`.
- `REQ-change-048`: covered by `added_requirement_already_in_living_tree_fails_delta_validation` (validate + approve fail; MODIFIED ok).
- `REQ-cmd-change-006`: covered by text-mode next-action path using `artifacts_complete_for_guidance` (unit coverage via draft completeness summarize path).
- `REQ-cmd-change-006`: covered directly by
`draft_text_surfaces_require_complete_artifacts_before_approval`, which exercises the shared
text renderer used by `change status`, `change show`, and `change list` and rejects any approval
recommendation.
Loading
Loading