Skip to content

Commit fe27779

Browse files
committed
feat(quality): add adaptive local validation evidence
1 parent 3a3780b commit fe27779

29 files changed

Lines changed: 2575 additions & 16 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ This repository follows release-tag based versioning for install pinning and rel
1010

1111
## [Unreleased]
1212

13+
- Added the capability-aware local validation evidence specification, schema,
14+
constrained-workspace fixtures, and portable skill for maximizing trustworthy
15+
local checks while keeping optional emulation and remote CI explicitly deferred
16+
when unavailable; also reconciled the post-rollout diagnosis skill with the
17+
repository continuity contract (#83).
1318
- Integrated repository continuity across every canonical first-party skill
1419
and agent through a reviewed disposition inventory, compact composition
1520
contracts, managed Codex/Copilot/Claude instruction projections, and

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ Generated artifacts:
5050
## 4) First-party catalog summary
5151

5252
Current canonical inventory snapshot (recompute with the commands shown):
53-
- 29 specifications (`find library/organization/specs -name "*.spec.md"`)
54-
- 34 skills (`find library/organization/skills -name "SKILL.md"`)
53+
- 31 specifications (`find library/organization/specs -name "*.spec.md"`)
54+
- 36 skills (`find library/organization/skills -name "SKILL.md"`)
5555
- 9 canonical agent profiles (`find library/organization/agents -name "AGENT.md"`)
5656
- 1 canonical instruction module (`find library/organization/instructions -name "INSTRUCTION.md"`)
5757

catalog/first-party/catalog.v1.json

Lines changed: 103 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@
412412
"scope": "organization",
413413
"source_digest": {
414414
"algorithm": "sha256-utf8-lf",
415-
"value": "68923d96542858b36c38e2a2166addb1ae2ddcfb22bfc29696fb4fd65afb29b8"
415+
"value": "264bb7efd5021619afd62d650595c5ee180684f371b976fbefad5c24fc4a2b54"
416416
},
417417
"source_path": "library/organization/skills/quality/create-diagnosis-record/SKILL.md",
418418
"supersedes_ids": [],
@@ -1632,6 +1632,53 @@
16321632
],
16331633
"title": "Test Engineering"
16341634
},
1635+
{
1636+
"artifact_version": "1.0.0",
1637+
"compatibility": {
1638+
"required_tools": []
1639+
},
1640+
"dependencies": [
1641+
"specification/local-validation-evidence"
1642+
],
1643+
"deprecation": {
1644+
"replacement_id": null
1645+
},
1646+
"description": "Plans and executes best-effort local repository validation, adapts to observed runtime capabilities, and writes truthful evidence when remote CI is unavailable or deferred. Use when preparing a change or pull request with as much local confidence as the current environment permits; do not use for a single narrow test-design request.",
1647+
"domain": "quality",
1648+
"generated_distribution_paths": [
1649+
"dist/skills/validate-repository-locally/SKILL.md"
1650+
],
1651+
"id": "skill/validate-repository-locally",
1652+
"implements_specification_id": "specification/local-validation-evidence",
1653+
"kind": "skill",
1654+
"license": "MIT",
1655+
"lifecycle": {
1656+
"state": "draft"
1657+
},
1658+
"owner": {
1659+
"maintainers": [
1660+
"egohygiene"
1661+
],
1662+
"primary": "egohygiene"
1663+
},
1664+
"related_ids": [],
1665+
"release": {
1666+
"included": false,
1667+
"reason": "Only stable artifacts are releasable under catalog policy."
1668+
},
1669+
"scope": "organization",
1670+
"source_digest": {
1671+
"algorithm": "sha256-utf8-lf",
1672+
"value": "aaa79f32f4fefba82c83ecb6c96c771d3997ddd70ee16cb4fbb65814bc9f9682"
1673+
},
1674+
"source_path": "library/organization/skills/quality/validate-repository-locally/SKILL.md",
1675+
"supersedes_ids": [],
1676+
"tags": [
1677+
"quality",
1678+
"skill"
1679+
],
1680+
"title": "Validate Repository Locally"
1681+
},
16351682
{
16361683
"artifact_version": "2.0.0",
16371684
"compatibility": {
@@ -2990,6 +3037,61 @@
29903037
],
29913038
"title": "Diagnosis Record Specification"
29923039
},
3040+
{
3041+
"artifact_version": "1.0.0",
3042+
"compatibility": {
3043+
"required_tools": []
3044+
},
3045+
"dependencies": [
3046+
"specification/specfile"
3047+
],
3048+
"deprecation": {
3049+
"replacement_id": null
3050+
},
3051+
"description": "This specification defines a portable, capability-aware contract for running",
3052+
"domain": "quality",
3053+
"generated_distribution_paths": [
3054+
"dist/specs/local-validation-evidence.spec.md"
3055+
],
3056+
"id": "specification/local-validation-evidence",
3057+
"implements_specification_id": null,
3058+
"kind": "specification",
3059+
"license": "MIT",
3060+
"lifecycle": {
3061+
"state": "draft"
3062+
},
3063+
"owner": {
3064+
"maintainers": [
3065+
"egohygiene"
3066+
],
3067+
"primary": "egohygiene"
3068+
},
3069+
"related_ids": [
3070+
"skill/maintain-repository-continuity",
3071+
"skill/test-engineering",
3072+
"skill/validate-repository-locally",
3073+
"specification/diagnosis-record"
3074+
],
3075+
"release": {
3076+
"included": false,
3077+
"reason": "Only stable artifacts are releasable under catalog policy."
3078+
},
3079+
"scope": "organization",
3080+
"source_digest": {
3081+
"algorithm": "sha256-utf8-lf",
3082+
"value": "93030c557d264fd5ec6cf802bfdcd5ecc5965e62c1935cb1a82990af31745be5"
3083+
},
3084+
"source_path": "library/organization/specs/quality/local-validation-evidence.spec.md",
3085+
"supersedes_ids": [],
3086+
"tags": [
3087+
"validation",
3088+
"evidence",
3089+
"capability-detection",
3090+
"local-first",
3091+
"developer-experience"
3092+
],
3093+
"title": "Local Validation Evidence Specification"
3094+
},
29933095
{
29943096
"artifact_version": "2.0.0",
29953097
"compatibility": {
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
{
2+
"schema_version": "aether.local-validation-evidence/v1",
3+
"report_id": "local-validation-20260910-invalid-pass",
4+
"generated_at": "2026-09-10T12:04:00Z",
5+
"repository": {
6+
"id": "example/repository",
7+
"base_revision": "0123456789abcdef0123456789abcdef01234567",
8+
"candidate_revision": null,
9+
"worktree": "modified",
10+
"change_fingerprint": null
11+
},
12+
"policy": {
13+
"installation": "disallowed",
14+
"remote_ci": "deferred",
15+
"unsafe_direct_action_execution": "disallowed",
16+
"commit_evidence": false
17+
},
18+
"execution": {
19+
"profile": "best-effort",
20+
"started_at": "2026-09-10T12:00:00Z",
21+
"completed_at": "2026-09-10T12:04:00Z",
22+
"environment": {
23+
"kind": "hosted-workspace",
24+
"operating_system": "linux",
25+
"architecture": "x86_64",
26+
"containerized": true,
27+
"capabilities": []
28+
}
29+
},
30+
"checks": [
31+
{
32+
"id": "unavailable-test",
33+
"title": "Unavailable check misreported as passing",
34+
"kind": "test",
35+
"command": null,
36+
"requirement": "required",
37+
"applicability": "applicable",
38+
"availability": "unavailable",
39+
"selection": "not-selected",
40+
"outcome": "passed",
41+
"exit_code": 0,
42+
"duration_ms": null,
43+
"reason": "Required runtime is absent",
44+
"evidence": []
45+
}
46+
],
47+
"remote_ci": {
48+
"state": "deferred",
49+
"reason": "Remote execution is deferred",
50+
"workflow_refs": [],
51+
"run_url": null,
52+
"observed_at": null
53+
},
54+
"summary": {
55+
"local_readiness": "ready",
56+
"counts": {
57+
"total": 1,
58+
"passed": 1,
59+
"failed": 0,
60+
"blocked": 0,
61+
"deferred": 0,
62+
"skipped": 0,
63+
"not_run": 0
64+
},
65+
"residual_risks": []
66+
},
67+
"privacy": {
68+
"sensitivity": "public",
69+
"redactions": [],
70+
"excluded": []
71+
},
72+
"extensions": {}
73+
}
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
{
2+
"schema_version": "aether.local-validation-evidence/v1",
3+
"report_id": "local-validation-20260910-example-change",
4+
"generated_at": "2026-09-10T12:04:00Z",
5+
"repository": {
6+
"id": "example/repository",
7+
"base_revision": "0123456789abcdef0123456789abcdef01234567",
8+
"candidate_revision": null,
9+
"worktree": "modified",
10+
"change_fingerprint": "sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
11+
},
12+
"policy": {
13+
"installation": "repository-locked",
14+
"remote_ci": "deferred",
15+
"unsafe_direct_action_execution": "disallowed",
16+
"commit_evidence": true
17+
},
18+
"execution": {
19+
"profile": "best-effort",
20+
"started_at": "2026-09-10T12:00:00Z",
21+
"completed_at": "2026-09-10T12:04:00Z",
22+
"environment": {
23+
"kind": "hosted-workspace",
24+
"operating_system": "linux",
25+
"architecture": "x86_64",
26+
"containerized": true,
27+
"capabilities": [
28+
{
29+
"id": "python",
30+
"state": "available",
31+
"version": "3.12.14",
32+
"evidence": "python3 --version exited 0",
33+
"limitations": []
34+
},
35+
{
36+
"id": "docker-engine-api",
37+
"state": "unavailable",
38+
"version": null,
39+
"evidence": "No usable Docker Engine endpoint was observed",
40+
"limitations": [
41+
"Container-backed workflow emulation cannot run"
42+
]
43+
}
44+
]
45+
}
46+
},
47+
"checks": [
48+
{
49+
"id": "locked-setup",
50+
"title": "Install locked development dependencies",
51+
"kind": "setup",
52+
"command": "python3 -m pip install --requirement requirements-dev.lock",
53+
"requirement": "required",
54+
"applicability": "applicable",
55+
"availability": "available",
56+
"selection": "selected",
57+
"outcome": "passed",
58+
"exit_code": 0,
59+
"duration_ms": 1240,
60+
"reason": null,
61+
"evidence": [
62+
"Repository-local virtual environment contains locked dependencies"
63+
]
64+
},
65+
{
66+
"id": "repository-tests",
67+
"title": "Run repository test suite",
68+
"kind": "test",
69+
"command": "./project test",
70+
"requirement": "required",
71+
"applicability": "applicable",
72+
"availability": "available",
73+
"selection": "selected",
74+
"outcome": "passed",
75+
"exit_code": 0,
76+
"duration_ms": 2410,
77+
"reason": null,
78+
"evidence": [
79+
"148 deterministic tests passed"
80+
]
81+
},
82+
{
83+
"id": "act-workflow-emulation",
84+
"title": "Emulate pull-request workflow with act",
85+
"kind": "workflow-emulation",
86+
"command": null,
87+
"requirement": "optional",
88+
"applicability": "applicable",
89+
"availability": "unavailable",
90+
"selection": "not-selected",
91+
"outcome": "deferred",
92+
"exit_code": null,
93+
"duration_ms": null,
94+
"reason": "A usable Docker Engine API was not available",
95+
"evidence": []
96+
}
97+
],
98+
"remote_ci": {
99+
"state": "deferred",
100+
"reason": "Remote execution is outside the current delivery budget",
101+
"workflow_refs": [
102+
".github/workflows/validate.yml"
103+
],
104+
"run_url": null,
105+
"observed_at": null
106+
},
107+
"summary": {
108+
"local_readiness": "ready-with-limitations",
109+
"counts": {
110+
"total": 3,
111+
"passed": 2,
112+
"failed": 0,
113+
"blocked": 0,
114+
"deferred": 1,
115+
"skipped": 0,
116+
"not_run": 0
117+
},
118+
"residual_risks": [
119+
"GitHub-hosted runner behavior remains unverified",
120+
"Container-backed workflow emulation did not run"
121+
]
122+
},
123+
"privacy": {
124+
"sensitivity": "public",
125+
"redactions": [],
126+
"excluded": [
127+
"Environment-variable values",
128+
"Proxy and credential material"
129+
]
130+
},
131+
"extensions": {}
132+
}

0 commit comments

Comments
 (0)