@cassiomc1/forgeloop 1.6.3 → 1.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/DOCS_INDEX.md +26 -4
  2. package/EXECUTION_STATE.md +7 -0
  3. package/LOOP_ENGINEERING.md +58 -0
  4. package/LOOP_SYSTEM_DESIGN.md +54 -0
  5. package/ORCHESTRATOR_INTEGRATION.md +23 -0
  6. package/PROTOCOL_INTEGRATION.md +36 -0
  7. package/QUALITY_SCORECARD.md +21 -0
  8. package/README.md +55 -0
  9. package/TERMINOLOGY.md +11 -0
  10. package/THREAT_MODEL.md +7 -0
  11. package/completions/_forgeloop +85 -0
  12. package/completions/forgeloop.bash +173 -0
  13. package/completions/forgeloop.fish +544 -0
  14. package/docs/AGENT_PROTOCOL_SUMMARY.md +281 -0
  15. package/docs/ARTIFACT_REFERENCE.md +226 -0
  16. package/docs/CLI_REFERENCE.md +308 -2
  17. package/docs/CODE_ATTESTATION.md +141 -0
  18. package/docs/CROSS_HARNESS_CONTINUITY.md +22 -2
  19. package/docs/DOCUMENTATION_GUIDE.md +13 -11
  20. package/docs/GETTING_STARTED.md +98 -1
  21. package/docs/MCP.md +8 -0
  22. package/docs/PLATFORM_ADAPTERS.md +69 -0
  23. package/docs/RECIPES.md +138 -0
  24. package/docs/RELEASE_CHECKLIST.md +54 -0
  25. package/docs/REVISION_PROVIDERS.md +136 -0
  26. package/docs/SIGNING_PROVIDERS.md +83 -0
  27. package/docs/TROUBLESHOOTING.md +184 -0
  28. package/docs/UNIVERSAL_INTEGRATION.md +11 -0
  29. package/docs/assets/diagrams/forgeloop-code-attestation-flow.html +13841 -0
  30. package/docs/assets/diagrams/forgeloop-code-attestation-flow.receipt.json +37 -0
  31. package/docs/assets/diagrams/forgeloop-code-attestation-flow.svg +5046 -0
  32. package/docs/assets/diagrams/forgeloop-engineering-flow.html +46 -43
  33. package/docs/assets/diagrams/forgeloop-engineering-flow.receipt.json +6 -6
  34. package/docs/assets/diagrams/forgeloop-engineering-flow.svg +41 -41
  35. package/docs/assets/diagrams/forgeloop-verification-trust-flow.html +13783 -0
  36. package/docs/assets/diagrams/forgeloop-verification-trust-flow.receipt.json +37 -0
  37. package/docs/assets/diagrams/forgeloop-verification-trust-flow.svg +4988 -0
  38. package/docs/diagrams/README.md +30 -22
  39. package/docs/diagrams/forgeloop-code-attestation-flow.workflow.json +125 -0
  40. package/docs/diagrams/forgeloop-engineering-flow.workflow.json +11 -8
  41. package/docs/diagrams/forgeloop-verification-trust-flow.workflow.json +116 -0
  42. package/docs/diagrams/manifest.json +42 -0
  43. package/docs/diagrams/reviews/forgeloop-code-attestation-flow.review.json +20 -0
  44. package/docs/diagrams/reviews/forgeloop-engineering-flow.review.json +3 -3
  45. package/docs/diagrams/reviews/forgeloop-verification-trust-flow.review.json +20 -0
  46. package/integrations/generic-ci/verify.sh +14 -0
  47. package/package.json +31 -9
  48. package/schemas/attestation-verification-result.schema.json +34 -0
  49. package/schemas/code-attestation.schema.json +61 -0
  50. package/schemas/code-manifest.schema.json +57 -0
  51. package/schemas/config.schema.json +57 -1
  52. package/schemas/handoff-envelope.schema.json +57 -0
  53. package/schemas/in-toto-statement.schema.json +32 -0
  54. package/schemas/responsibility.schema.json +37 -0
  55. package/schemas/verification-scope.schema.json +26 -0
  56. package/schemas/workspace-binding.schema.json +20 -0
  57. package/scripts/CI_VALIDATORS.md +3 -0
  58. package/scripts/benchmark-cli-startup.mjs +60 -0
  59. package/scripts/check-changelog-freshness.mjs +88 -0
  60. package/scripts/check-critical-coverage.mjs +58 -0
  61. package/scripts/generate-agent-protocol-summary.mjs +141 -0
  62. package/scripts/generate-shell-completions.mjs +132 -0
  63. package/scripts/write-forgeloop-attestation-summary.mjs +93 -0
  64. package/src/cli.js +114 -6
  65. package/src/commands/attestation-create.js +30 -0
  66. package/src/commands/attestation-status.js +12 -0
  67. package/src/commands/attestation-verify-range.js +32 -0
  68. package/src/commands/attestation-verify.js +23 -0
  69. package/src/commands/handoff-create.js +9 -0
  70. package/src/commands/handoff-list.js +12 -0
  71. package/src/commands/handoff-show.js +10 -0
  72. package/src/commands/responsibility-set.js +20 -0
  73. package/src/commands/responsibility-status.js +12 -0
  74. package/src/commands/run-check.js +43 -3
  75. package/src/commands/task-repair-legacy-recovery.js +1 -2
  76. package/src/commands/verify-scope.js +9 -0
  77. package/src/commands/workspace-bind.js +17 -0
  78. package/src/commands/workspace-status.js +19 -0
  79. package/src/core/artifact-registry.js +84 -0
  80. package/src/core/attestation-coverage.js +134 -0
  81. package/src/core/attestation-verifier.js +227 -0
  82. package/src/core/attestation.js +263 -0
  83. package/src/core/audit.js +67 -1
  84. package/src/core/bundles.js +210 -9
  85. package/src/core/cli-command-definitions.js +196 -0
  86. package/src/core/code-manifest.js +293 -0
  87. package/src/core/command-executors.js +79 -0
  88. package/src/core/command-input.js +69 -18
  89. package/src/core/command-runtime.js +2 -1
  90. package/src/core/completion.js +170 -8
  91. package/src/core/config.js +60 -2
  92. package/src/core/continuity-cli-options.js +9 -3
  93. package/src/core/continuity-reconciliation.js +20 -0
  94. package/src/core/diagnostic-projection.js +3 -1
  95. package/src/core/error-codes.js +146 -0
  96. package/src/core/events.js +109 -13
  97. package/src/core/exit-codes.js +22 -0
  98. package/src/core/handoff.js +208 -0
  99. package/src/core/information-gain-projection.js +3 -3
  100. package/src/core/integration-invocation-policy.js +40 -0
  101. package/src/core/integration-resources.js +54 -0
  102. package/src/core/next-action-phases.js +968 -0
  103. package/src/core/next-action.js +32 -951
  104. package/src/core/phase.js +29 -1
  105. package/src/core/protocol-info.js +41 -1
  106. package/src/core/repository.js +256 -11
  107. package/src/core/responsibility.js +265 -0
  108. package/src/core/revision/git.js +207 -0
  109. package/src/core/revision/provider.js +90 -0
  110. package/src/core/revision/registry.js +5 -0
  111. package/src/core/route-artifact.js +1 -1
  112. package/src/core/schema-validation.js +8 -0
  113. package/src/core/signing/none.js +23 -0
  114. package/src/core/signing/provider.js +21 -0
  115. package/src/core/signing/registry.js +7 -0
  116. package/src/core/signing/sigstore.js +158 -0
  117. package/src/core/task-command.js +9 -1
  118. package/src/core/task-paths.js +72 -0
  119. package/src/core/templates.js +8 -0
  120. package/src/core/verification-scope-capability.js +179 -0
  121. package/src/core/verification-scope.js +271 -0
  122. package/src/core/workspace-binding.js +211 -0
  123. package/src/integration.d.ts +91 -0
  124. package/AGENT_COMPATIBILITY.md +0 -11
  125. package/docs/RELEASE_CHECKLIST_1_4.md +0 -38
  126. package/docs/RELEASE_CHECKLIST_1_5_MCP.md +0 -78
  127. package/docs/RELEASE_CHECKLIST_1_6_1.md +0 -121
