Add intent reconciliation extension - #3848
Conversation
Assisted-by: Codex (model: GPT-5, autonomous)
There was a problem hiding this comment.
Pull request overview
Adds an opt-in intent reconciliation extension with mandatory implementation hooks and human-authorized decision tracking.
Changes:
- Adds intent and decision reconciliation commands.
- Registers and packages the bundled extension.
- Adds documentation and extension tests.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
extensions/reconcile/extension.yml |
Defines commands and lifecycle hooks. |
extensions/reconcile/README.md |
Documents extension behavior. |
extensions/reconcile/commands/speckit.reconcile.intent.md |
Defines the pre-implementation intent gate. |
extensions/reconcile/commands/speckit.reconcile.decisions.md |
Defines decision capture and propagation. |
extensions/catalog.json |
Registers the bundled extension. |
pyproject.toml |
Includes extension files in wheels. |
docs/toc.yml |
Adds reference navigation. |
docs/reference/overview.md |
Introduces the extension. |
docs/reference/agentic-reconciliation.md |
Provides workflow documentation. |
tests/extensions/reconcile/__init__.py |
Initializes the test package. |
tests/extensions/reconcile/test_reconcile_extension.py |
Tests layout, registration, packaging, and hooks. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
tests/extensions/reconcile/test_reconcile_extension.py:141
- This verifies
HookExecutorsorting, but/speckit.implementdoes not call that API:templates/commands/implement.mdreads the hook list from.specify/extensions.ymldirectly in configured order. Since these tests installgitfirst, the real lifecycle surfaces the Git hook before reconciliation despitepriority: 1;docs/reference/extensions.md:224,232explicitly documents this limitation. Exercise the actual hook-consumption path and either sort hooks when registering them or update the core command path to honor priority.
hooks = HookExecutor(tmp_path).get_hooks_for_event("after_implement")
assert hooks[0]["command"] == "speckit.reconcile.decisions"
assert hooks[0]["priority"] == 1
| before_implement: | ||
| command: speckit.reconcile.intent | ||
| priority: 1 | ||
| optional: false |
|
Please host this as an extension in your own GitHub repository as per our guide Nice work! |
|
Moved the extension to its own repository as requested:
The standalone design also addresses the technical feedback:
Validation includes a clean public-archive install, six focused tests, green GitHub Actions, and real-agent smoke runs confirming unapproved intent blocks before implementation and decision reconciliation returns I am closing this core PR because no core repository change remains after following the publishing guide. Posted on behalf of @SuhaibAslam by Codex (model: GPT-5, autonomous). |
What changed
reconcileextensionWhy
Implementation often reveals constraints and decisions that were not knowable when the original spec was written. Convergence can verify code against existing artifacts, but it cannot determine which artifact should change when implementation produces new evidence.
This extension adds that missing authority checkpoint without changing the default SDD workflow. Implementation remains evidence rather than becoming authority by accident.
Developer impact
Teams opt in with:
The extension then runs:
Validation
123 passedacross the focused extension, registration, and skills tests220 passed, 63 skippedacross the complete extension test suitespecify_cli/core_pack/extensions/reconcilegit diff --checkAgent disclosure
This change was implemented autonomously on behalf of @SuhaibAslam by Codex (model: GPT-5). The commit includes the required
Assisted-bytrailer.