@cassiomc1/forgeloop 1.10.0 → 1.10.1

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 (60) hide show
  1. package/DOCS_INDEX.md +9 -0
  2. package/LOOP_ENGINEERING.md +4 -4
  3. package/LOOP_SYSTEM_DESIGN.md +23 -0
  4. package/QUALITY_SCORECARD.md +2 -2
  5. package/README.md +13 -0
  6. package/docs/AGENT_PROTOCOL_SUMMARY.md +1 -1
  7. package/docs/ARTIFACT_REFERENCE.md +15 -0
  8. package/docs/CODE_ATTESTATION.md +9 -0
  9. package/docs/DOCUMENTATION_GUIDE.md +4 -4
  10. package/docs/EXECUTION_PROFILE_BENCHMARKS.md +10 -0
  11. package/docs/MCP.md +13 -1
  12. package/docs/PACKAGE_CONTENTS.md +83 -0
  13. package/docs/RELEASE_CHECKLIST.md +8 -0
  14. package/docs/REVISION_PROVIDERS.md +9 -0
  15. package/docs/TROUBLESHOOTING.md +12 -0
  16. package/docs/assets/diagrams/forgeloop-code-attestation-flow.html +13 -2
  17. package/docs/assets/diagrams/forgeloop-code-attestation-flow.receipt.json +6 -6
  18. package/docs/assets/diagrams/forgeloop-code-attestation-flow.svg +10 -1
  19. package/docs/assets/diagrams/forgeloop-engineering-flow.html +22 -11
  20. package/docs/assets/diagrams/forgeloop-engineering-flow.receipt.json +6 -6
  21. package/docs/assets/diagrams/forgeloop-engineering-flow.svg +17 -8
  22. package/docs/assets/diagrams/forgeloop-verification-trust-flow.html +14 -3
  23. package/docs/assets/diagrams/forgeloop-verification-trust-flow.receipt.json +6 -6
  24. package/docs/assets/diagrams/forgeloop-verification-trust-flow.svg +10 -1
  25. package/docs/diagrams/README.md +17 -0
  26. package/docs/diagrams/forgeloop-code-attestation-flow.workflow.json +383 -57
  27. package/docs/diagrams/forgeloop-engineering-flow.workflow.json +374 -55
  28. package/docs/diagrams/forgeloop-verification-trust-flow.workflow.json +328 -47
  29. package/docs/diagrams/reviews/forgeloop-code-attestation-flow.review.json +4 -4
  30. package/docs/diagrams/reviews/forgeloop-engineering-flow.review.json +4 -4
  31. package/docs/diagrams/reviews/forgeloop-verification-trust-flow.review.json +4 -4
  32. package/package.json +13 -4
  33. package/scripts/CI_VALIDATORS.md +24 -0
  34. package/scripts/check-critical-coverage.mjs +9 -0
  35. package/src/commands/doctor.js +11 -10
  36. package/src/core/actions.js +2 -2
  37. package/src/core/approvals.js +2 -2
  38. package/src/core/artifacts.js +3 -3
  39. package/src/core/checks.js +0 -33
  40. package/src/core/completion.js +2 -2
  41. package/src/core/events.js +5 -5
  42. package/src/core/execution-profile.js +18 -5
  43. package/src/core/next-action-pending-actions.js +255 -0
  44. package/src/core/next-action-phases.js +26 -764
  45. package/src/core/next-action-planned-phase.js +51 -0
  46. package/src/core/next-action-quality-guidance.js +19 -0
  47. package/src/core/next-action-recovery-phases.js +97 -0
  48. package/src/core/next-action-refresh.js +20 -0
  49. package/src/core/next-action-review-phase.js +189 -0
  50. package/src/core/next-action-verification-phase.js +192 -0
  51. package/src/core/task-recovery.js +2 -2
  52. package/src/core/transaction-maintenance.js +70 -0
  53. package/src/core/transaction.js +31 -10
  54. package/src/core/work-state.js +5 -5
  55. package/src/integration.d.ts +19 -3
  56. package/src/integration.js +1 -0
  57. package/src/core/cli-metadata.js +0 -23
  58. package/src/core/decision-classification.js +0 -55
  59. package/src/core/gates.js +0 -57
  60. package/src/core/workflow-compatibility.js +0 -151
