@echopath-labs/forgerail 0.1.0-alpha.1 → 0.1.0-alpha.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/.codex-plugin/plugin.json +7 -3
- package/CHANGELOG.md +8 -0
- package/PLUGIN.md +2 -1
- package/PRIVACY.md +15 -0
- package/README.md +14 -2
- package/README.zh-CN.md +13 -2
- package/TERMS.md +19 -0
- package/adapters/codex.json +1 -1
- package/assets/forgerail-icon.svg +6 -0
- package/assets/forgerail-logo.svg +7 -0
- package/contracts/authority-evidence-v1.schema.json +48 -0
- package/contracts/cross-workspace-pack-composition-v1.schema.json +241 -0
- package/contracts/effective-profile-v2.schema.json +113 -0
- package/contracts/entry-mode-v1.schema.json +20 -0
- package/contracts/evidence-identity-v1.schema.json +48 -0
- package/contracts/execution-context-identity-v1.schema.json +76 -0
- package/contracts/gate-result-v1.schema.json +32 -0
- package/contracts/governance-source-v1.schema.json +30 -0
- package/contracts/host-adapter-observation-v1.schema.json +61 -0
- package/contracts/limited-reason-v1.schema.json +46 -0
- package/contracts/operation-authority-requirement-v1.schema.json +43 -0
- package/contracts/operation-grant-v1.schema.json +83 -0
- package/contracts/phase-slice-correlation-v1.schema.json +20 -0
- package/contracts/profile-explanation-v1.schema.json +91 -0
- package/contracts/provider-adapter-observation-v1.schema.json +87 -0
- package/contracts/return-receipt-v2.schema.json +55 -0
- package/contracts/review-authority-requirement-v1.schema.json +117 -0
- package/contracts/rollback-envelope-lineage-v1.schema.json +46 -0
- package/contracts/rule-claim-v1.schema.json +34 -0
- package/contracts/source-dependency-edge-v1.schema.json +37 -0
- package/contracts/task-control-revision-v1.schema.json +39 -0
- package/contracts/task-envelope-v2.schema.json +67 -0
- package/contracts/validation-result-v1.schema.json +57 -0
- package/contracts/validation-topology-v1.schema.json +55 -0
- package/contracts/workspace-identity-v1.schema.json +28 -0
- package/contracts/workspace-relationship-v1.schema.json +31 -0
- package/directory/README.md +23 -0
- package/directory/evaluations.json +78 -0
- package/directory/release-notes-alpha2.md +7 -0
- package/directory/submission-candidate.json +80 -0
- package/docs/composable-autonomy.zh-CN.md +183 -0
- package/docs/control-authority-validation-contracts.md +36 -0
- package/docs/control-authority-validation-contracts.zh-CN.md +36 -0
- package/docs/control-profile-contracts.md +35 -0
- package/docs/control-profile-contracts.zh-CN.md +35 -0
- package/docs/control-system-fixture-matrix.md +30 -0
- package/docs/control-system-fixture-matrix.zh-CN.md +30 -0
- package/docs/control-task-contracts.md +39 -0
- package/docs/control-task-contracts.zh-CN.md +39 -0
- package/docs/cross-workspace-pack-composition-contract.md +31 -0
- package/docs/cross-workspace-pack-composition-contract.zh-CN.md +31 -0
- package/docs/installation.md +9 -3
- package/docs/installation.zh-CN.md +9 -3
- package/docs/release-alpha2.md +21 -0
- package/docs/release-alpha2.zh-CN.md +21 -0
- package/package.json +9 -3
- package/packs/architecture-convergence-audit.json +30 -0
- package/scripts/build-universal-directory-candidate.mjs +72 -0
- package/scripts/disposable-consumer.mjs +1 -1
- package/scripts/fixtures/contracts/authority-evidence.revoked-without-invalidation.invalid.json +22 -0
- package/scripts/fixtures/contracts/authority-evidence.revoked.valid.json +32 -0
- package/scripts/fixtures/contracts/authority-evidence.valid.json +22 -0
- package/scripts/fixtures/contracts/capability-pack.missing-entry.invalid.json +14 -0
- package/scripts/fixtures/contracts/capability-pack.valid.json +15 -0
- package/scripts/fixtures/contracts/cross-workspace-pack-composition.authority-collapse.invalid.json +156 -0
- package/scripts/fixtures/contracts/cross-workspace-pack-composition.false-closure.invalid.json +138 -0
- package/scripts/fixtures/contracts/cross-workspace-pack-composition.valid.json +156 -0
- package/scripts/fixtures/contracts/effective-profile-v2.optional-unavailable-degraded.valid.json +36 -0
- package/scripts/fixtures/contracts/effective-profile-v2.required-unavailable-degraded.invalid.json +36 -0
- package/scripts/fixtures/contracts/effective-profile-v2.unresolved-claim-false-complete.invalid.json +34 -0
- package/scripts/fixtures/contracts/effective-profile-v2.valid.json +53 -0
- package/scripts/fixtures/contracts/effective-profile.duplicate-rule.invalid.json +23 -0
- package/scripts/fixtures/contracts/entry-mode.missing-evidence.invalid.json +6 -0
- package/scripts/fixtures/contracts/entry-mode.valid.json +6 -0
- package/scripts/fixtures/contracts/evidence-identity.unavailable-without-reason.invalid.json +21 -0
- package/scripts/fixtures/contracts/evidence-identity.valid.json +21 -0
- package/scripts/fixtures/contracts/execution-context-identity.unavailable-without-reason.invalid.json +31 -0
- package/scripts/fixtures/contracts/execution-context-identity.valid.json +31 -0
- package/scripts/fixtures/contracts/gate-result.satisfied-without-evidence.invalid.json +14 -0
- package/scripts/fixtures/contracts/gate-result.valid.json +14 -0
- package/scripts/fixtures/contracts/governance-source.unavailable-without-reason.invalid.json +16 -0
- package/scripts/fixtures/contracts/governance-source.valid.json +16 -0
- package/scripts/fixtures/contracts/host-adapter-observation.claims-authorization.invalid.json +23 -0
- package/scripts/fixtures/contracts/host-adapter-observation.valid.json +39 -0
- package/scripts/fixtures/contracts/host-adapter.codex.valid.json +1 -1
- package/scripts/fixtures/contracts/host-adapter.false-supported.invalid.json +14 -0
- package/scripts/fixtures/contracts/host-binding-receipt.valid.json +1 -1
- package/scripts/fixtures/contracts/launch-contract.execution-owner.invalid.json +19 -0
- package/scripts/fixtures/contracts/limited-reason.unbounded.invalid.json +11 -0
- package/scripts/fixtures/contracts/limited-reason.valid.json +11 -0
- package/scripts/fixtures/contracts/operation-authority-requirement.no-issuer.invalid.json +22 -0
- package/scripts/fixtures/contracts/operation-authority-requirement.valid.json +22 -0
- package/scripts/fixtures/contracts/operation-grant.missing-issuer-evidence.invalid.json +34 -0
- package/scripts/fixtures/contracts/operation-grant.valid.json +34 -0
- package/scripts/fixtures/contracts/phase-slice-correlation.aggregate-closure.invalid.json +12 -0
- package/scripts/fixtures/contracts/phase-slice-correlation.valid.json +12 -0
- package/scripts/fixtures/contracts/profile-change-candidate.unconfirmed.invalid.json +13 -0
- package/scripts/fixtures/contracts/profile-explanation.false-complete.invalid.json +36 -0
- package/scripts/fixtures/contracts/profile-explanation.valid.json +29 -0
- package/scripts/fixtures/contracts/provider-adapter-observation.unauthenticated-supported.invalid.json +43 -0
- package/scripts/fixtures/contracts/provider-adapter-observation.valid.json +62 -0
- package/scripts/fixtures/contracts/return-receipt-v2.changed-subject.valid.json +36 -0
- package/scripts/fixtures/contracts/return-receipt-v2.unverified-closeout.invalid.json +36 -0
- package/scripts/fixtures/contracts/return-receipt-v2.valid.json +36 -0
- package/scripts/fixtures/contracts/review-authority-requirement.transitive.invalid.json +33 -0
- package/scripts/fixtures/contracts/review-authority-requirement.valid.json +21 -0
- package/scripts/fixtures/contracts/rollback-envelope-lineage.reused-grant.invalid.json +24 -0
- package/scripts/fixtures/contracts/rollback-envelope-lineage.valid.json +24 -0
- package/scripts/fixtures/contracts/rule-claim.inferred-enforceable.invalid.json +16 -0
- package/scripts/fixtures/contracts/rule-claim.valid.json +16 -0
- package/scripts/fixtures/contracts/source-dependency-edge.unavailable-without-reason.invalid.json +18 -0
- package/scripts/fixtures/contracts/source-dependency-edge.valid.json +18 -0
- package/scripts/fixtures/contracts/task-control-revision.closed-without-receipt.invalid.json +37 -0
- package/scripts/fixtures/contracts/task-control-revision.valid.json +37 -0
- package/scripts/fixtures/contracts/task-envelope-v2.missing-workspace-identity.invalid.json +39 -0
- package/scripts/fixtures/contracts/task-envelope-v2.valid.json +54 -0
- package/scripts/fixtures/contracts/task-envelope-v2.workspace-mismatch.invalid.json +40 -0
- package/scripts/fixtures/contracts/validation-result.passed-without-evidence.invalid.json +29 -0
- package/scripts/fixtures/contracts/validation-result.valid.json +19 -0
- package/scripts/fixtures/contracts/validation-topology.dangling-requirement.invalid.json +32 -0
- package/scripts/fixtures/contracts/validation-topology.protected-environment.valid.json +32 -0
- package/scripts/fixtures/contracts/validation-topology.valid.json +32 -0
- package/scripts/fixtures/contracts/workspace-identity.missing-root.invalid.json +6 -0
- package/scripts/fixtures/contracts/workspace-identity.valid.json +14 -0
- package/scripts/fixtures/contracts/workspace-relationship.inferred-authority.invalid.json +13 -0
- package/scripts/fixtures/contracts/workspace-relationship.valid.json +13 -0
- package/scripts/fixtures/control-system/architecture-convergence-cases.json +25 -0
- package/scripts/fixtures/control-system/task-2.9-invalid-boundary-matrix.json +203 -0
- package/scripts/fixtures/control-system/task-4-diagnosis-health-separation.json +19 -0
- package/scripts/fixtures/workspaces/no-node-project/AGENTS.md +3 -0
- package/scripts/fixtures/workspaces/no-node-project/README.md +3 -0
- package/scripts/fixtures/workspaces/no-node-project/docs/adr/0001-durable-records.md +3 -0
- package/scripts/forgerail.mjs +467 -14
- package/scripts/lib/contracts.mjs +1132 -2
- package/scripts/shadow-comparison.mjs +1 -1
- package/scripts/validate-release.mjs +15 -15
- package/scripts/validate-universal-directory.mjs +151 -0
- package/skills/architecture-convergence-audit/SKILL.md +31 -0
- package/skills/architecture-convergence-audit/agents/openai.yaml +7 -0
- package/skills/architecture-convergence-audit/assets/github-issue-template.md +26 -0
- package/skills/architecture-convergence-audit/references/audit-contract.md +62 -0
- package/skills/workspace-health-review/references/health-review.md +15 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "2.0",
|
|
3
|
+
"profileId": "profile:demo",
|
|
4
|
+
"revisionId": "profile-revision:demo-1",
|
|
5
|
+
"workspaceIdentityId": "workspace:demo",
|
|
6
|
+
"computed": true,
|
|
7
|
+
"computedAt": "2026-08-18T00:00:00Z",
|
|
8
|
+
"completeness": "complete",
|
|
9
|
+
"sourceIds": ["source:agents"],
|
|
10
|
+
"workspaceRelationshipIds": [],
|
|
11
|
+
"ruleClaims": [
|
|
12
|
+
{
|
|
13
|
+
"schemaVersion": "1.0",
|
|
14
|
+
"claimId": "claim:review",
|
|
15
|
+
"workspaceIdentityId": "workspace:demo",
|
|
16
|
+
"sourceId": "source:agents",
|
|
17
|
+
"ruleKey": "review.required",
|
|
18
|
+
"normalizedValue": true,
|
|
19
|
+
"precedenceClass": "workspace-instructions",
|
|
20
|
+
"applicabilityScope": ["code-change"],
|
|
21
|
+
"observationPoint": "AGENTS.md#review",
|
|
22
|
+
"status": "confirmed",
|
|
23
|
+
"enforcement": "enforceable",
|
|
24
|
+
"dependencyEdgeIds": ["edge:skill"],
|
|
25
|
+
"observedAt": "2026-08-18T00:00:00Z",
|
|
26
|
+
"limitedReason": null
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"dependencyEdges": [
|
|
30
|
+
{
|
|
31
|
+
"schemaVersion": "1.0",
|
|
32
|
+
"edgeId": "edge:skill",
|
|
33
|
+
"workspaceIdentityId": "workspace:demo",
|
|
34
|
+
"declaringSourceId": "source:agents",
|
|
35
|
+
"target": {
|
|
36
|
+
"kind": "skill",
|
|
37
|
+
"locator": ".codex/skills/review/SKILL.md",
|
|
38
|
+
"identity": "skill:review"
|
|
39
|
+
},
|
|
40
|
+
"requiredness": "required",
|
|
41
|
+
"applicabilityScope": ["code-change"],
|
|
42
|
+
"provenanceStatus": "structured",
|
|
43
|
+
"observationStatus": "available",
|
|
44
|
+
"affectedClaimIds": ["claim:review"],
|
|
45
|
+
"observedAt": "2026-08-18T00:00:00Z",
|
|
46
|
+
"limitedReason": null
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"applicablePackIds": [],
|
|
50
|
+
"conflicts": [],
|
|
51
|
+
"explanationId": "explanation:demo-1",
|
|
52
|
+
"limitedReasons": []
|
|
53
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"workspace": "fixture-workspace",
|
|
4
|
+
"computed": true,
|
|
5
|
+
"rules": [
|
|
6
|
+
{
|
|
7
|
+
"id": "git.primary-branch",
|
|
8
|
+
"value": "main",
|
|
9
|
+
"source": "repository metadata",
|
|
10
|
+
"precedence": 1,
|
|
11
|
+
"status": "observed"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"id": "git.primary-branch",
|
|
15
|
+
"value": "develop",
|
|
16
|
+
"source": "inferred prose",
|
|
17
|
+
"precedence": 5,
|
|
18
|
+
"status": "inferred"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"packs": [],
|
|
22
|
+
"conflicts": []
|
|
23
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"evidenceId": "evidence:remote-policy",
|
|
4
|
+
"workspaceIdentityId": "workspace:echopath",
|
|
5
|
+
"scopeKind": "subject",
|
|
6
|
+
"taskId": "task:2.6",
|
|
7
|
+
"subjectId": "subject:task-2.6",
|
|
8
|
+
"envelopeRevisionId": "envelope-revision:task-2.6-1",
|
|
9
|
+
"controlRevisionId": "control-revision:task-2.6-1",
|
|
10
|
+
"source": {
|
|
11
|
+
"kind": "provider",
|
|
12
|
+
"providerId": "github",
|
|
13
|
+
"locator": "repository-policy",
|
|
14
|
+
"providerEvidenceId": null
|
|
15
|
+
},
|
|
16
|
+
"contentDigest": null,
|
|
17
|
+
"observedAt": "2026-08-18T08:30:00Z",
|
|
18
|
+
"availability": "unavailable",
|
|
19
|
+
"sanitized": true,
|
|
20
|
+
"limitedReason": null
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"evidenceId": "evidence:task-2.6-tests",
|
|
4
|
+
"workspaceIdentityId": "workspace:echopath",
|
|
5
|
+
"scopeKind": "subject",
|
|
6
|
+
"taskId": "task:2.6",
|
|
7
|
+
"subjectId": "subject:task-2.6",
|
|
8
|
+
"envelopeRevisionId": "envelope-revision:task-2.6-1",
|
|
9
|
+
"controlRevisionId": "control-revision:task-2.6-1",
|
|
10
|
+
"source": {
|
|
11
|
+
"kind": "test",
|
|
12
|
+
"providerId": null,
|
|
13
|
+
"locator": "npm test",
|
|
14
|
+
"providerEvidenceId": null
|
|
15
|
+
},
|
|
16
|
+
"contentDigest": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
17
|
+
"observedAt": "2026-08-18T08:30:00Z",
|
|
18
|
+
"availability": "available",
|
|
19
|
+
"sanitized": true,
|
|
20
|
+
"limitedReason": null
|
|
21
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"executionContextIdentityId": "execution-context:npm-test",
|
|
4
|
+
"workspaceIdentityId": "workspace:forgerail",
|
|
5
|
+
"subjectId": "subject:commit-a",
|
|
6
|
+
"entrypoint": {
|
|
7
|
+
"entrypointId": "entrypoint:npm-test",
|
|
8
|
+
"kind": "local-command",
|
|
9
|
+
"locator": "plugins/forgerail/package.json#scripts.test",
|
|
10
|
+
"digest": null
|
|
11
|
+
},
|
|
12
|
+
"invocationRoot": "/workspace/plugins/forgerail",
|
|
13
|
+
"executor": { "executorId": "executor:codex", "kind": "host-agent" },
|
|
14
|
+
"runner": { "runnerId": "runner:local-node", "trustClass": "local-observed" },
|
|
15
|
+
"toolIdentities": ["node:24.15.0"],
|
|
16
|
+
"providerIdentities": [],
|
|
17
|
+
"dependencies": [
|
|
18
|
+
{
|
|
19
|
+
"dependencyId": "execution-dependency:ancestor-env",
|
|
20
|
+
"kind": "environment-file",
|
|
21
|
+
"locator": "external://ancestor/.env",
|
|
22
|
+
"boundary": "unavailable-external",
|
|
23
|
+
"declared": false,
|
|
24
|
+
"availability": "unavailable",
|
|
25
|
+
"evidenceIdentityId": null,
|
|
26
|
+
"limitedReason": null
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"observedAt": "2026-08-18T15:30:00Z",
|
|
30
|
+
"sanitized": true
|
|
31
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"executionContextIdentityId": "execution-context:npm-test",
|
|
4
|
+
"workspaceIdentityId": "workspace:forgerail",
|
|
5
|
+
"subjectId": "subject:commit-a",
|
|
6
|
+
"entrypoint": {
|
|
7
|
+
"entrypointId": "entrypoint:npm-test",
|
|
8
|
+
"kind": "local-command",
|
|
9
|
+
"locator": "plugins/forgerail/package.json#scripts.test",
|
|
10
|
+
"digest": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
11
|
+
},
|
|
12
|
+
"invocationRoot": "/workspace/plugins/forgerail",
|
|
13
|
+
"executor": { "executorId": "executor:codex", "kind": "host-agent" },
|
|
14
|
+
"runner": { "runnerId": "runner:local-node", "trustClass": "local-observed" },
|
|
15
|
+
"toolIdentities": ["node:24.15.0"],
|
|
16
|
+
"providerIdentities": [],
|
|
17
|
+
"dependencies": [
|
|
18
|
+
{
|
|
19
|
+
"dependencyId": "execution-dependency:node",
|
|
20
|
+
"kind": "toolchain",
|
|
21
|
+
"locator": "toolchain://node/24.15.0",
|
|
22
|
+
"boundary": "allowlisted-external",
|
|
23
|
+
"declared": true,
|
|
24
|
+
"availability": "available",
|
|
25
|
+
"evidenceIdentityId": "evidence:node-version",
|
|
26
|
+
"limitedReason": null
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"observedAt": "2026-08-18T15:30:00Z",
|
|
30
|
+
"sanitized": true
|
|
31
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"gateResultId": "gate-result:task-2.6-validation",
|
|
4
|
+
"gateId": "gate:task-2.6-validation",
|
|
5
|
+
"gateKind": "validation",
|
|
6
|
+
"workspaceIdentityId": "workspace:echopath",
|
|
7
|
+
"envelopeRevisionId": "envelope-revision:task-2.6-1",
|
|
8
|
+
"controlRevisionId": "control-revision:task-2.6-1",
|
|
9
|
+
"subjectId": "subject:task-2.6",
|
|
10
|
+
"disposition": "satisfied",
|
|
11
|
+
"evidenceIdentityIds": [],
|
|
12
|
+
"evaluatedAt": "2026-08-18T08:30:00Z",
|
|
13
|
+
"limitedReason": null
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"gateResultId": "gate-result:task-2.6-validation",
|
|
4
|
+
"gateId": "gate:task-2.6-validation",
|
|
5
|
+
"gateKind": "validation",
|
|
6
|
+
"workspaceIdentityId": "workspace:echopath",
|
|
7
|
+
"envelopeRevisionId": "envelope-revision:task-2.6-1",
|
|
8
|
+
"controlRevisionId": "control-revision:task-2.6-1",
|
|
9
|
+
"subjectId": "subject:task-2.6",
|
|
10
|
+
"disposition": "satisfied",
|
|
11
|
+
"evidenceIdentityIds": ["evidence:task-2.6-tests"],
|
|
12
|
+
"evaluatedAt": "2026-08-18T08:30:00Z",
|
|
13
|
+
"limitedReason": null
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"sourceId": "source:platform-policy",
|
|
4
|
+
"workspaceIdentityId": "workspace:demo",
|
|
5
|
+
"sourceKind": "platform-policy",
|
|
6
|
+
"locator": "provider:repository-policy",
|
|
7
|
+
"ownerId": null,
|
|
8
|
+
"precedenceClass": "platform-enforced",
|
|
9
|
+
"applicabilityScope": ["protected-branch"],
|
|
10
|
+
"workspaceRelationshipIds": [],
|
|
11
|
+
"observationStatus": "unavailable",
|
|
12
|
+
"ruleClaimIds": [],
|
|
13
|
+
"dependencyEdgeIds": [],
|
|
14
|
+
"observedAt": "2026-08-18T00:00:00Z",
|
|
15
|
+
"limitedReason": null
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"sourceId": "source:agents",
|
|
4
|
+
"workspaceIdentityId": "workspace:demo",
|
|
5
|
+
"sourceKind": "instructions",
|
|
6
|
+
"locator": "AGENTS.md",
|
|
7
|
+
"ownerId": "owner:demo",
|
|
8
|
+
"precedenceClass": "workspace-instructions",
|
|
9
|
+
"applicabilityScope": ["workspace"],
|
|
10
|
+
"workspaceRelationshipIds": [],
|
|
11
|
+
"observationStatus": "observed",
|
|
12
|
+
"ruleClaimIds": ["claim:review"],
|
|
13
|
+
"dependencyEdgeIds": ["edge:skill"],
|
|
14
|
+
"observedAt": "2026-08-18T00:00:00Z",
|
|
15
|
+
"limitedReason": null
|
|
16
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"observationId": "host-observation:codex-task",
|
|
4
|
+
"adapterId": "codex",
|
|
5
|
+
"adapterVersion": "0.1.0-alpha.1",
|
|
6
|
+
"hostIdentityId": "host:codex-desktop",
|
|
7
|
+
"workspaceIdentityId": "workspace:forgerail",
|
|
8
|
+
"scopeKind": "subject",
|
|
9
|
+
"taskId": "task:2.7",
|
|
10
|
+
"subjectId": "subject:commit-a",
|
|
11
|
+
"controlRevisionId": "control-revision:1",
|
|
12
|
+
"authorizationClaim": true,
|
|
13
|
+
"capabilities": [
|
|
14
|
+
{
|
|
15
|
+
"capability": "mutation",
|
|
16
|
+
"state": "supported",
|
|
17
|
+
"evidenceIdentityIds": ["evidence:host-can-write"],
|
|
18
|
+
"limitedReason": null
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"observedAt": "2026-08-18T15:30:00Z",
|
|
22
|
+
"sanitized": true
|
|
23
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"observationId": "host-observation:codex-task",
|
|
4
|
+
"adapterId": "codex",
|
|
5
|
+
"adapterVersion": "0.1.0-alpha.1",
|
|
6
|
+
"hostIdentityId": "host:codex-desktop",
|
|
7
|
+
"workspaceIdentityId": "workspace:forgerail",
|
|
8
|
+
"scopeKind": "subject",
|
|
9
|
+
"taskId": "task:2.7",
|
|
10
|
+
"subjectId": "subject:commit-a",
|
|
11
|
+
"controlRevisionId": "control-revision:1",
|
|
12
|
+
"authorizationClaim": false,
|
|
13
|
+
"capabilities": [
|
|
14
|
+
{
|
|
15
|
+
"capability": "execution-context",
|
|
16
|
+
"state": "supported",
|
|
17
|
+
"evidenceIdentityIds": ["evidence:execution-context"],
|
|
18
|
+
"limitedReason": null
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"capability": "mutation",
|
|
22
|
+
"state": "profile-only",
|
|
23
|
+
"evidenceIdentityIds": [],
|
|
24
|
+
"limitedReason": {
|
|
25
|
+
"schemaVersion": "1.0",
|
|
26
|
+
"reasonId": "reason:host-mutation-needs-grant",
|
|
27
|
+
"code": "unsupported-capability",
|
|
28
|
+
"impact": "unverified",
|
|
29
|
+
"summary": "Host mutation capability does not claim current operation authorization.",
|
|
30
|
+
"evidenceIdentityIds": [],
|
|
31
|
+
"locators": ["host://codex/mutation"],
|
|
32
|
+
"observedAt": "2026-08-18T15:30:00Z",
|
|
33
|
+
"sanitized": true
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"observedAt": "2026-08-18T15:30:00Z",
|
|
38
|
+
"sanitized": true
|
|
39
|
+
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"activationBoundary": "new-task-required",
|
|
12
12
|
"verification": {
|
|
13
13
|
"mode": "new-task-discovery",
|
|
14
|
-
"expectedSkills": ["forgerail", "forgerail-workspace-diagnosis", "workspace-health-review"]
|
|
14
|
+
"expectedSkills": ["architecture-convergence-audit", "forgerail", "forgerail-workspace-diagnosis", "workspace-health-review"]
|
|
15
15
|
},
|
|
16
16
|
"limitations": ["A new task is required after adoption."]
|
|
17
17
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"id": "claude-code",
|
|
4
|
+
"displayName": "Claude Code",
|
|
5
|
+
"status": "supported",
|
|
6
|
+
"instructionDiscovery": "task-start",
|
|
7
|
+
"skillDiscovery": "agent-skills",
|
|
8
|
+
"bindingTarget": "CLAUDE.md",
|
|
9
|
+
"bindingModes": ["managed-block", "thin-reference"],
|
|
10
|
+
"managedMarker": "forgerail:binding:claude-code:v1",
|
|
11
|
+
"activationBoundary": "host-specific-verification-required",
|
|
12
|
+
"verification": { "mode": "profile-only", "expectedSkills": [] },
|
|
13
|
+
"limitations": ["End-to-end activation has not been verified for alpha.1."]
|
|
14
|
+
}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
],
|
|
17
17
|
"changedFiles": ["AGENTS.md"],
|
|
18
18
|
"validationEvidence": ["Applied content digest matched the approved Adoption Plan."],
|
|
19
|
-
"discoveredSkills": ["forgerail", "forgerail-workspace-diagnosis", "workspace-health-review"],
|
|
19
|
+
"discoveredSkills": ["architecture-convergence-audit", "forgerail", "forgerail-workspace-diagnosis", "workspace-health-review"],
|
|
20
20
|
"activationVerification": {
|
|
21
21
|
"mode": "new-task",
|
|
22
22
|
"verified": true
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"envelope": {
|
|
4
|
+
"schemaVersion": "1.0",
|
|
5
|
+
"taskId": "fixture-task-1",
|
|
6
|
+
"intent": "Update local documentation with ForgeRail guidance.",
|
|
7
|
+
"nonGoals": ["Publish a release"],
|
|
8
|
+
"ownerWorkspace": "fixture-workspace",
|
|
9
|
+
"allowedOperations": ["read files", "edit documentation", "run local validation"],
|
|
10
|
+
"prohibitedOperations": ["push", "merge", "tag", "release"],
|
|
11
|
+
"packs": [],
|
|
12
|
+
"approvalGates": ["remote-integration-approval", "release-approval"],
|
|
13
|
+
"validation": ["git diff --check passes"],
|
|
14
|
+
"returnContract": "forgerail-return-receipt-v1"
|
|
15
|
+
},
|
|
16
|
+
"effectiveRuleSources": ["AGENTS.md", "ForgeRail Core"],
|
|
17
|
+
"hostAgent": "Codex",
|
|
18
|
+
"executionOwner": "forgerail"
|
|
19
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"reasonId": "reason:unbounded",
|
|
4
|
+
"code": "arbitrary-secret-bearing-reason",
|
|
5
|
+
"impact": "unavailable",
|
|
6
|
+
"summary": "Unbounded reason codes are not an interoperable control contract.",
|
|
7
|
+
"evidenceIdentityIds": [],
|
|
8
|
+
"locators": [],
|
|
9
|
+
"observedAt": "2026-08-18T15:30:00Z",
|
|
10
|
+
"sanitized": false
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"reasonId": "reason:provider-unavailable",
|
|
4
|
+
"code": "unavailable-provider",
|
|
5
|
+
"impact": "unavailable",
|
|
6
|
+
"summary": "The provider could not be observed from the current execution context.",
|
|
7
|
+
"evidenceIdentityIds": ["evidence:provider-probe"],
|
|
8
|
+
"locators": ["provider://github/authority"],
|
|
9
|
+
"observedAt": "2026-08-18T15:30:00Z",
|
|
10
|
+
"sanitized": true
|
|
11
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"requirementId": "authority-requirement:task-2.6-write",
|
|
4
|
+
"workspaceIdentityId": "workspace:echopath",
|
|
5
|
+
"operation": "workspace.write",
|
|
6
|
+
"target": {
|
|
7
|
+
"kind": "directory",
|
|
8
|
+
"locator": "plugins/forgerail/contracts",
|
|
9
|
+
"identity": "target:forgerail-contracts",
|
|
10
|
+
"ref": "feat/forgerail-product-architecture",
|
|
11
|
+
"environment": null
|
|
12
|
+
},
|
|
13
|
+
"subjectId": "subject:task-2.6",
|
|
14
|
+
"scope": ["plugins/forgerail/contracts/**"],
|
|
15
|
+
"eligibleIssuerSourceIds": [],
|
|
16
|
+
"acceptedIssuerEvidenceKinds": ["explicit-current-user-instruction"],
|
|
17
|
+
"freshness": {
|
|
18
|
+
"maxAgeSeconds": 86400,
|
|
19
|
+
"expiresRequired": true
|
|
20
|
+
},
|
|
21
|
+
"declaredAt": "2026-08-18T08:00:00Z"
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"requirementId": "authority-requirement:task-2.6-write",
|
|
4
|
+
"workspaceIdentityId": "workspace:echopath",
|
|
5
|
+
"operation": "workspace.write",
|
|
6
|
+
"target": {
|
|
7
|
+
"kind": "directory",
|
|
8
|
+
"locator": "plugins/forgerail/contracts",
|
|
9
|
+
"identity": "target:forgerail-contracts",
|
|
10
|
+
"ref": "feat/forgerail-product-architecture",
|
|
11
|
+
"environment": null
|
|
12
|
+
},
|
|
13
|
+
"subjectId": "subject:task-2.6",
|
|
14
|
+
"scope": ["plugins/forgerail/contracts/**"],
|
|
15
|
+
"eligibleIssuerSourceIds": ["source:user-approval"],
|
|
16
|
+
"acceptedIssuerEvidenceKinds": ["explicit-current-user-instruction"],
|
|
17
|
+
"freshness": {
|
|
18
|
+
"maxAgeSeconds": 86400,
|
|
19
|
+
"expiresRequired": true
|
|
20
|
+
},
|
|
21
|
+
"declaredAt": "2026-08-18T08:00:00Z"
|
|
22
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"grantId": "grant:task-2.6-write",
|
|
4
|
+
"grantDigest": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
5
|
+
"authorityRequirementId": "authority-requirement:task-2.6-write",
|
|
6
|
+
"workspaceIdentityId": "workspace:echopath",
|
|
7
|
+
"envelopeId": "envelope:task-2.6",
|
|
8
|
+
"envelopeRevisionId": "envelope-revision:task-2.6-1",
|
|
9
|
+
"executorId": "host:codex",
|
|
10
|
+
"operation": "workspace.write",
|
|
11
|
+
"target": {
|
|
12
|
+
"kind": "directory",
|
|
13
|
+
"locator": "plugins/forgerail",
|
|
14
|
+
"identity": "target:forgerail-private-source",
|
|
15
|
+
"ref": "feat/forgerail-product-architecture",
|
|
16
|
+
"environment": null
|
|
17
|
+
},
|
|
18
|
+
"subjectId": "subject:task-2.6",
|
|
19
|
+
"candidateId": null,
|
|
20
|
+
"scope": ["plugins/forgerail/**"],
|
|
21
|
+
"issuerId": "user:workspace-owner",
|
|
22
|
+
"issuerEvidenceId": "",
|
|
23
|
+
"issuedAt": "2026-08-18T08:00:00Z",
|
|
24
|
+
"notBefore": "2026-08-18T08:00:00Z",
|
|
25
|
+
"expiresAt": "2026-08-19T08:00:00Z",
|
|
26
|
+
"status": "current",
|
|
27
|
+
"invalidatedAt": null,
|
|
28
|
+
"invalidationEvidenceId": null,
|
|
29
|
+
"supersededByGrantId": null,
|
|
30
|
+
"retroactiveEffect": {
|
|
31
|
+
"applies": false,
|
|
32
|
+
"scope": []
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"grantId": "grant:task-2.6-write",
|
|
4
|
+
"grantDigest": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
5
|
+
"authorityRequirementId": "authority-requirement:task-2.6-write",
|
|
6
|
+
"workspaceIdentityId": "workspace:echopath",
|
|
7
|
+
"envelopeId": "envelope:task-2.6",
|
|
8
|
+
"envelopeRevisionId": "envelope-revision:task-2.6-1",
|
|
9
|
+
"executorId": "host:codex",
|
|
10
|
+
"operation": "workspace.write",
|
|
11
|
+
"target": {
|
|
12
|
+
"kind": "directory",
|
|
13
|
+
"locator": "plugins/forgerail",
|
|
14
|
+
"identity": "target:forgerail-private-source",
|
|
15
|
+
"ref": "feat/forgerail-product-architecture",
|
|
16
|
+
"environment": null
|
|
17
|
+
},
|
|
18
|
+
"subjectId": "subject:task-2.6",
|
|
19
|
+
"candidateId": null,
|
|
20
|
+
"scope": ["plugins/forgerail/**"],
|
|
21
|
+
"issuerId": "user:workspace-owner",
|
|
22
|
+
"issuerEvidenceId": "evidence:user-approval-task-2.6",
|
|
23
|
+
"issuedAt": "2026-08-18T08:00:00Z",
|
|
24
|
+
"notBefore": "2026-08-18T08:00:00Z",
|
|
25
|
+
"expiresAt": "2026-08-19T08:00:00Z",
|
|
26
|
+
"status": "current",
|
|
27
|
+
"invalidatedAt": null,
|
|
28
|
+
"invalidationEvidenceId": null,
|
|
29
|
+
"supersededByGrantId": null,
|
|
30
|
+
"retroactiveEffect": {
|
|
31
|
+
"applies": false,
|
|
32
|
+
"scope": []
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"correlationId": "correlation:task-2.6",
|
|
4
|
+
"taskId": "task:2.6",
|
|
5
|
+
"parentTaskId": "task:forgerail-control-system",
|
|
6
|
+
"phaseId": "phase:contracts",
|
|
7
|
+
"sliceId": "slice:task-2.6",
|
|
8
|
+
"executionAttemptId": "attempt:task-2.6-1",
|
|
9
|
+
"ownerWorkspaceIdentityId": "workspace:echopath",
|
|
10
|
+
"requiredSliceIds": ["slice:other"],
|
|
11
|
+
"aggregateClosureClaim": true
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"correlationId": "correlation:task-2.6",
|
|
4
|
+
"taskId": "task:2.6",
|
|
5
|
+
"parentTaskId": "task:forgerail-control-system",
|
|
6
|
+
"phaseId": "phase:contracts",
|
|
7
|
+
"sliceId": "slice:task-2.6",
|
|
8
|
+
"executionAttemptId": "attempt:task-2.6-1",
|
|
9
|
+
"ownerWorkspaceIdentityId": "workspace:echopath",
|
|
10
|
+
"requiredSliceIds": ["slice:task-2.6"],
|
|
11
|
+
"aggregateClosureClaim": false
|
|
12
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"candidateId": "candidate:fixture-validation-rule",
|
|
4
|
+
"workspace": "fixture-workspace",
|
|
5
|
+
"ruleId": "validation.docs-links",
|
|
6
|
+
"proposedValue": "run documentation link validation after navigation changes",
|
|
7
|
+
"evidence": ["three completed tasks required the same missing link check"],
|
|
8
|
+
"targetOwner": "fixture-workspace",
|
|
9
|
+
"targetSource": "AGENTS.md",
|
|
10
|
+
"reason": "The candidate cannot bypass the explicit confirmation boundary.",
|
|
11
|
+
"requiresConfirmation": false,
|
|
12
|
+
"status": "candidate"
|
|
13
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"explanationId": "explanation:demo-2",
|
|
4
|
+
"profileId": "profile:demo",
|
|
5
|
+
"profileRevisionId": "profile-revision:demo-2",
|
|
6
|
+
"workspaceIdentityId": "workspace:demo",
|
|
7
|
+
"generatedAt": "2026-08-18T00:00:00Z",
|
|
8
|
+
"completeness": "complete",
|
|
9
|
+
"sourceSummaries": [
|
|
10
|
+
{
|
|
11
|
+
"sourceId": "source:agents",
|
|
12
|
+
"status": "unavailable",
|
|
13
|
+
"claimIds": ["claim:review"],
|
|
14
|
+
"limitedReason": "Source cannot be read."
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"claimDecisions": [
|
|
18
|
+
{
|
|
19
|
+
"claimId": "claim:review",
|
|
20
|
+
"sourceId": "source:agents",
|
|
21
|
+
"disposition": "unresolved",
|
|
22
|
+
"reasonCode": "required-source-unavailable",
|
|
23
|
+
"dependencyEdgeIds": ["edge:skill"]
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"conflicts": [],
|
|
27
|
+
"confirmationNeeds": [
|
|
28
|
+
{
|
|
29
|
+
"needId": "confirmation:review",
|
|
30
|
+
"claimIds": ["claim:review"],
|
|
31
|
+
"reasonCode": "required-source-unavailable",
|
|
32
|
+
"prompt": "Confirm the governing review source."
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"limitedReasons": []
|
|
36
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"explanationId": "explanation:demo-1",
|
|
4
|
+
"profileId": "profile:demo",
|
|
5
|
+
"profileRevisionId": "profile-revision:demo-1",
|
|
6
|
+
"workspaceIdentityId": "workspace:demo",
|
|
7
|
+
"generatedAt": "2026-08-18T00:00:00Z",
|
|
8
|
+
"completeness": "complete",
|
|
9
|
+
"sourceSummaries": [
|
|
10
|
+
{
|
|
11
|
+
"sourceId": "source:agents",
|
|
12
|
+
"status": "observed",
|
|
13
|
+
"claimIds": ["claim:review"],
|
|
14
|
+
"limitedReason": null
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"claimDecisions": [
|
|
18
|
+
{
|
|
19
|
+
"claimId": "claim:review",
|
|
20
|
+
"sourceId": "source:agents",
|
|
21
|
+
"disposition": "active",
|
|
22
|
+
"reasonCode": "highest-applicable-precedence",
|
|
23
|
+
"dependencyEdgeIds": ["edge:skill"]
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"conflicts": [],
|
|
27
|
+
"confirmationNeeds": [],
|
|
28
|
+
"limitedReasons": []
|
|
29
|
+
}
|