@cassiomc1/forgeloop 1.13.0 → 2.0.0-rc.2
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/AGENT_COMPATIBILITY.md +8 -0
- package/CONTRIBUTING.md +11 -7
- package/DOCS_INDEX.md +37 -4
- package/ENG/c-development-eng.md +2 -2
- package/ENG/cpp-development-eng.md +2 -2
- package/ENG/dotnet-aspnetcore-development-eng.md +7 -1
- package/ENG/flutter-development-eng.md +4 -2
- package/ENG/go-development-eng.md +2 -2
- package/ENG/java-development-eng.md +3 -3
- package/ENG/nodejs-backend-development-eng.md +10 -6
- package/ENG/php-development-eng.md +3 -3
- package/ENG/python-development-eng.md +205 -0
- package/ENG/rust-development-eng.md +42 -1
- package/ENG/sec-code-eng.md +7 -7
- package/ENG/sql-development-eng.md +4 -4
- package/ENG/swift-development-eng.md +5 -4
- package/ENG/test-code-eng.md +1 -1
- package/ENG/typescript-development-eng.md +4 -4
- package/EXECUTION_STATE.md +12 -0
- package/GUIDE_ROUTER.md +6 -0
- package/LICENSE +133 -21
- package/LOOP_ENGINEERING.md +28 -2
- package/LOOP_SYSTEM_DESIGN.md +10 -10
- package/ORCHESTRATOR_INTEGRATION.md +9 -5
- package/PROTOCOL_INTEGRATION.md +55 -2
- package/README.md +63 -59
- package/TERMINOLOGY.md +2 -0
- package/THIRD_PARTY_NOTICES.md +3 -4
- package/THREAT_MODEL.md +140 -1
- package/completions/_forgeloop +29 -3
- package/completions/forgeloop.bash +55 -3
- package/completions/forgeloop.fish +183 -1
- package/docs/ADVISORY_CONTEXT.md +25 -0
- package/docs/AGENT_BROWSER_ADAPTER.md +81 -0
- package/docs/AGENT_BROWSER_VERIFICATION.md +6 -0
- package/docs/AGENT_PROTOCOL_SUMMARY.md +74 -39
- package/docs/AGENT_SKILL.md +66 -0
- package/docs/ARTIFACT_REFERENCE.md +171 -35
- package/docs/AUDIT_UX.md +46 -0
- package/docs/BROWSER_VERIFICATION.md +136 -0
- package/docs/CLI_REFERENCE.md +512 -8
- package/docs/CODE_ATTESTATION.md +2 -2
- package/docs/DOCUMENTATION_GUIDE.md +34 -11
- package/docs/GETTING_STARTED.md +3 -3
- package/docs/JEV_BENCHMARKS.md +31 -0
- package/docs/MODEL_ROUTING.md +37 -0
- package/docs/OPENSRC_ADAPTER.md +241 -0
- package/docs/PACKAGE_CONTENTS.md +46 -18
- package/docs/PROVIDERS.md +126 -0
- package/docs/PROVIDER_ARCHITECTURE.md +199 -0
- package/docs/RECIPES.md +9 -0
- package/docs/RELEASE_CHECKLIST.md +116 -12
- package/docs/SECURITY_REVIEW.md +71 -0
- package/docs/SELF_HOSTED_TESTS.md +121 -0
- package/docs/SEMANTIC_DECISION_PLANE.md +71 -0
- package/docs/TEST_INTELLIGENCE.md +29 -0
- package/docs/TEST_PRUNING.md +14 -0
- package/docs/TROUBLESHOOTING.md +198 -1
- package/docs/UNIVERSAL_INTEGRATION.md +31 -0
- package/docs/assets/diagrams/forgeloop-code-attestation-flow.html +2 -2
- package/docs/assets/diagrams/forgeloop-code-attestation-flow.receipt.json +5 -5
- package/docs/assets/diagrams/forgeloop-code-attestation-flow.svg +1 -1
- package/docs/assets/diagrams/forgeloop-engineering-flow.html +39 -26
- package/docs/assets/diagrams/forgeloop-engineering-flow.receipt.json +6 -6
- package/docs/assets/diagrams/forgeloop-engineering-flow.svg +26 -26
- package/docs/assets/diagrams/forgeloop-verification-trust-flow.html +2 -1
- package/docs/assets/diagrams/forgeloop-verification-trust-flow.receipt.json +5 -5
- package/docs/assets/diagrams/forgeloop-verification-trust-flow.svg +1 -1
- package/docs/diagrams/README.md +13 -9
- package/docs/diagrams/forgeloop-code-attestation-flow.workflow.json +1 -1
- package/docs/diagrams/forgeloop-engineering-flow.workflow.json +24 -19
- package/docs/diagrams/forgeloop-verification-trust-flow.workflow.json +1 -0
- 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/docs/documentation-manifest.json +774 -16
- package/docs/protocol-requirements.json +24 -0
- package/package.json +43 -11
- package/schemas/config.schema.json +14 -0
- package/schemas/context-plan.schema.json +18 -0
- package/schemas/semantic-decision.schema.json +46 -0
- package/schemas/task-bundle.schema.json +7 -2
- package/schemas/test-utility.schema.json +44 -0
- package/scripts/CI_VALIDATORS.md +6 -6
- package/scripts/benchmark-jev.mjs +5 -0
- package/scripts/benchmark-test-intelligence.mjs +4 -0
- package/scripts/generate-agent-protocol-summary.mjs +6 -3
- package/scripts/generate-forgeloop-skill.mjs +133 -0
- package/scripts/jev-smoke.mjs +19 -0
- package/scripts/run-mcp-clean-tests.mjs +30 -0
- package/skills/forgeloop/README.md +9 -0
- package/skills/forgeloop/SKILL.md +77 -0
- package/skills/forgeloop/references/lifecycle.md +9 -0
- package/skills/forgeloop/references/recovery.md +7 -0
- package/skills/forgeloop/references/verification.md +7 -0
- package/src/adapters/agent-browser/assertions.js +47 -0
- package/src/adapters/agent-browser/commands.js +54 -0
- package/src/adapters/agent-browser/index.js +3 -0
- package/src/adapters/agent-browser/locator.js +40 -0
- package/src/adapters/agent-browser/process.js +215 -0
- package/src/adapters/agent-browser/provider.js +316 -0
- package/src/adapters/emulated-services/constants.js +24 -0
- package/src/adapters/emulated-services/index.js +7 -0
- package/src/adapters/emulated-services/process.js +162 -0
- package/src/adapters/emulated-services/provider.js +289 -0
- package/src/adapters/opensrc/normalize.js +90 -0
- package/src/adapters/opensrc/process.js +248 -0
- package/src/adapters/opensrc/provider.js +338 -0
- package/src/adapters/opensrc/search.js +264 -0
- package/src/adapters/temporary-paths.js +18 -0
- package/src/adapters/typesafe/client.js +28 -0
- package/src/adapters/typesafe/engine.js +63 -0
- package/src/adapters/typesafe/normalize.js +41 -0
- package/src/cli.js +218 -174
- package/src/commands/action-show.js +5 -2
- package/src/commands/advance.js +5 -1
- package/src/commands/baseline.js +13 -11
- package/src/commands/checkpoint-revalidate.js +192 -0
- package/src/commands/complete.js +19 -3
- package/src/commands/context-plan.js +38 -0
- package/src/commands/contract-create.js +266 -0
- package/src/commands/contract-revise.js +236 -0
- package/src/commands/decision-show.js +14 -0
- package/src/commands/decision-status.js +22 -0
- package/src/commands/discover.js +41 -0
- package/src/commands/doctor.js +51 -13
- package/src/commands/gate-record.js +194 -0
- package/src/commands/gate-revalidate.js +135 -0
- package/src/commands/handoff-list.js +6 -1
- package/src/commands/handoff-show.js +6 -1
- package/src/commands/migrate-protocol.js +2 -2
- package/src/commands/model-route.js +40 -0
- package/src/commands/next.js +7 -1
- package/src/commands/policy-diff.js +25 -4
- package/src/commands/progress.js +17 -11
- package/src/commands/record-diagnosis.js +3 -0
- package/src/commands/route.js +146 -18
- package/src/commands/semantic-plan.js +41 -0
- package/src/commands/status.js +6 -1
- package/src/commands/storage-backup.js +15 -0
- package/src/commands/storage-migrate.js +5 -0
- package/src/commands/storage-migration-resume.js +5 -0
- package/src/commands/storage-migration-status.js +44 -0
- package/src/commands/storage-restore-resume.js +7 -0
- package/src/commands/storage-restore.js +8 -0
- package/src/commands/task-abandon.js +224 -0
- package/src/commands/task-list.js +8 -43
- package/src/commands/task-migrate-contract-bootstrap-repair.js +288 -0
- package/src/commands/task-migrate.js +3 -3
- package/src/commands/task-recover.js +10 -2
- package/src/commands/task-repair-contract-bootstrap.js +263 -0
- package/src/commands/task-scope.js +18 -2
- package/src/commands/task-show.js +16 -2
- package/src/commands/test-inventory.js +5 -0
- package/src/commands/test-prune-plan.js +5 -0
- package/src/commands/test-prune-probe.js +5 -0
- package/src/commands/test-utility.js +5 -0
- package/src/commands/validate-protocol.js +39 -15
- package/src/commands/validate-receipt.js +8 -1
- package/src/config/guides.json +4 -0
- package/src/core/action-ledger-projection.js +10 -3
- package/src/core/actions.js +38 -75
- package/src/core/activation.js +11 -3
- package/src/core/approvals.js +17 -51
- package/src/core/artifact-registry.js +83 -2
- package/src/core/artifacts.js +81 -27
- package/src/core/attachment-paths.js +45 -0
- package/src/core/attestation-coverage.js +6 -1
- package/src/core/attestation-verifier.js +21 -2
- package/src/core/attestation.js +17 -6
- package/src/core/audit-ux.js +514 -0
- package/src/core/audit.js +6 -1
- package/src/core/browser-verification/constants.js +149 -0
- package/src/core/browser-verification/normalize.js +254 -0
- package/src/core/browser-verification/provider.js +519 -0
- package/src/core/browser-verification/service.js +115 -0
- package/src/core/bundles.js +160 -66
- package/src/core/checkpoint-revalidation.js +321 -0
- package/src/core/cli-command-definitions.js +350 -7
- package/src/core/code-manifest.js +9 -3
- package/src/core/command-executors.js +274 -108
- package/src/core/command-input.js +136 -44
- package/src/core/completion-artifacts.js +85 -34
- package/src/core/completion-ownership.js +19 -8
- package/src/core/completion-recovery-rebind.js +11 -1
- package/src/core/completion.js +64 -15
- package/src/core/config.js +3 -0
- package/src/core/conformance.js +2 -1
- package/src/core/context-compiler/budget.js +9 -0
- package/src/core/context-compiler/candidates.js +39 -0
- package/src/core/context-compiler/compiler.js +63 -0
- package/src/core/context-compiler/fingerprint.js +11 -0
- package/src/core/context-compiler/policy.js +13 -0
- package/src/core/context-compiler/result.js +23 -0
- package/src/core/continuity-lint.js +13 -2
- package/src/core/continuity-reconciliation.js +16 -3
- package/src/core/continuity.js +16 -8
- package/src/core/contract-bootstrap-recovery.js +656 -0
- package/src/core/contract-revision.js +209 -0
- package/src/core/decision/artifact.js +70 -0
- package/src/core/decision/benchmarks.js +103 -0
- package/src/core/decision/cache.js +27 -0
- package/src/core/decision/constants.js +58 -0
- package/src/core/decision/cutover.js +34 -0
- package/src/core/decision/engine.js +22 -0
- package/src/core/decision/errors.js +68 -0
- package/src/core/decision/events.js +104 -0
- package/src/core/decision/freshness.js +19 -0
- package/src/core/decision/normalizers/index.js +115 -0
- package/src/core/decision/policy.js +18 -0
- package/src/core/decision/projection.js +16 -0
- package/src/core/decision/question-registry.js +201 -0
- package/src/core/decision/request.js +26 -0
- package/src/core/decision/resolver.js +138 -0
- package/src/core/decision/result.js +58 -0
- package/src/core/decision/service.js +181 -0
- package/src/core/decision/state-builder.js +65 -0
- package/src/core/decision/task-bindings.js +35 -0
- package/src/core/decision/test-provider.js +32 -0
- package/src/core/decision/thresholds.js +15 -0
- package/src/core/diagnosis-model.js +11 -0
- package/src/core/diagnosis.js +10 -1
- package/src/core/diagnostic-projection.js +29 -12
- package/src/core/diagnostic-record.js +28 -3
- package/src/core/efficiency.js +6 -1
- package/src/core/error-codes.js +278 -0
- package/src/core/events.js +535 -147
- package/src/core/evidence-readiness.js +9 -0
- package/src/core/execution-prerequisites.js +36 -13
- package/src/core/execution-profile.js +63 -38
- package/src/core/execution.js +26 -40
- package/src/core/filesystem.js +11 -0
- package/src/core/gate-artifact.js +105 -19
- package/src/core/gate-provenance.js +125 -0
- package/src/core/handoff.js +26 -14
- package/src/core/history.js +39 -35
- package/src/core/hypothesis-projection.js +32 -0
- package/src/core/information-gain-projection.js +104 -100
- package/src/core/inspect.js +12 -3
- package/src/core/integration-invocation-policy.js +37 -4
- package/src/core/integration-resources.js +119 -87
- package/src/core/ledger-event-collection.js +189 -0
- package/src/core/ledger-relations.js +23 -0
- package/src/core/model-router/constants.js +10 -0
- package/src/core/model-router/policy.js +103 -0
- package/src/core/model-router/router.js +37 -0
- package/src/core/native-storage.js +12 -0
- package/src/core/next-action-continuity.js +31 -9
- package/src/core/next-action-model.js +58 -0
- package/src/core/next-action-phases.js +131 -43
- package/src/core/next-action-refresh.js +43 -9
- package/src/core/next-action-review-phase.js +9 -4
- package/src/core/next-action-verification-phase.js +2 -1
- package/src/core/next-action.js +56 -9
- package/src/core/phase.js +266 -103
- package/src/core/policy-engine.js +12 -13
- package/src/core/preflight-consistency.js +89 -62
- package/src/core/preflight-loaders.js +48 -9
- package/src/core/preflight-model.js +6 -1
- package/src/core/preflight.js +29 -12
- package/src/core/progress.js +21 -10
- package/src/core/protocol-info.js +68 -0
- package/src/core/protocol-migration.js +7 -6
- package/src/core/protocol.js +20 -0
- package/src/core/reconcile-closure.js +281 -67
- package/src/core/recovery-history.js +67 -47
- package/src/core/reflection.js +72 -77
- package/src/core/responsibility.js +25 -13
- package/src/core/resumability.js +154 -44
- package/src/core/route-artifact.js +28 -4
- package/src/core/router.js +67 -1
- package/src/core/runtime-context.js +123 -61
- package/src/core/schema-validation.js +11 -3
- package/src/core/security-review/constants.js +64 -0
- package/src/core/security-review/normalize.js +245 -0
- package/src/core/security-review/provider.js +204 -0
- package/src/core/security-review/service.js +134 -0
- package/src/core/semantic-planning/constants.js +19 -0
- package/src/core/semantic-planning/projection.js +94 -0
- package/src/core/semantic-planning/service.js +15 -0
- package/src/core/settlement.js +12 -1
- package/src/core/signing/bundle-file.js +53 -0
- package/src/core/signing/bundle-reference.js +15 -0
- package/src/core/signing/sigstore.js +60 -33
- package/src/core/signing/statement-file.js +27 -0
- package/src/core/sources.js +37 -0
- package/src/core/storage-runtime-registry.js +41 -0
- package/src/core/structural-quality/artifacts.js +20 -14
- package/src/core/structural-quality/service.js +81 -56
- package/src/core/target-layout.js +1 -1
- package/src/core/task-claim-state.js +249 -15
- package/src/core/task-command.js +21 -1
- package/src/core/task-conflict-inspection.js +133 -102
- package/src/core/task-descriptor.js +29 -22
- package/src/core/task-discovery.js +288 -90
- package/src/core/task-lock.js +66 -306
- package/src/core/task-migration-validation.js +5 -5
- package/src/core/task-migration.js +17 -287
- package/src/core/task-paths.js +13 -0
- package/src/core/task-recovery.js +1 -0
- package/src/core/task-snapshot.js +51 -8
- package/src/core/task-storage-migration.js +18 -0
- package/src/core/templates.js +23 -8
- package/src/core/test-intelligence/benchmarks.js +68 -0
- package/src/core/test-intelligence/inventory.js +73 -0
- package/src/core/test-intelligence/prune.js +94 -0
- package/src/core/test-intelligence/semantic-state.js +15 -0
- package/src/core/test-intelligence/service.js +40 -0
- package/src/core/test-intelligence/utility.js +50 -0
- package/src/core/trace.js +164 -105
- package/src/core/trajectory-evaluation.js +15 -3
- package/src/core/trajectory-metrics.js +47 -32
- package/src/core/transaction.js +16 -287
- package/src/core/verification-scope.js +20 -12
- package/src/core/work-state.js +100 -59
- package/src/integration.d.ts +492 -0
- package/src/integration.js +54 -0
- package/src/providers/README.md +47 -0
- package/src/providers/capabilities.js +46 -0
- package/src/providers/errors.js +15 -0
- package/src/providers/index.js +29 -0
- package/src/providers/json-snapshot.js +105 -0
- package/src/providers/registry.js +152 -0
- package/src/repository-index/binary-manager.js +7 -5
- package/src/storage/artifact-bytes.js +22 -0
- package/src/storage/attachment-binding.js +11 -0
- package/src/storage/attachment-files.js +82 -0
- package/src/storage/attachment-references.js +36 -0
- package/src/storage/backup.js +53 -0
- package/src/storage/capabilities.js +31 -0
- package/src/storage/connection-owner.js +119 -0
- package/src/storage/connection.js +376 -0
- package/src/storage/existing-project-scope.js +45 -0
- package/src/storage/export-destination.js +44 -0
- package/src/storage/exporter.js +284 -0
- package/src/storage/file-durability.js +46 -0
- package/src/storage/importer.js +461 -0
- package/src/storage/index.js +74 -0
- package/src/storage/leases.js +63 -0
- package/src/storage/ledger-event-snapshot.js +150 -0
- package/src/storage/ledger-relations.js +220 -0
- package/src/storage/legacy-maintenance-boundary.js +18 -0
- package/src/storage/legacy-signature.js +115 -0
- package/src/storage/maintenance-handoff.js +129 -0
- package/src/storage/maintenance-owner.js +42 -0
- package/src/storage/maintenance.js +310 -0
- package/src/storage/metadata-json.js +35 -0
- package/src/storage/migration-activate.js +59 -0
- package/src/storage/migration-archive.js +57 -0
- package/src/storage/migration-attachment-root.js +61 -0
- package/src/storage/migration-candidate.js +398 -0
- package/src/storage/migration-publication.js +143 -0
- package/src/storage/migration-rollback-admission.js +54 -0
- package/src/storage/migration-rollback-preparation.js +132 -0
- package/src/storage/migration-rollback-publication.js +183 -0
- package/src/storage/migration-rollback-release.js +66 -0
- package/src/storage/migration-rollback-source-stage.js +103 -0
- package/src/storage/migration-rollback.js +43 -0
- package/src/storage/migration-source-partition.js +56 -0
- package/src/storage/migration-source.js +255 -0
- package/src/storage/migration-terminal.js +39 -0
- package/src/storage/migration-validation.js +75 -0
- package/src/storage/migration.js +43 -0
- package/src/storage/operational-attachments.js +49 -0
- package/src/storage/operational-context.js +50 -0
- package/src/storage/project-backup.js +98 -0
- package/src/storage/project-bootstrap.js +24 -0
- package/src/storage/project-boundary.js +79 -0
- package/src/storage/project-read-snapshot.js +18 -0
- package/src/storage/project-replacement.js +137 -0
- package/src/storage/project-restore.js +203 -0
- package/src/storage/record-definitions.js +45 -0
- package/src/storage/repository.js +507 -0
- package/src/storage/restore-journal.js +62 -0
- package/src/storage/restore-layout.js +30 -0
- package/src/storage/restore-preparation.js +84 -0
- package/src/storage/restore-replacement-archive.js +162 -0
- package/src/storage/restore-replacement-owner.js +31 -0
- package/src/storage/restore-replacement-preparation.js +128 -0
- package/src/storage/restore-replacement.js +142 -0
- package/src/storage/restore-terminal.js +32 -0
- package/src/storage/runtime.js +31 -0
- package/src/storage/schema.js +214 -0
- package/src/storage/singleton-import.js +84 -0
- package/src/storage/snapshot-continuity.js +16 -0
- package/src/storage/snapshot.js +36 -0
- package/src/storage/storage-marker.js +79 -0
- package/src/storage/task-guards.js +107 -0
- package/src/storage/topology.js +42 -0
- package/src/storage/transaction.js +179 -0
- package/src/storage/unit-of-work.js +663 -0
- package/src/storage/windows-process-incarnation.js +206 -0
- package/.forgeloop/forgeloop.gitignore +0 -4
- package/LICENSE-DOCS.md +0 -13
- package/src/core/transaction-maintenance.js +0 -70
package/ENG/sec-code-eng.md
CHANGED
|
@@ -677,11 +677,11 @@ data independently of that choice.
|
|
|
677
677
|
|
|
678
678
|
## Sources and References
|
|
679
679
|
|
|
680
|
-
- OWASP ASVS 5.0.0: https://owasp.org/
|
|
680
|
+
- OWASP ASVS 5.0.0: https://owasp.org/projects/asvs
|
|
681
681
|
- Official OWASP ASVS 5.0.0 CSV: https://github.com/OWASP/ASVS/raw/v5.0.0/5.0/docs_en/OWASP_Application_Security_Verification_Standard_5.0.0_en.csv
|
|
682
682
|
- OWASP Top 10:2025 (Web): https://owasp.org/Top10/2025/
|
|
683
683
|
- OWASP Mobile Top 10:2024: https://owasp.org/www-project-mobile-top-10/
|
|
684
|
-
- OWASP Mobile Application Security Verification Standard (MASVS) / MASTG: https://owasp.org/
|
|
684
|
+
- OWASP Mobile Application Security Verification Standard (MASVS) / MASTG: https://owasp.org/projects/mobile-application-security
|
|
685
685
|
- OWASP Cheat Sheet Series: https://cheatsheetseries.owasp.org/
|
|
686
686
|
- OWASP SSRF Prevention: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html
|
|
687
687
|
- OWASP File Upload: https://cheatsheetseries.owasp.org/cheatsheets/File_Upload_Cheat_Sheet.html
|
|
@@ -700,11 +700,11 @@ data independently of that choice.
|
|
|
700
700
|
- Android Network Security Config and Certificate Transparency: https://developer.android.com/privacy-and-security/security-config
|
|
701
701
|
- Android cryptography and Keystore: https://developer.android.com/privacy-and-security/cryptography
|
|
702
702
|
- Android `EncryptedSharedPreferences` (deprecated): https://developer.android.com/reference/androidx/security/crypto/EncryptedSharedPreferences
|
|
703
|
-
- OAuth 2.0 Security Best Current Practice, RFC 9700: https://
|
|
704
|
-
- JWT Best Current Practices, RFC 8725: https://
|
|
705
|
-
- Web Origin, RFC 6454: https://
|
|
706
|
-
- OAuth 2.0 Token Introspection, RFC 7662: https://
|
|
707
|
-
- ChaCha20-Poly1305, RFC 8439: https://
|
|
703
|
+
- OAuth 2.0 Security Best Current Practice, RFC 9700: https://datatracker.ietf.org/doc/html/rfc9700
|
|
704
|
+
- JWT Best Current Practices, RFC 8725: https://datatracker.ietf.org/doc/html/rfc8725
|
|
705
|
+
- Web Origin, RFC 6454: https://datatracker.ietf.org/doc/html/rfc6454
|
|
706
|
+
- OAuth 2.0 Token Introspection, RFC 7662: https://datatracker.ietf.org/doc/html/rfc7662
|
|
707
|
+
- ChaCha20-Poly1305, RFC 8439: https://datatracker.ietf.org/doc/html/rfc8439
|
|
708
708
|
- GitHub Actions: use full-length commit SHA: https://docs.github.com/en/actions/reference/security/secure-use
|
|
709
709
|
- GitHub artifact attestations: https://docs.github.com/en/actions/how-tos/secure-your-work/use-artifact-attestations/use-artifact-attestations
|
|
710
710
|
- Apple Platform Security Guide: https://support.apple.com/guide/security/
|
|
@@ -3,7 +3,7 @@ name: sql-development-eng
|
|
|
3
3
|
language: en
|
|
4
4
|
description: "Specialist overlay guidance for SQL schemas, queries, migrations, and database-boundary changes."
|
|
5
5
|
version: "2026.09"
|
|
6
|
-
last-reviewed: "2026-
|
|
6
|
+
last-reviewed: "2026-10-13"
|
|
7
7
|
guide-id: sql
|
|
8
8
|
requires-gates:
|
|
9
9
|
- threat-boundary
|
|
@@ -37,9 +37,9 @@ migration, reads credentials, or introspects a schema.
|
|
|
37
37
|
The repository's database engine, version, migration policy, transaction model,
|
|
38
38
|
compatibility window, and deployment process win over generic SQL advice. Use
|
|
39
39
|
the matching engine's official reference first, then ISO/IEC 9075:2023 for
|
|
40
|
-
portable semantics. The
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
portable semantics. The 2026-10-13 reference check covers PostgreSQL 18.6, MySQL 9.7 Innovation
|
|
41
|
+
and 8.4 LTS, SQL Server 17 T-SQL, Oracle AI Database 26, and SQLite 3.54.0.
|
|
42
|
+
These are reference points, not automatic upgrade targets.
|
|
43
43
|
|
|
44
44
|
Never infer a dialect, isolation guarantee, identifier rule, timestamp
|
|
45
45
|
behavior, JSON extension, or migration capability from a file extension.
|
|
@@ -3,7 +3,7 @@ name: swift-development-eng
|
|
|
3
3
|
language: en
|
|
4
4
|
description: "Specialist guidance for production Swift applications, packages, services, and Apple-platform components."
|
|
5
5
|
version: "2026.09"
|
|
6
|
-
last-reviewed: "2026-
|
|
6
|
+
last-reviewed: "2026-10-13"
|
|
7
7
|
guide-id: swift
|
|
8
8
|
requires-gates:
|
|
9
9
|
- threat-boundary
|
|
@@ -34,9 +34,8 @@ plugins, build scripts, tests, or network resolution.
|
|
|
34
34
|
Repository package manifest, toolchain, deployment target, SDK, target triple,
|
|
35
35
|
entitlements, signing policy, ABI, and platform support win over generic
|
|
36
36
|
advice. Use version-matched Swift language, SwiftPM, Apple SDK, and Xcode
|
|
37
|
-
documentation after repository evidence. Swift 6.
|
|
38
|
-
|
|
39
|
-
an automatic target.
|
|
37
|
+
documentation after repository evidence. Swift 6.4 is the current stable reference as of 2026-10-13; it is not an
|
|
38
|
+
automatic migration target.
|
|
40
39
|
|
|
41
40
|
Keep Swift language mode, compiler/toolchain, SDK, deployment target, runtime
|
|
42
41
|
OS, architecture, signing, entitlements, and package/platform compatibility
|
|
@@ -103,6 +102,8 @@ setting evaluation, macro execution, or Xcode build execution.
|
|
|
103
102
|
|
|
104
103
|
## Official sources
|
|
105
104
|
|
|
105
|
+
- [Swift 6.4 release](https://www.swift.org/blog/swift-6.4-released/)
|
|
106
|
+
|
|
106
107
|
- [The Swift Programming Language](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/)
|
|
107
108
|
- [Swift.org documentation](https://www.swift.org/documentation/)
|
|
108
109
|
- [Swift Package Manager](https://github.com/swiftlang/swift-package-manager)
|
package/ENG/test-code-eng.md
CHANGED
|
@@ -57,7 +57,7 @@ A tool is a candidate, not a ranking winner. Record the decision in the reposito
|
|
|
57
57
|
|
|
58
58
|
| Context | Candidates with official documentation | Reproducible decision basis |
|
|
59
59
|
| --- | --- | --- |
|
|
60
|
-
| Node.js/TypeScript | [`node:test`](https://nodejs.org/api/test.html), [Vitest](https://vitest.dev/guide/), [Jest](https://jestjs.io/docs/getting-started) | existing framework/build, ESM/CJS, TypeScript, mocks, watch, coverage, and CI runtime |
|
|
60
|
+
| Node.js/TypeScript | [`node:test`](https://nodejs.org/docs/latest-v24.x/api/test.html), [Vitest](https://vitest.dev/guide/), [Jest](https://jestjs.io/docs/getting-started) | existing framework/build, ESM/CJS, TypeScript, mocks, watch, coverage, and CI runtime |
|
|
61
61
|
| Components and browser | [Testing Library](https://testing-library.com/docs/), [Playwright](https://playwright.dev/docs/intro), [Cypress](https://docs.cypress.io/) | required browsers, isolation, failure artifacts, parallelism, accessibility, and app compatibility |
|
|
62
62
|
| Python | [pytest](https://docs.pytest.org/), [`unittest`](https://docs.python.org/3/library/unittest.html) | dependency policy, fixtures/plugins, Python versions, and existing integration |
|
|
63
63
|
| .NET | [xUnit.net](https://xunit.net/), [NUnit](https://docs.nunit.org/), [MSTest](https://learn.microsoft.com/dotnet/core/testing/unit-testing-mstest-intro) | .NET version, runner/IDE, fixture model, assertions, and existing projects |
|
|
@@ -3,7 +3,7 @@ name: typescript-development-eng
|
|
|
3
3
|
language: en
|
|
4
4
|
description: "Specialist guidance for TypeScript applications, libraries, build configurations, and typed JavaScript boundaries."
|
|
5
5
|
version: "2026.09"
|
|
6
|
-
last-reviewed: "2026-
|
|
6
|
+
last-reviewed: "2026-10-13"
|
|
7
7
|
guide-id: typescript
|
|
8
8
|
requires-gates:
|
|
9
9
|
- threat-boundary
|
|
@@ -33,9 +33,9 @@ compiler, package script, or project code.
|
|
|
33
33
|
Repository compiler/configuration, emitted module contract, runtime support,
|
|
34
34
|
public type compatibility, and build policy win over generic advice. Use the
|
|
35
35
|
matching repository TypeScript version/config first, then official TypeScript
|
|
36
|
-
documentation and release notes, then runtime/framework documentation.
|
|
37
|
-
2026-
|
|
38
|
-
|
|
36
|
+
documentation and release notes, then runtime/framework documentation. As of
|
|
37
|
+
2026-10-13, TypeScript 7.0 is the current reference. TS 7.0 uses the native
|
|
38
|
+
Go-based toolset and does not provide a stable programmatic
|
|
39
39
|
compiler API; TS 6 compatibility can remain necessary for tooling. Do not
|
|
40
40
|
auto-migrate TS 6 projects or compiler integrations to TS 7.
|
|
41
41
|
|
package/EXECUTION_STATE.md
CHANGED
|
@@ -31,6 +31,18 @@ task-bound `COMPLETION_VALIDATED` event and coherent state) is required, and a
|
|
|
31
31
|
forged or unproven COMPLETE state is `INCONSISTENT` with historical claims
|
|
32
32
|
retained.
|
|
33
33
|
|
|
34
|
+
For an intentional active-task stop, use the explicit canonical command:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
forgeloop task-abandon --task <id> --acknowledge-abandonment --json
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
It appends `TASK_ABANDONED`, writes a matching recovery boundary classified
|
|
41
|
+
`ABANDONED`, keeps the current phase unchanged, and resolves ownership to
|
|
42
|
+
`RELEASED_BY_RECOVERY`. It never emits `COMPLETION_VALIDATED` and never grants
|
|
43
|
+
publication authority. `clear-state` only clears a checkpoint and must not be
|
|
44
|
+
used to release claims.
|
|
45
|
+
|
|
34
46
|
The file is local, ignored by Git, schema-versioned, and never a replacement
|
|
35
47
|
for the manifest or the target project profile (installed as
|
|
36
48
|
`.forgeloop/kit/PROJECT_PROFILE.md`). It contains no secrets and is untrusted
|
package/GUIDE_ROUTER.md
CHANGED
|
@@ -63,8 +63,14 @@ project commands.
|
|
|
63
63
|
| `typescript` | [TypeScript development engineering](./ENG/typescript-development-eng.md) | Type-system/compiler contracts, runtime boundaries, module compatibility, testing, and release |
|
|
64
64
|
| `php` | [PHP development engineering](./ENG/php-development-eng.md) | Composer applications, web services, workers, runtime constraints, security, testing, and deployment |
|
|
65
65
|
| `swift` | [Swift development engineering](./ENG/swift-development-eng.md) | SwiftPM/Xcode applications, concurrency, platform boundaries, interoperability, testing, and release |
|
|
66
|
+
| `python` | [Python development engineering](./ENG/python-development-eng.md) | Python applications, packages, CLIs, async services, data pipelines, and native extensions (reference guide; project auto-routing is not implemented) |
|
|
66
67
|
| `rust` | [Rust development engineering](./ENG/rust-development-eng.md) | Architecture, implementation, testing, security, performance, reproducibility, and release of production Rust applications, services, libraries, and workers |
|
|
67
68
|
|
|
69
|
+
The Python guide is available as bounded reference material, but the current
|
|
70
|
+
`forgeloop route` project-evidence schema does not detect Python projects or
|
|
71
|
+
select the guide automatically. Do not claim automatic Python routing until
|
|
72
|
+
structural detection and route tests are implemented.
|
|
73
|
+
|
|
68
74
|
## Domain rules
|
|
69
75
|
|
|
70
76
|
### `clean` — code and structure
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,133 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
to
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
# PolyForm Noncommercial License 1.0.0
|
|
2
|
+
|
|
3
|
+
<https://polyformproject.org/licenses/noncommercial/1.0.0>
|
|
4
|
+
|
|
5
|
+
## Acceptance
|
|
6
|
+
|
|
7
|
+
In order to get any license under these terms, you must agree
|
|
8
|
+
to them as both strict obligations and conditions to all
|
|
9
|
+
your licenses.
|
|
10
|
+
|
|
11
|
+
## Copyright License
|
|
12
|
+
|
|
13
|
+
The licensor grants you a copyright license for the
|
|
14
|
+
software to do everything you might do with the software
|
|
15
|
+
that would otherwise infringe the licensor's copyright
|
|
16
|
+
in it for any permitted purpose. However, you may
|
|
17
|
+
only distribute the software according to [Distribution
|
|
18
|
+
License](#distribution-license) and make changes or new works
|
|
19
|
+
based on the software according to [Changes and New Works
|
|
20
|
+
License](#changes-and-new-works-license).
|
|
21
|
+
|
|
22
|
+
## Distribution License
|
|
23
|
+
|
|
24
|
+
The licensor grants you an additional copyright license
|
|
25
|
+
to distribute copies of the software. Your license
|
|
26
|
+
to distribute covers distributing the software with
|
|
27
|
+
changes and new works permitted by [Changes and New Works
|
|
28
|
+
License](#changes-and-new-works-license).
|
|
29
|
+
|
|
30
|
+
## Notices
|
|
31
|
+
|
|
32
|
+
You must ensure that anyone who gets a copy of any part of
|
|
33
|
+
the software from you also gets a copy of these terms or the
|
|
34
|
+
URL for them above, as well as copies of any plain-text lines
|
|
35
|
+
beginning with `Required Notice:` that the licensor provided
|
|
36
|
+
with the software. For example:
|
|
37
|
+
|
|
38
|
+
> Required Notice: Copyright Yoyodyne, Inc. (http://example.com)
|
|
39
|
+
|
|
40
|
+
## Changes and New Works License
|
|
41
|
+
|
|
42
|
+
The licensor grants you an additional copyright license to
|
|
43
|
+
make changes and new works based on the software for any
|
|
44
|
+
permitted purpose.
|
|
45
|
+
|
|
46
|
+
## Patent License
|
|
47
|
+
|
|
48
|
+
The licensor grants you a patent license for the software that
|
|
49
|
+
covers patent claims the licensor can license, or becomes able
|
|
50
|
+
to license, that you would infringe by using the software.
|
|
51
|
+
|
|
52
|
+
## Noncommercial Purposes
|
|
53
|
+
|
|
54
|
+
Any noncommercial purpose is a permitted purpose.
|
|
55
|
+
|
|
56
|
+
## Personal Uses
|
|
57
|
+
|
|
58
|
+
Personal use for research, experiment, and testing for
|
|
59
|
+
the benefit of public knowledge, personal study, private
|
|
60
|
+
entertainment, hobby projects, amateur pursuits, or religious
|
|
61
|
+
observance, without any anticipated commercial application,
|
|
62
|
+
is use for a permitted purpose.
|
|
63
|
+
|
|
64
|
+
## Noncommercial Organizations
|
|
65
|
+
|
|
66
|
+
Use by any charitable organization, educational institution,
|
|
67
|
+
public research organization, public safety or health
|
|
68
|
+
organization, environmental protection organization,
|
|
69
|
+
or government institution is use for a permitted purpose
|
|
70
|
+
regardless of the source of funding or obligations resulting
|
|
71
|
+
from the funding.
|
|
72
|
+
|
|
73
|
+
## Fair Use
|
|
74
|
+
|
|
75
|
+
You may have "fair use" rights for the software under the
|
|
76
|
+
law. These terms do not limit them.
|
|
77
|
+
|
|
78
|
+
## No Other Rights
|
|
79
|
+
|
|
80
|
+
These terms do not allow you to sublicense or transfer any of
|
|
81
|
+
your licenses to anyone else, or prevent the licensor from
|
|
82
|
+
granting licenses to anyone else. These terms do not imply
|
|
83
|
+
any other licenses.
|
|
84
|
+
|
|
85
|
+
## Patent Defense
|
|
86
|
+
|
|
87
|
+
If you make any written claim that the software infringes or
|
|
88
|
+
contributes to infringement of any patent, your patent license
|
|
89
|
+
for the software granted under these terms ends immediately. If
|
|
90
|
+
your company makes such a claim, your patent license ends
|
|
91
|
+
immediately for work on behalf of your company.
|
|
92
|
+
|
|
93
|
+
## Violations
|
|
94
|
+
|
|
95
|
+
The first time you are notified in writing that you have
|
|
96
|
+
violated any of these terms, or done anything with the software
|
|
97
|
+
not covered by your licenses, your licenses can nonetheless
|
|
98
|
+
continue if you come into full compliance with these terms,
|
|
99
|
+
and take practical steps to correct past violations, within
|
|
100
|
+
32 days of receiving notice. Otherwise, all your licenses
|
|
101
|
+
end immediately.
|
|
102
|
+
|
|
103
|
+
## No Liability
|
|
104
|
+
|
|
105
|
+
***As far as the law allows, the software comes as is, without
|
|
106
|
+
any warranty or condition, and the licensor will not be liable
|
|
107
|
+
to you for any damages arising out of these terms or the use
|
|
108
|
+
or nature of the software, under any kind of legal claim.***
|
|
109
|
+
|
|
110
|
+
## Definitions
|
|
111
|
+
|
|
112
|
+
The **licensor** is the individual or entity offering these
|
|
113
|
+
terms, and the **software** is the software the licensor makes
|
|
114
|
+
available under these terms.
|
|
115
|
+
|
|
116
|
+
**You** refers to the individual or entity agreeing to these
|
|
117
|
+
terms.
|
|
118
|
+
|
|
119
|
+
**Your company** is any legal entity, sole proprietorship,
|
|
120
|
+
or other kind of organization that you work for, plus all
|
|
121
|
+
organizations that have control over, are under the control of,
|
|
122
|
+
or are under common control with that organization. **Control**
|
|
123
|
+
means ownership of substantially all the assets of an entity,
|
|
124
|
+
or the power to direct its management and policies by vote,
|
|
125
|
+
contract, or otherwise. Control can be direct or indirect.
|
|
126
|
+
|
|
127
|
+
**Your licenses** are all the licenses granted to you for the
|
|
128
|
+
software under these terms.
|
|
129
|
+
|
|
130
|
+
**Use** means anything you do with the software requiring one
|
|
131
|
+
of your licenses.
|
|
132
|
+
|
|
133
|
+
Required Notice: Copyright (c) 2026 Cassio Marques Campos
|
package/LOOP_ENGINEERING.md
CHANGED
|
@@ -541,6 +541,21 @@ forgeloop preflight
|
|
|
541
541
|
|
|
542
542
|
`preflight` validates local ForgeLoop artifacts only. It does not invoke the model, run project commands, or treat a prose declaration as evidence. A `READY` result is required before `EXECUTING` in standard and strict workflows. A non-empty `current-contract.unresolvedDecisions[]` causes `forgeloop preflight` to return `BLOCKED` with `E_CONTRACT_UNRESOLVED_DECISION`; a valid `current-contract.assumptions[]` list does not block preparation.
|
|
543
543
|
|
|
544
|
+
Required gates are recorded only through `forgeloop gate-record`. The command
|
|
545
|
+
accepts only gates required by the active route or policy, computes artifact
|
|
546
|
+
hashes itself, rejects traversal and symlink escapes, and permits mutation only
|
|
547
|
+
in `ROUTED`, `DESIGNING`, or `PLANNED`. It rejects gate writes after execution
|
|
548
|
+
starts. A satisfied gate requires a meaningful decision and no unknowns.
|
|
549
|
+
Caller-provided evidence remains descriptive local input and cannot assert
|
|
550
|
+
`HOST_ATTESTED`, `FORGELOOP_EXECUTED`, or remote attestation.
|
|
551
|
+
|
|
552
|
+
Built-in contract preset references are limited to the canonical
|
|
553
|
+
`contract-preset:documentation`, `contract-preset:bug`,
|
|
554
|
+
`contract-preset:feature`, and `contract-preset:release` values. These values
|
|
555
|
+
do not require `.forgeloop/sources.json`; mixed contracts still validate every
|
|
556
|
+
non-built-in reference against the source registry, and unknown preset names
|
|
557
|
+
are rejected.
|
|
558
|
+
|
|
544
559
|
### Resumable activation and artifact reconciliation
|
|
545
560
|
|
|
546
561
|
`PREFLIGHT_READY` is a durable checkpoint, not only a status value. A persisted
|
|
@@ -864,6 +879,15 @@ proportional phases, but:
|
|
|
864
879
|
- `REVIEWING` cannot claim independent review when reviewer and implementer
|
|
865
880
|
identities are equal.
|
|
866
881
|
|
|
882
|
+
Immediately after `task-create`, a task may have a valid descriptor and
|
|
883
|
+
hash-linked `TASK_RECEIVED`/transaction history without `work-state.json`.
|
|
884
|
+
ForgeLoop derives `RECEIVED` from that canonical early artifact set. `next`
|
|
885
|
+
returns `DISCOVER`, and `discover` appends the initial discovery milestone
|
|
886
|
+
without creating synthetic work state. `next` then returns `CREATE_CONTRACT`;
|
|
887
|
+
`contract-create` persists and validates the real contract and materializes the
|
|
888
|
+
first work-state checkpoint with its actual contract fingerprint. Invalid,
|
|
889
|
+
contradictory, or unexpected early history remains inconsistent.
|
|
890
|
+
|
|
867
891
|
Resume rules are conservative: revalidate branch, HEAD, contract fingerprint,
|
|
868
892
|
protocol version, and required artifacts before continuing; never rerun a
|
|
869
893
|
completed destructive or publication action automatically; rerun cheap
|
|
@@ -989,8 +1013,10 @@ tooling, the agent must verify the capability boundary before using it:
|
|
|
989
1013
|
3. Reuse an existing callable capability when it is sufficient for the task.
|
|
990
1014
|
4. If the required capability is missing and a keyless Qwen path exists,
|
|
991
1015
|
install only the smallest matching capability, normally
|
|
992
|
-
`qwen-mm-plugins-core` for multimodal reading
|
|
993
|
-
|
|
1016
|
+
`qwen-mm-plugins-core` for multimodal reading, when the host or operator has
|
|
1017
|
+
explicitly granted task-scoped installation authority. Without that
|
|
1018
|
+
authority, keep the capability unavailable and report the limitation. Use
|
|
1019
|
+
the active harness's native installation mechanism or the official
|
|
994
1020
|
[Qwen-MM-Plugins](https://github.com/QwenLM/Qwen-MM-Plugins) instructions.
|
|
995
1021
|
5. If the operation is API-backed, check the required environment variable or
|
|
996
1022
|
configured service endpoint before enabling it. Without that prerequisite,
|
package/LOOP_SYSTEM_DESIGN.md
CHANGED
|
@@ -24,7 +24,7 @@ The system should use every guide that materially helps the task without loading
|
|
|
24
24
|
- The loop continues while safe progress is possible. Repetition without new evidence triggers hypothesis reassessment or a blocked result, not infinite retries.
|
|
25
25
|
- Third-party provenance and reuse boundaries remain part of every portable copy.
|
|
26
26
|
- Qwen-MM-Plugins is an optional, task-scoped capability extension: the agent checks native support first, installs the smallest missing capability when needed, and verifies it before use; it is not a package or runtime dependency.
|
|
27
|
-
- Canonical documents are installed under `.forgeloop/kit/`; root native adapters remain small discovery shims; project-scoped configuration remains under `.forgeloop/`;
|
|
27
|
+
- Canonical documents are installed under `.forgeloop/kit/`; root native adapters remain small discovery shims; project-scoped configuration remains under `.forgeloop/`; operational task records use `.forgeloop/state.sqlite` in SQLite mode. `.forgeloop/task-state/<taskKey>/` remains the logical and portable export path for task artifacts. Legacy filesystem mode remains a separate compatibility path, and SQLite capability still reports `soleSQLiteWriter: false` while legacy writers remain.
|
|
28
28
|
- `PREFLIGHT_READY` is a resumable protocol checkpoint reconciled with work state, activation events, fingerprints, and the append-only hash chain.
|
|
29
29
|
|
|
30
30
|
## Alternatives considered
|
|
@@ -446,15 +446,15 @@ The validator also exercises seven routing scenarios:
|
|
|
446
446
|
The npm CLI installs the kit into the current directory or an existing
|
|
447
447
|
directory selected with `--path` when the package is available in the npm
|
|
448
448
|
registry. If it is not available yet, the same commands can run as
|
|
449
|
-
`node src/cli.js ...` from a repository checkout. The CLI maps canonical
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
preserve
|
|
457
|
-
equivalent to `forgeloop init`.
|
|
449
|
+
`node src/cli.js ...` from a repository checkout. The CLI maps canonical documents into `.forgeloop/kit/`, keeps only native
|
|
450
|
+
instruction shims at the target root, and leaves project-scoped configuration
|
|
451
|
+
under `.forgeloop/`. In SQLite mode, mutable task records are stored in
|
|
452
|
+
`.forgeloop/state.sqlite`; `.forgeloop/task-state/<taskKey>/` is the logical
|
|
453
|
+
task-artifact and portable export path, not a claim that each artifact exists
|
|
454
|
+
as a live filesystem file. Legacy filesystem mode remains a separate
|
|
455
|
+
compatibility path, and SQLite mode must not share writable operational state
|
|
456
|
+
with it. Manual copying must preserve the target layout; copying package-source
|
|
457
|
+
root files directly is not equivalent to `forgeloop init`.
|
|
458
458
|
|
|
459
459
|
Recovery uses a relational state model: `work-state.json` owns the lifecycle
|
|
460
460
|
phase, `task.json` retains historical claims, `recovery.json` records current
|
|
@@ -183,7 +183,8 @@ Attestation Chain](./docs/CODE_ATTESTATION.md#completion-flow).
|
|
|
183
183
|
|
|
184
184
|
## Serializable interfaces
|
|
185
185
|
|
|
186
|
-
The following JSON Schemas define
|
|
186
|
+
The following core lifecycle JSON Schemas define boundaries a host may implement;
|
|
187
|
+
the complete current inventory is generated in `docs/ARTIFACT_REFERENCE.md`:
|
|
187
188
|
|
|
188
189
|
- `schemas/routing-input.schema.json` and
|
|
189
190
|
`schemas/routing-result.schema.json` define deterministic guide selection
|
|
@@ -203,6 +204,9 @@ The following JSON Schemas define the boundaries a host may implement:
|
|
|
203
204
|
`schemas/config.schema.json`, `schemas/policy.schema.json`, and
|
|
204
205
|
`schemas/task-bundle.schema.json` define chronology, mode, policy, and
|
|
205
206
|
handoff boundaries.
|
|
207
|
+
- `schemas/semantic-decision.schema.json`, `schemas/context-plan.schema.json`,
|
|
208
|
+
and `schemas/test-utility.schema.json` define bounded semantic inputs and
|
|
209
|
+
test-intelligence projections without lifecycle or evidence authority.
|
|
206
210
|
|
|
207
211
|
`src/core/conformance.js` validates relationships that individual schemas
|
|
208
212
|
cannot express: route/state protocol versions, route/state guide sets,
|
|
@@ -224,10 +228,10 @@ tool objects, credentials, hidden prompts, or remote database references.
|
|
|
224
228
|
## Host responsibilities
|
|
225
229
|
|
|
226
230
|
The compatible harness owns model execution, tool execution, scheduling,
|
|
227
|
-
parallelism,
|
|
228
|
-
|
|
229
|
-
capabilities, and never turn local success into an
|
|
230
|
-
claim.
|
|
231
|
+
parallelism, verification isolation, and any remote services. It must invoke
|
|
232
|
+
lifecycle transitions through ForgeLoop, pass validated inputs, preserve file
|
|
233
|
+
ownership, report unavailable capabilities, and never turn local success into an
|
|
234
|
+
unverified publication claim.
|
|
231
235
|
|
|
232
236
|
## No-runtime boundary
|
|
233
237
|
|
package/PROTOCOL_INTEGRATION.md
CHANGED
|
@@ -181,6 +181,16 @@ authority, provenance, and safety-floor decisions remain unchanged.
|
|
|
181
181
|
validator-backed completion remains unchanged.
|
|
182
182
|
```
|
|
183
183
|
|
|
184
|
+
The capability handshake also advertises the versioned, read-only `auditUx`
|
|
185
|
+
resource feature. `task/audit-view` is a bounded presentation projection
|
|
186
|
+
composed from canonical status, audit, report, history, trace, ownership,
|
|
187
|
+
next-action, approval, and recovery resolvers. It exposes no lifecycle,
|
|
188
|
+
evidence, completion, mutation, or external-execution authority; hosts must
|
|
189
|
+
use the canonical command/API path for mutations. Timeline pagination is
|
|
190
|
+
sequence-based and bounded, and the projection omits raw event payloads,
|
|
191
|
+
commands, environment values, credentials, provider output, and absolute
|
|
192
|
+
paths. See [`docs/AUDIT_UX.md`](./docs/AUDIT_UX.md).
|
|
193
|
+
|
|
184
194
|
## Capability negotiation
|
|
185
195
|
|
|
186
196
|
The public capability handshake exposes additive capability families separately
|
|
@@ -190,6 +200,7 @@ from Protocol v1, schema v1, and Integration API v1:
|
|
|
190
200
|
| --- | --- | --- |
|
|
191
201
|
| `canonicalHandoffs` | v2 | Immutable handoff snapshots with ledger-backed exactly-once operational acceptance |
|
|
192
202
|
| `advisoryContextProviders` | v1 | Lazy, opt-in, provider-neutral Integration API injection only |
|
|
203
|
+
| `providerExtensions` | v1 | Experimental provider-neutral capability vocabulary; generic registry remains internal and unexported |
|
|
193
204
|
|
|
194
205
|
`repositoryIndex` v1 is a mandatory provider-neutral discovery capability for
|
|
195
206
|
Git repositories. ForgeLoop currently implements it with a managed, pinned
|
|
@@ -223,6 +234,40 @@ instructions. `protocol-info` may advertise the capability, but advisory
|
|
|
223
234
|
recall remains a programmatic Integration API operation; there is no stock
|
|
224
235
|
`context-recall` CLI command.
|
|
225
236
|
|
|
237
|
+
<a id="FL-PROVIDER-001"></a> **FL-PROVIDER-001 — `providerExtensions` MUST remain provider-neutral and experimental and MUST NOT imply a public generic provider registry API.**
|
|
238
|
+
|
|
239
|
+
<a id="FL-PROVIDER-002"></a> **FL-PROVIDER-002 — Every advertised provider kind MUST deny lifecycle, completion, and evidence authority.**
|
|
240
|
+
|
|
241
|
+
<a id="FL-PROVIDER-003"></a> **FL-PROVIDER-003 — Provider results MUST cross a strict JSON snapshot boundary before consumer use.**
|
|
242
|
+
|
|
243
|
+
<a id="FL-PROVIDER-004"></a> **FL-PROVIDER-004 — The generic provider registry MUST remain absent from public package subpath exports.**
|
|
244
|
+
|
|
245
|
+
`providerExtensions` v1 is provider-neutral and experimental. It advertises
|
|
246
|
+
five provider kinds, strict JSON result normalization, cooperative cancellation,
|
|
247
|
+
and false lifecycle, completion, evidence, and auto-install authority. This
|
|
248
|
+
capability advertisement does not imply a generic public provider registration
|
|
249
|
+
API or a supported `./providers` package subpath. Protocol version remains 1,
|
|
250
|
+
Schema version remains 1, and Integration API version remains 1.
|
|
251
|
+
|
|
252
|
+
The dedicated `browserVerificationProviders` runtime-context option is a
|
|
253
|
+
separate explicit Integration API boundary. It is host-injected, provider
|
|
254
|
+
neutral, lazy, and inert during context construction. `runBrowserVerification`
|
|
255
|
+
is the only public operation; it does not run from lifecycle commands and does
|
|
256
|
+
not persist observations. ForgeLoop owns the shared deadline, cooperative
|
|
257
|
+
cancellation, strict result snapshot, exact origin/redirect validation, and
|
|
258
|
+
overall assertion-status derivation. Browser observations cannot directly
|
|
259
|
+
create evidence, completion authority, claims, receipts, or next actions. The
|
|
260
|
+
origin allowlist is not a network sandbox and no browser vendor is canonical.
|
|
261
|
+
|
|
262
|
+
The dedicated `securityReviewProviders` runtime-context option is another
|
|
263
|
+
explicit, host-injected Integration API boundary. `runSecurityReview` is
|
|
264
|
+
lazy, inert during context construction, and observation-only: it does not
|
|
265
|
+
install or discover scanners, mutate lifecycle artifacts, create evidence,
|
|
266
|
+
authorize completion, or issue commands. ForgeLoop bounds and freezes the
|
|
267
|
+
request, shares one deadline and cooperative abort signal across factory and
|
|
268
|
+
review, and normalizes the result into a strict immutable observation. Findings
|
|
269
|
+
must not be treated as canonical evidence or lifecycle authority.
|
|
270
|
+
|
|
226
271
|
A consumer that understands `canonicalHandoffs` v1 but not v2 may disable the
|
|
227
272
|
handoff-specific UI while keeping Protocol v1 core functionality available.
|
|
228
273
|
Consumers must feature-detect the capability family and must not mark the
|
|
@@ -394,6 +439,12 @@ only a compatibility alias and has identical caller-acknowledgement semantics.
|
|
|
394
439
|
a trusted grant reference through a boundary the active actor cannot mint or
|
|
395
440
|
replace. The standalone CLI does not expose such a self-attestation option.
|
|
396
441
|
|
|
442
|
+
Explicit active-task abandonment is a distinct caller-acknowledged operation:
|
|
443
|
+
`task-abandon --task <id> --acknowledge-abandonment` releases validated claims
|
|
444
|
+
through the same canonical ownership resolver, project/task serialization, and
|
|
445
|
+
append-only recovery history. It does not change the phase or create completion,
|
|
446
|
+
publication, or host authority. `clear-state` is not an abandonment substitute.
|
|
447
|
+
|
|
397
448
|
Claim ownership is a validated relationship, not an artifact preference.
|
|
398
449
|
<a id="FL-CLAIM-001"></a> **FL-CLAIM-001 — Every harness MUST consume the canonical claim-state resolver**
|
|
399
450
|
over the descriptor, work state, recovery artifact, and complete validated
|
|
@@ -488,8 +539,10 @@ installing a package.
|
|
|
488
539
|
|
|
489
540
|
The installed loop directs the active actor to inspect native model and harness
|
|
490
541
|
capabilities. When a task requires a missing capability (e.g. multimodal vision),
|
|
491
|
-
|
|
492
|
-
|
|
542
|
+
a host or operator may provision the smallest task-scoped capability (such as
|
|
543
|
+
`Qwen-MM-Plugins`) only when installation authority has been explicitly
|
|
544
|
+
granted. Use native mechanisms or upstream installers, then verify it before
|
|
545
|
+
use. Without that authority, keep it unavailable and report the limitation.
|
|
493
546
|
|
|
494
547
|
API credentials, system packages, and unrelated environment changes remain
|
|
495
548
|
separately gated.
|