@@ -1,8 +1,17 @@
1
- <svg data-archify-version="2.15.0" data-forgeloop-source-sha256="a83128a8639db5db497ac552cfdbc318839e6451c718581fbfcd064e3e869981" data-theme="dark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 900" role="img" aria-labelledby="archify-diagram-title archify-diagram-description" data-animation="trace" data-preset="signal-flow" data-quality-profile="showcase">
1
+ <svg data-archify-version="2.15.0" data-forgeloop-source-sha256="0bfd5bbf8d6bbeaec23db543deb1e99844321c77b3c7feb21ee0cc877bbba9a9" data-theme="dark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 850 900" role="img" aria-labelledby="archify-diagram-title archify-diagram-description" data-animation="trace" data-preset="signal-flow" data-quality-profile="showcase">
2
2
  <style>
3
3
  .c-bg-rect { fill: var(--bg); }
4
4
  /* Keep boundary labels clear of the first node in each group. */
5
5
  [data-composition-frame-kind="group"] + text { transform: translateY(-18px); }
6
+ @media (max-width: 720px) {
7
+ html:not([data-present="true"]) .toolbar {
8
+ top: 0;
9
+ right: 0;
10
+ width: 100%;
11
+ flex-wrap: wrap;
12
+ justify-content: flex-start;
13
+ }
14
+ }
6
15
 
