@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.
- package/DOCS_INDEX.md +9 -0
- package/LOOP_ENGINEERING.md +4 -4
- package/LOOP_SYSTEM_DESIGN.md +23 -0
- package/QUALITY_SCORECARD.md +2 -2
- package/README.md +13 -0
- package/docs/AGENT_PROTOCOL_SUMMARY.md +1 -1
- package/docs/ARTIFACT_REFERENCE.md +15 -0
- package/docs/CODE_ATTESTATION.md +9 -0
- package/docs/DOCUMENTATION_GUIDE.md +4 -4
- package/docs/EXECUTION_PROFILE_BENCHMARKS.md +10 -0
- package/docs/MCP.md +13 -1
- package/docs/PACKAGE_CONTENTS.md +83 -0
- package/docs/RELEASE_CHECKLIST.md +8 -0
- package/docs/REVISION_PROVIDERS.md +9 -0
- package/docs/TROUBLESHOOTING.md +12 -0
- package/docs/assets/diagrams/forgeloop-code-attestation-flow.html +13 -2
- package/docs/assets/diagrams/forgeloop-code-attestation-flow.receipt.json +6 -6
- package/docs/assets/diagrams/forgeloop-code-attestation-flow.svg +10 -1
- package/docs/assets/diagrams/forgeloop-engineering-flow.html +22 -11
- package/docs/assets/diagrams/forgeloop-engineering-flow.receipt.json +6 -6
- package/docs/assets/diagrams/forgeloop-engineering-flow.svg +17 -8
- package/docs/assets/diagrams/forgeloop-verification-trust-flow.html +14 -3
- package/docs/assets/diagrams/forgeloop-verification-trust-flow.receipt.json +6 -6
- package/docs/assets/diagrams/forgeloop-verification-trust-flow.svg +10 -1
- package/docs/diagrams/README.md +17 -0
- package/docs/diagrams/forgeloop-code-attestation-flow.workflow.json +383 -57
- package/docs/diagrams/forgeloop-engineering-flow.workflow.json +374 -55
- package/docs/diagrams/forgeloop-verification-trust-flow.workflow.json +328 -47
- package/docs/diagrams/reviews/forgeloop-code-attestation-flow.review.json +4 -4
- package/docs/diagrams/reviews/forgeloop-engineering-flow.review.json +4 -4
- package/docs/diagrams/reviews/forgeloop-verification-trust-flow.review.json +4 -4
- package/package.json +13 -4
- package/scripts/CI_VALIDATORS.md +24 -0
- package/scripts/check-critical-coverage.mjs +9 -0
- package/src/commands/doctor.js +11 -10
- package/src/core/actions.js +2 -2
- package/src/core/approvals.js +2 -2
- package/src/core/artifacts.js +3 -3
- package/src/core/checks.js +0 -33
- package/src/core/completion.js +2 -2
- package/src/core/events.js +5 -5
- package/src/core/execution-profile.js +18 -5
- package/src/core/next-action-pending-actions.js +255 -0
- package/src/core/next-action-phases.js +26 -764
- package/src/core/next-action-planned-phase.js +51 -0
- package/src/core/next-action-quality-guidance.js +19 -0
- package/src/core/next-action-recovery-phases.js +97 -0
- package/src/core/next-action-refresh.js +20 -0
- package/src/core/next-action-review-phase.js +189 -0
- package/src/core/next-action-verification-phase.js +192 -0
- package/src/core/task-recovery.js +2 -2
- package/src/core/transaction-maintenance.js +70 -0
- package/src/core/transaction.js +31 -10
- package/src/core/work-state.js +5 -5
- package/src/integration.d.ts +19 -3
- package/src/integration.js +1 -0
- package/src/core/cli-metadata.js +0 -23
- package/src/core/decision-classification.js +0 -55
- package/src/core/gates.js +0 -57
- package/src/core/workflow-compatibility.js +0 -151
|
@@ -1,8 +1,17 @@
|
|
|
1
|
-
<svg data-archify-version="2.15.0" data-forgeloop-source-sha256="
|
|
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 <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">
|
|
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,
|
|
4879
|
-
<title>Execution ·
|
|
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">
|
|
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,
|
|
4890
|
-
<title>Evidence ·
|
|
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="
|
|
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="
|
|
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":"
|
|
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 ([)">←</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
|
|
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>• AUTO uses CHANGED or CLAIMED only with a trusted scoped checker</li>
|
|
5369
5378
|
<li>• Without that capability, AUTO resolves safely to FULL</li>
|
|
5370
5379
|
<li>• Explicit CHANGED or CLAIMED without a checker returns unresolved</li>
|
|
5380
|
+
<li>• 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>• RevisionProvider changes and task claims are canonical inputs</li>
|
|
5381
5391
|
<li>• Contract, repository, and cycle fingerprints bind the scope</li>
|
|
5382
5392
|
<li>• argv prefix and selected paths are checked before launch</li>
|
|
5393
|
+
<li>• 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": "
|
|
19
|
-
"bytes":
|
|
18
|
+
"sha256": "ba0016d705a7d89be0cdff7529b29112e844ef806ae9f87a1bbff8db8c109043",
|
|
19
|
+
"bytes": 8793
|
|
20
20
|
},
|
|
21
21
|
"artifacts": {
|
|
22
22
|
"html": {
|
|
23
|
-
"sha256": "
|
|
24
|
-
"bytes":
|
|
23
|
+
"sha256": "0a56559866acd7276b93977cb3308993e5ce043da29d911f2f52294b78a1bebd",
|
|
24
|
+
"bytes": 646847
|
|
25
25
|
},
|
|
26
26
|
"svg": {
|
|
27
|
-
"sha256": "
|
|
28
|
-
"bytes":
|
|
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="
|
|
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 <html>
|
package/docs/diagrams/README.md
CHANGED
|
@@ -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.
|