@@ -24,6 +24,11 @@ This guide provides symptom-first recovery procedures for common ForgeLoop proto
24
24
  - [Policy weakening detected (`E_POLICY_WEAKENING`)](#symptom-policy-weakening-detected)
25
25
  - [Baseline re-record blocked during active task (`E_BASELINE_RECORD_DURING_ACTIVE_TASK`)](#symptom-baseline-re-record-blocked-during-active-task)
26
26
  - [Mutation checker execution error (`E_CHECK_MUTATION_EXECUTION_ERROR`)](#symptom-mutation-checker-execution-error)
27
+ - [Workspace binding mismatch or invalid identity](#symptom-workspace-binding-mismatch-or-invalid-identity)
28
+ - [Handoff is invalid or tampered](#symptom-handoff-is-invalid-or-tampered)
29
+ - [Responsibility contract rejects a pass](#symptom-responsibility-contract-rejects-a-pass)
30
+ - [Verification scope is stale or unresolved](#symptom-verification-scope-is-stale-or-unresolved)
31
+ - [Attestation or revision coverage is invalid](#symptom-attestation-or-revision-coverage-is-invalid)
27
32
  - [Another harness cannot resume the task](#symptom-another-harness-cannot-resume)
28
33
  - [Task claim conflict or recovered task](#symptom-task-creation-blocked-by-a-write-claim-conflict-e_task_scope_conflict)
29
34
  - [Stable Error & Reason Code Reference](#stable-error-and-reason-codes)
@@ -726,6 +731,140 @@ A policy rule checker threw an unhandled exception while evaluating its syntheti
726
731
 
727
732
  ---
728
733
 
734
+ ### Symptom: Workspace Binding Mismatch or Invalid Identity
735
+
736
+ #### Error Codes: `E_WORKSPACE_BINDING_MISMATCH`, `E_WORKSPACE_IDENTITY_UNAVAILABLE`, `E_WORKSPACE_BINDING_INVALID`
737
+
738
+ #### What it means
739
+
740
+ The task's optional workspace binding does not match the current repository or
741
+ worktree, or the identity cannot be derived or parsed. A branch name or HEAD
742
+ alone is not a complete workspace identity.
743
+
744
+ #### Safe recovery
745
+
746
+ Inspect the derived result and current task before changing anything:
747
+
748
+ ```bash
749
+ forgeloop workspace-status --task <id> --json
750
+ forgeloop status --task <id> --json
751
+ forgeloop inspect --task <id> --json
752
+ ```
753
+
754
+ Return to the bound checkout or create a deliberate new task/worktree. Do not
755
+ edit `workspace-binding.json` manually or bypass the boundary. Rebinding is an
756
+ explicit operation only when the task's scope permits it.
757
+
758
+ ---
759
+
760
+ ### Symptom: Handoff Is Invalid or Tampered
761
+
762
+ #### Error Codes: `E_HANDOFF_INVALID`, `E_HANDOFF_STATE_UNAVAILABLE`, `E_HANDOFF_TAMPERED`, `E_HANDOFF_NOT_FOUND`
763
+
764
+ #### What it means
765
+
766
+ The immutable handoff envelope is malformed, its state is unavailable, its
767
+ digest no longer matches, or the requested snapshot does not exist. A handoff
768
+ note is not delegation, authority, independent review evidence, or completion
769
+ evidence.
770
+
771
+ #### Safe recovery
772
+
773
+ ```bash
774
+ forgeloop handoff-list --task <id> --json
775
+ forgeloop handoff-show --task <id> --id <handoffId> --json
776
+ forgeloop continuity --task <id> --json
777
+ forgeloop reconcile-continuity --task <id> --json
778
+ ```
779
+
780
+ Use the last valid handoff or continuity only to focus inspection, then trust
781
+ the canonical task state and checkout. Never repair a handoff by editing or
782
+ deleting its JSON file.
783
+
784
+ ---
785
+
786
+ ### Symptom: Responsibility Contract Rejects a Pass
787
+
788
+ #### Error Codes: `E_RESPONSIBILITY_INVALID`, `E_RESPONSIBILITY_SCOPE_VIOLATION`, `E_RESPONSIBILITY_FROZEN_INPUT_DRIFT`, `E_RESPONSIBILITY_REQUIRED_CHECK_MISSING`
789
+
790
+ #### What it means
791
+
792
+ An optional responsibility contract is malformed, a changed path is outside
793
+ the allowed boundary, a frozen contract/route/claims input drifted, or a
794
+ required check is missing. Its label is descriptive and does not represent a
795
+ coder, reviewer, or cleaner role.
796
+
797
+ #### Safe recovery
798
+
799
+ ```bash
800
+ forgeloop responsibility-status --task <id> --json
801
+ forgeloop inspect --task <id> --json
802
+ forgeloop next --task <id> --json
803
+ ```
804
+
805
+ Restore the declared scope or create a new explicit responsibility decision
806
+ through `responsibility-set`. Do not widen the JSON artifact manually and do
807
+ not relabel the pass to bypass enforcement.
808
+
809
+ ---
810
+
811
+ ### Symptom: Verification Scope Is Stale or Unresolved
812
+
813
+ #### Error Codes: `E_VERIFICATION_SCOPE_INVALID`, `E_VERIFICATION_SCOPE_STALE`, `E_VERIFICATION_SCOPE_UNRESOLVED`
814
+
815
+ #### What it means
816
+
817
+ The scope is malformed or no longer matches the task's cycle, claims, contract,
818
+ repository fingerprint, changed paths, or checker capability. `CHANGED` and
819
+ `CLAIMED` require a trusted scoped checker; `AUTO` uses those modes only when
820
+ they can be proved and otherwise resolves to `FULL`. There is no heuristic
821
+ `IMPACTED` mode.
822
+
823
+ #### Safe recovery
824
+
825
+ ```bash
826
+ forgeloop verify-scope --task <id> --mode AUTO --json
827
+ forgeloop run-check --task <id> --id <checkId> \
828
+ --requirement "<requirement>" \
829
+ --scope-ref .forgeloop/task-state/<taskKey>/verification-scope.json \
830
+ -- <exact-argv-prefix-and-paths>
831
+ ```
832
+
833
+ If no trusted scoped checker is configured, run a full check or record the
834
+ scope as unresolved. An exact argv or selected-path mismatch is rejected before
835
+ launch; do not retry with guessed paths or edit the scope artifact.
836
+
837
+ ---
838
+
839
+ ### Symptom: Attestation or Revision Coverage Is Invalid
840
+
841
+ #### Error Codes: `E_ATTESTATION_MANIFEST_INVALID`, `E_ATTESTATION_MANIFEST_STALE`, `E_ATTESTATION_STATEMENT_INVALID`, `E_ATTESTATION_UNSIGNED`, `E_ATTESTATION_SIGNATURE_INVALID`, `E_ATTESTATION_SIGNER_UNAVAILABLE`, `E_ATTESTATION_IDENTITY_UNTRUSTED`, `E_ATTESTATION_ISSUER_UNTRUSTED`, `E_ATTESTATION_COVERAGE_GAP`, `E_ATTESTATION_COVERAGE_CONFLICT`, `E_REVISION_PROVIDER_UNAVAILABLE`, `E_REVISION_CONTENT_UNAVAILABLE`
842
+
843
+ #### What it means
844
+
845
+ The exact source-content manifest, completion/ledger binding, in-toto
846
+ statement, signer policy, revision provider, or range coverage is missing,
847
+ stale, invalid, unavailable, or conflicting. `PROCESSED` is not `VERIFIED`,
848
+ and `VERIFIED` is not `ATTESTED` without a valid external signature.
849
+
850
+ #### Safe recovery
851
+
852
+ Use read-only inspection first:
853
+
854
+ ```bash
855
+ forgeloop attestation-status --task <id> --json
856
+ forgeloop attestation-verify --task <id> --ref HEAD --json
857
+ forgeloop attestation-verify-range --revision-provider git \
858
+ --base origin/main --head HEAD --require-complete-coverage --json
859
+ ```
860
+
861
+ Correct the named source or provider boundary through its canonical lifecycle.
862
+ Uncovered paths and conflicting task digests fail closed; an unavailable signer
863
+ does not become a valid signature. Never edit a manifest, statement, receipt,
864
+ ledger, or signature bundle manually, and never persist credentials in them.
865
+
866
+ ---
867
+
729
868
  ### Symptom: Another Harness Cannot Resume
730
869
 
731
870
  #### Likely causes
@@ -780,6 +919,31 @@ forgeloop next --task <id> --json
780
919
  | `E_APPROVAL_ALREADY_RESOLVED` | Approval is one-time resolvable and has already been approved or rejected. | Request a new approval if another decision is required. |
781
920
  | `E_APPROVAL_INVALID` | Approval artifact is malformed or does not bind the required fingerprint tuple. | Request a new approval with forgeloop approval-request; never hand-edit approval artifacts. |
782
921
  | `E_APPROVAL_STALE` | Approval no longer matches the current action fingerprint, contract fingerprint, task revision, or capability. | Request and resolve a fresh approval against the current action revision. |
922
+ | `E_ATTESTATION_CONFIGURATION_INVALID` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
923
+ | `E_ATTESTATION_CONTENT_MISMATCH` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
924
+ | `E_ATTESTATION_CONTRACT_MISMATCH` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
925
+ | `E_ATTESTATION_COVERAGE_CONFLICT` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
926
+ | `E_ATTESTATION_COVERAGE_GAP` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
927
+ | `E_ATTESTATION_DISABLED` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
928
+ | `E_ATTESTATION_GIT_REQUIRED` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
929
+ | `E_ATTESTATION_IDENTITY_UNTRUSTED` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
930
+ | `E_ATTESTATION_INVALID` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
931
+ | `E_ATTESTATION_ISSUER_UNTRUSTED` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
932
+ | `E_ATTESTATION_LEDGER_MISMATCH` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
933
+ | `E_ATTESTATION_MANIFEST_INVALID` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
934
+ | `E_ATTESTATION_MANIFEST_MISSING` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
935
+ | `E_ATTESTATION_MANIFEST_STALE` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
936
+ | `E_ATTESTATION_RECEIPT_MISMATCH` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
937
+ | `E_ATTESTATION_ROUTE_MISMATCH` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
938
+ | `E_ATTESTATION_SCOPE_MISMATCH` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
939
+ | `E_ATTESTATION_SIGNATURE_INVALID` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
940
+ | `E_ATTESTATION_SIGNER_UNAVAILABLE` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
941
+ | `E_ATTESTATION_STATEMENT_INVALID` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
942
+ | `E_ATTESTATION_STATEMENT_MISSING` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
943
+ | `E_ATTESTATION_STATE_MISMATCH` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
944
+ | `E_ATTESTATION_SUBJECT_MISMATCH` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
945
+ | `E_ATTESTATION_TARGET_REF_INVALID` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
946
+ | `E_ATTESTATION_UNSIGNED` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
783
947
  | `E_AUTHORITY_INVALID` | Authority grant file is malformed or expired. | Obtain a valid authority grant from host operator. |
784
948
  | `E_AUTHORITY_SCOPE_MISMATCH` | Authority grant does not cover the requested package. | Request updated authority scope. |
785
949
  | `E_AUTHORITY_UNTRUSTED_SOURCE` | Authority file placed inside untrusted project tree. | Place authority file in host-managed trusted location. |
@@ -791,6 +955,7 @@ forgeloop next --task <id> --json
791
955
  | `E_CHECK_MUTATION_NOT_DETECTED` | A blocking rule checker failed to detect an intentional mutation fixture. | Fix checker logic to properly identify target violations. |
792
956
  | `E_CHECK_STATUS_CONTRADICTION` | A ForgeLoop protocol validation or lifecycle condition was not satisfied. | Inspect the structured command result, correct the named artifact or prerequisite, then run forgeloop next --json. |
793
957
  | `E_CIRCULAR_COMPLETION_REQUIREMENT` | A ForgeLoop protocol validation or lifecycle condition was not satisfied. | Inspect the structured command result, correct the named artifact or prerequisite, then run forgeloop next --json. |
958
+ | `E_CLI_INVOCATION_INVALID` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
794
959
  | `E_COMMAND_RESOLUTION_AMBIGUOUS` | A ForgeLoop protocol validation or lifecycle condition was not satisfied. | Inspect the structured command result, correct the named artifact or prerequisite, then run forgeloop next --json. |
795
960
  | `E_COMPLETION_OWNERSHIP_UNPROVEN` | Work-state claims COMPLETE but the canonical lifecycle/ledger completion proof is missing or invalid, so historical claims stay reserved. | Restore the canonical completion event and a valid ledger, or re-run the official completion pipeline; phase=COMPLETE alone never releases claims. |
796
961
  | `E_COMPLETION_RECOVERY_UNAUTHORIZED` | A ForgeLoop protocol validation or lifecycle condition was not satisfied. | Inspect the structured command result, correct the named artifact or prerequisite, then run forgeloop next --json. |
@@ -835,6 +1000,10 @@ forgeloop next --task <id> --json
835
1000
  | `E_GATE_REQUIRED` | A ForgeLoop protocol validation or lifecycle condition was not satisfied. | Inspect the structured command result, correct the named artifact or prerequisite, then run forgeloop next --json. |
836
1001
  | `E_GATE_STALE` | Referenced gate artifact changed after approval. | Update artifact SHA-256 in gate file. |
837
1002
  | `E_GATE_UNVERIFIED` | A ForgeLoop protocol validation or lifecycle condition was not satisfied. | Inspect the structured command result, correct the named artifact or prerequisite, then run forgeloop next --json. |
1003
+ | `E_HANDOFF_INVALID` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
1004
+ | `E_HANDOFF_NOT_FOUND` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
1005
+ | `E_HANDOFF_STATE_UNAVAILABLE` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
1006
+ | `E_HANDOFF_TAMPERED` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
838
1007
  | `E_HYPOTHESIS_DISPOSITION_EVIDENCE_INVALID` | Hypothesis disposition evidence references do not resolve to checks of the active cycle. | Reference at least one check ID recorded in the active verification cycle. |
839
1008
  | `E_HYPOTHESIS_DISPOSITION_INVALID` | Hypothesis disposition is malformed or references an unknown hypothesis or disallowed transition. | Record a disposition for a known hypothesis using an allowed status transition. |
840
1009
  | `E_HYPOTHESIS_INVALID` | A ForgeLoop protocol validation or lifecycle condition was not satisfied. | Inspect the structured command result, correct the named artifact or prerequisite, then run forgeloop next --json. |
@@ -897,6 +1066,15 @@ forgeloop next --task <id> --json
897
1066
  | `E_RECONCILE_REQUIREMENT_UNKNOWN` | The supplied check id and requirement text do not exactly match a contract verification item of type VERIFICATION. | Supply the exact id and requirement text of an existing contract verification item. |
898
1067
  | `E_RECONCILE_UNSUPPORTED_DRIFT` | Work-state drift includes kinds other than REPOSITORY_CHANGED (contract or required-artifact drift). | Resolve contract or artifact drift through their dedicated recovery surfaces; reconcile-closure only refreshes repository fingerprint drift. |
899
1068
  | `E_REPOSITORY_CHANGED` | The repository fingerprint (branch or HEAD) moved after the work-state checkpoint was recorded. | If the task objective is already satisfied in the current repository, run forgeloop reconcile-closure; otherwise resume from a checkpoint that matches the current repository. |
1069
+ | `E_RESPONSIBILITY_FROZEN_INPUT_DRIFT` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
1070
+ | `E_RESPONSIBILITY_INVALID` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
1071
+ | `E_RESPONSIBILITY_REQUIRED_CHECK_MISSING` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
1072
+ | `E_RESPONSIBILITY_SCOPE_VIOLATION` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
1073
+ | `E_REVISION_CONTENT_UNAVAILABLE` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
1074
+ | `E_REVISION_NOT_FOUND` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
1075
+ | `E_REVISION_PROVIDER_AMBIGUOUS` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
1076
+ | `E_REVISION_PROVIDER_INVALID` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
1077
+ | `E_REVISION_PROVIDER_UNAVAILABLE` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
900
1078
  | `E_ROUTE_GUIDE_MISMATCH` | A ForgeLoop protocol validation or lifecycle condition was not satisfied. | Inspect the structured command result, correct the named artifact or prerequisite, then run forgeloop next --json. |
901
1079
  | `E_ROUTE_INVALID` | A ForgeLoop protocol validation or lifecycle condition was not satisfied. | Inspect the structured command result, correct the named artifact or prerequisite, then run forgeloop next --json. |
902
1080
  | `E_ROUTE_MISSING` | A ForgeLoop protocol validation or lifecycle condition was not satisfied. | Inspect the structured command result, correct the named artifact or prerequisite, then run forgeloop next --json. |
@@ -947,6 +1125,12 @@ forgeloop next --task <id> --json
947
1125
  | `E_TRAJECTORY_SCENARIO_INVALID` | Trajectory scenario file is missing required fields or schema-invalid. | Correct the scenario JSON against schemas/trajectory-scenario.schema.json. |
948
1126
  | `E_VERIFICATION_EXECUTION_INVALID` | The trusted verification execution adapter returned incomplete or invalid execution metadata. | Repair the adapter contract and rerun verification; do not promote incomplete execution evidence. |
949
1127
  | `E_VERIFICATION_ISOLATION_UNAVAILABLE` | Verification cannot run because the required disposable or system isolation boundary is unavailable. | Use a trusted ForgeLoop execution adapter with the required isolation mode; never run the check in the live project. |
1128
+ | `E_VERIFICATION_SCOPE_INVALID` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
1129
+ | `E_VERIFICATION_SCOPE_STALE` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
1130
+ | `E_VERIFICATION_SCOPE_UNRESOLVED` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
950
1131
  | `E_VERIFICATION_TOOL_UNAVAILABLE` | Required verification executable is missing in environment. | Use local equivalent, obtain host authority, or record NOT_VERIFIED. |
1132
+ | `E_WORKSPACE_BINDING_INVALID` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
1133
+ | `E_WORKSPACE_BINDING_MISMATCH` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
1134
+ | `E_WORKSPACE_IDENTITY_UNAVAILABLE` | A ForgeLoop boundary, artifact, provider, or attestation validation condition was not satisfied. | Inspect the structured command result, correct the named boundary or artifact, then retry the canonical command. |
951
1135
 
952
1136
  <!-- END FORGELOOP GENERATED: public-error-codes -->
@@ -46,3 +46,14 @@ import {
46
46
  All consumers share one protocol authority: `.forgeloop/` state written only
47
47
  by canonical ForgeLoop commands, so cross-harness continuity and recovery work
48
48
  identically regardless of transport.
49
+
50
+ Optional integrations use the same ownership boundary. ForgeLoop derives and
51
+ validates workspace bindings, immutable handoffs, responsibility constraints,
52
+ verification scopes, execution evidence, code manifests, attestation
53
+ statements, and provider results. The embedding host owns checkout selection,
54
+ model/tool execution, scheduling, transport, external signer credentials, and
55
+ platform presentation. A handoff or continuity note never becomes evidence;
56
+ `CHANGED`/`CLAIMED` verification scope never becomes revision-range coverage;
57
+ and only a validated external signature can raise `VERIFIED` to `ATTESTED`.
58
+ These extensions are optional and do not change the zero-configuration basic
59
+ loop.