7
16
  /* ==========================================================
8
17
  THEME VARIABLES — switch by toggling [data-theme] on &lt;html>
@@ -4723,7 +4732,7 @@
4723
4732
  </style>
4724
4733
  <rect width="100%" height="100%" class="c-bg-rect" />
4725
4734
  <title id="archify-diagram-title">ForgeLoop Evidence-First Engineering Flow</title>
4726
- <desc id="archify-diagram-description">Typed intent → scoped work → observed evidence → validator-backed closure</desc>
4735
+ <desc id="archify-diagram-description">Structured intent → project-bound work → observed evidence → valid closure</desc>
4727
4736
  <!-- Definitions -->
4728
4737
  <defs>
4729
4738
  <marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
@@ -4875,19 +4884,19 @@
4875
4884
  <text data-detail="fine" x="500" y="265" class="t-security" font-size="7" text-anchor="middle">Preflight</text>
4876
4885
  </g>
4877
4886
 
4878
- <g id="node-work" data-node-id="work" data-node-label="Execution" tabindex="0" role="button" aria-label="Focus Execution, checkpoint, Resumable Execution › Route + authorize" aria-pressed="false" data-node-kind="backend" data-node-sublabel="checkpoint" data-node-context="Resumable Execution › Route + authorize">
4879
- <title>Execution · checkpoint · Resumable Execution › Route + authorize</title>
4887
+ <g id="node-work" data-node-id="work" data-node-label="Execution" tabindex="0" role="button" aria-label="Focus Execution, root + task, Resumable Execution › Route + authorize" aria-pressed="false" data-node-kind="backend" data-node-sublabel="root + task" data-node-context="Resumable Execution › Route + authorize">
4888
+ <title>Execution · root + task · Resumable Execution › Route + authorize</title>
4880
4889
  <rect x="469" y="341" width="62" height="52" rx="6" class="c-mask"/>
4881
4890
  <rect x="469" y="341" width="62" height="52" rx="6" class="c-backend" data-animate="node" style="--step:6" stroke-width="1.5"/>
4882
4891
  <g aria-hidden="true" data-semantic-sigil="backend" class="semantic-sigil s-backend" transform="translate(475 347) scale(0.6875)">
4883
4892
  <path d="M6 3 3 8l3 5M10 3l3 5-3 5"/>
4884
4893
  </g>
4885
4894
  <text data-detail-anchor="true" x="500" y="362" class="t-primary" font-size="10" font-weight="600" text-anchor="middle">Execution</text>
4886
- <text data-detail="context" x="500" y="379" class="t-muted" font-size="8" text-anchor="middle">checkpoint</text>
4895
+ <text data-detail="context" x="500" y="379" class="t-muted" font-size="8" text-anchor="middle">root + task</text>
4887
4896
  </g>
4888
4897
 
4889
- <g id="node-evidence" data-node-id="evidence" data-node-label="Evidence" tabindex="0" role="button" aria-label="Focus Evidence, scope + checks, Evidence Ledger › Evidence boundary › Route + authorize" aria-pressed="false" data-node-kind="database" data-node-sublabel="scope + checks" data-node-tag="observed" data-node-context="Evidence Ledger › Evidence boundary › Route + authorize">
4890
- <title>Evidence · scope + checks · Evidence Ledger › Evidence boundary › Route + authorize · observed</title>
4898
+ <g id="node-evidence" data-node-id="evidence" data-node-label="Evidence" tabindex="0" role="button" aria-label="Focus Evidence, run-check, Evidence Ledger › Evidence boundary › Route + authorize" aria-pressed="false" data-node-kind="database" data-node-sublabel="run-check" data-node-tag="observed" data-node-context="Evidence Ledger › Evidence boundary › Route + authorize">
4899
+ <title>Evidence · run-check · Evidence Ledger › Evidence boundary › Route + authorize · observed</title>
4891
4900
  <rect x="465" y="457" width="70" height="68" rx="6" class="c-mask"/>
4892
4901
  <rect x="465" y="457" width="70" height="68" rx="6" class="c-database" data-animate="node" style="--step:7" stroke-width="1.5"/>
4893
4902
  <g aria-hidden="true" data-semantic-sigil="database" class="semantic-sigil s-database" transform="translate(471 463) scale(0.6875)">
@@ -4895,7 +4904,7 @@
4895
4904
  <path d="M3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/>
4896
4905
  </g>
4897
4906
  <text data-detail-anchor="true" x="500" y="478" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">Evidence</text>
4898
- <text data-detail="context" x="500" y="495" class="t-muted" font-size="7.3" text-anchor="middle">scope + checks</text>
4907
+ <text data-detail="context" x="500" y="495" class="t-muted" font-size="8" text-anchor="middle">run-check</text>
4899
4908
  <text data-detail="fine" x="500" y="513" class="t-database" font-size="7" text-anchor="middle">observed</text>
4900
4909
  </g>
4901
4910
 
@@ -1,7 +1,7 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en" data-theme="dark" data-preset="signal-flow" data-present="true">
3
3
  <head>
4
- <meta name="forgeloop-diagram-source-sha256" content="6fe11b0530cc6640f7b0f07d0f2d7e5a1f961745491f39016b340bc354af0e79">
4
+ <meta name="forgeloop-diagram-source-sha256" content="ba0016d705a7d89be0cdff7529b29112e844ef806ae9f87a1bbff8db8c109043">
5
5
  <meta name="forgeloop-diagram-renderer" content="archify@2.15.0 (e1ac748f19cf805e44bf74fb93c796662152e273)">
6
6
  <meta charset="UTF-8">
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -40,6 +40,15 @@
40
40
  <style>
41
41
  /* Keep boundary labels clear of the first node in each group. */
42
42
  [data-composition-frame-kind="group"] + text { transform: translateY(-18px); }
43
+ @media (max-width: 720px) {
44
+ html:not([data-present="true"]) .toolbar {
45
+ top: 0;
46
+ right: 0;
47
+ width: 100%;
48
+ flex-wrap: wrap;
49
+ justify-content: flex-start;
50
+ }
51
+ }
43
52
 
44
53
  /* ==========================================================
45
54
  THEME VARIABLES — switch by toggling [data-theme] on <html>
@@ -4868,7 +4877,7 @@
4868
4877
  <p class="subtitle">Canonical scope planning before exact command execution</p>
4869
4878
  </div>
4870
4879
 
4871
- <script id="archify-guided-views-data" type="application/json">[{"id":"scope-resolution","label":"Resolve verification scope","focus":["claims","changes","checker","cycle","fingerprints","scope"],"note":"Follow the trusted inputs that determine whether a checker may narrow its execution."},{"id":"exact-execution","label":"Bind exact execution","focus":["scope","argv","observed"],"note":"See how the resolved scope binds the exact argv and observed execution evidence."},{"id":"fail-closed","label":"Fail closed when trust is missing","focus":["checker","full","unresolved","reject"],"note":"No trusted checker means AUTO uses FULL; explicit narrowing without one is unresolved."}]</script>
4880
+ <script id="archify-guided-views-data" type="application/json">[{"id":"scope-resolution","label":"Resolve verification scope","focus":["claims","changes","checker","cycle","fingerprints","scope"],"note":"Follow the trusted inputs that determine whether a checker may narrow its execution."},{"id":"exact-execution","label":"Bind exact execution","focus":["scope","argv","observed"],"note":"run-check proves execution; manual-review is explicit. Test filters do not establish canonical verification scope."},{"id":"fail-closed","label":"Fail closed when trust is missing","focus":["checker","full","unresolved","reject"],"note":"No trusted checker means AUTO uses FULL; explicit narrowing without one is unresolved."}]</script>
4872
4881
 
4873
4882
  <div class="guided-views no-print" id="guided-views" hidden aria-label="Guided diagram views">
4874
4883
  <button id="guided-view-prev" type="button" aria-label="Previous guided view" title="Previous guided view ([)">&#8592;</button>
@@ -4911,7 +4920,7 @@
4911
4920
 
4912
4921
  <!-- Main Diagram -->
4913
4922
  <div class="diagram-container" data-detail-level="read">
4914
- <svg viewBox="0 0 720 900" role="img" aria-labelledby="archify-diagram-title archify-diagram-description" data-animation="trace" data-preset="signal-flow" data-quality-profile="showcase">
4923
+ <svg viewBox="0 0 850 900" role="img" aria-labelledby="archify-diagram-title archify-diagram-description" data-animation="trace" data-preset="signal-flow" data-quality-profile="showcase">
4915
4924
  <title id="archify-diagram-title">ForgeLoop Verification Trust Flow</title>
4916
4925
  <desc id="archify-diagram-description">Canonical scope planning before exact command execution</desc>
4917
4926
  <!-- Definitions -->
@@ -5368,6 +5377,7 @@
5368
5377
  <li>&bull; AUTO uses CHANGED or CLAIMED only with a trusted scoped checker</li>
5369
5378
  <li>&bull; Without that capability, AUTO resolves safely to FULL</li>
5370
5379
  <li>&bull; Explicit CHANGED or CLAIMED without a checker returns unresolved</li>
5380
+ <li>&bull; A test name or file filter is not a canonical scope boundary</li>
5371
5381
  </ul>
5372
5382
  </div>
5373
5383
 
@@ -5380,6 +5390,7 @@
5380
5390
  <li>&bull; RevisionProvider changes and task claims are canonical inputs</li>
5381
5391
  <li>&bull; Contract, repository, and cycle fingerprints bind the scope</li>
5382
5392
  <li>&bull; argv prefix and selected paths are checked before launch</li>
5393
+ <li>&bull; Manual evidence declares manual-review; command metadata is not execution</li>
5383
5394
  </ul>
5384
5395
  </div>
5385
5396
 
@@ -15,17 +15,17 @@
15
15
  "license": "MIT"
16
16
  },
17
17
  "input": {
18
- "sha256": "6fe11b0530cc6640f7b0f07d0f2d7e5a1f961745491f39016b340bc354af0e79",
19
- "bytes": 6917
18
+ "sha256": "ba0016d705a7d89be0cdff7529b29112e844ef806ae9f87a1bbff8db8c109043",
19
+ "bytes": 8793
20
20
  },
21
21
  "artifacts": {
22
22
  "html": {
23
- "sha256": "9dee511d07c01b6570dbfe0e6127517813f7843056e7faa93af00b133b6e44ba",
24
- "bytes": 646396
23
+ "sha256": "0a56559866acd7276b93977cb3308993e5ce043da29d911f2f52294b78a1bebd",
24
+ "bytes": 646847
25
25
  },
26
26
  "svg": {
27
- "sha256": "e225c69f2ec90f403c394d88b5d41af75363c7fa336181ee85664f5d495f4555",
28
- "bytes": 209918
27
+ "sha256": "5c63af3190251de5b6268c62ea5a6ae6fb325fe20fd9a69e996a95566fe6ebd0",
28
+ "bytes": 210148
29
29
  }
30
30
  },
31
31
  "staticSvg": {
@@ -1,8 +1,17 @@
1
- <svg data-archify-version="2.15.0" data-forgeloop-source-sha256="6fe11b0530cc6640f7b0f07d0f2d7e5a1f961745491f39016b340bc354af0e79" data-theme="dark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 900" role="img" aria-labelledby="archify-diagram-title archify-diagram-description" data-animation="trace" data-preset="signal-flow" data-quality-profile="showcase">
1
+ <svg data-archify-version="2.15.0" data-forgeloop-source-sha256="ba0016d705a7d89be0cdff7529b29112e844ef806ae9f87a1bbff8db8c109043" data-theme="dark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 850 900" role="img" aria-labelledby="archify-diagram-title archify-diagram-description" data-animation="trace" data-preset="signal-flow" data-quality-profile="showcase">
2
2
  <style>
3
3
  .c-bg-rect { fill: var(--bg); }
4
4
  /* Keep boundary labels clear of the first node in each group. */
5
5
  [data-composition-frame-kind="group"] + text { transform: translateY(-18px); }
6
+ @media (max-width: 720px) {
7
+ html:not([data-present="true"]) .toolbar {
8
+ top: 0;
9
+ right: 0;
10
+ width: 100%;
11
+ flex-wrap: wrap;
12
+ justify-content: flex-start;
13
+ }
14
+ }
6
15
 
7
16
  /* ==========================================================
8
17
  THEME VARIABLES — switch by toggling [data-theme] on &lt;html>
@@ -61,3 +61,20 @@ three workflow diagrams because the pinned wrapper currently maps only
61
61
  an explicit renderer mapping before it can be added as an active diagram.
62
62
  Additional safety-boundary, resume, or provider visuals remain intentionally
63
63
  deferred until their mappings are proven.
64
+
65
+ ## Current behavioral boundaries
66
+
67
+ The engineering explorer describes structured obligations, project/task-bound
68
+ transactions, and bounded refresh of blocked pre-execution checkpoints. Its
69
+ later correction loop still returns through verification.
70
+
71
+ The verification explorer distinguishes test filtering from a canonical
72
+ verification scope and executed command evidence from explicit manual review.
73
+ The attestation explorer distinguishes absent CI receipts (`NOT_VERIFIED`)
74
+ from attestation trust levels and notes that payload compaction preserves
75
+ transaction manifests and event history.
76
+
77
+ These explanations are part of the JSON sources and generated explorers;
78
+ matching textual fallbacks live in the README, revision-provider guide, and
79
+ attestation guide. Re-render before renewing a visual review, then inspect
80
+ the new output at desktop and narrow widths before binding the review hashes.