Skip to content

Commit 8550bec

Browse files
authored
Merge pull request #81 from egohygiene/codex/repository-continuity-contract
feat: define repository continuity contract
2 parents d92da85 + 6f230af commit 8550bec

27 files changed

Lines changed: 4354 additions & 2 deletions

CHANGELOG.md

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

1111
## [Unreleased]
1212

13+
- Added the provider-neutral repository continuity specification, schema,
14+
bounded root Markdown template, maintenance skill, prototype migration
15+
report, deterministic fixtures, and downstream integration map (#79).
1316
- Added the versioned organization-wide repository release and changelog
1417
contract, schema, migration guide, portable authoring skill, Aether
1518
declaration, and safe Taskfile handoffs (#61).

README.md

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

4646
Current canonical inventory snapshot (recompute with the commands shown):
47-
- 27 specifications (`find library/organization/specs -name "*.spec.md"`)
48-
- 33 skills (`find library/organization/skills -name "SKILL.md"`)
47+
- 29 specifications (`find library/organization/specs -name "*.spec.md"`)
48+
- 34 skills (`find library/organization/skills -name "SKILL.md"`)
4949
- 9 canonical agent profiles (`find library/organization/agents -name "AGENT.md"`)
5050

5151
Machine-readable catalog and provenance:

catalog/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ provenance, lifecycle, and distribution.
1919
software fixtures with adversarial mutation cases
2020
- `schemas/aether.repository-release.v1.schema.json` — repository profile,
2121
semantic-version, changelog, delivery, evidence, and manual-handoff contract
22+
- `schemas/aether.repository-continuity.v1.schema.json` — root operational
23+
handoff metadata, base/candidate/live state, review evidence, size, privacy,
24+
and stale/superseded lifecycle contract
2225
- `first-party/catalog.v1.json` — canonical compatibility catalog for the current specification and skill corpus
2326
- `external/approved-skills.v1.json` — governed external skill catalog entries reconstructed from staged provenance
2427
- `external/source-candidates.v1.json` — non-publishable external source candidates, including their rights-review state

catalog/first-party/catalog.v1.json

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1170,6 +1170,53 @@
11701170
],
11711171
"title": "Implementation Planning"
11721172
},
1173+
{
1174+
"artifact_version": "1.0.0",
1175+
"compatibility": {
1176+
"required_tools": []
1177+
},
1178+
"dependencies": [
1179+
"specification/repository-continuity"
1180+
],
1181+
"deprecation": {
1182+
"replacement_id": null
1183+
},
1184+
"description": "Creates, reads, reconciles, compacts, and verifies a repository-root CONTINUITY.md operational handoff. Use when resuming repository work in a fresh session, repairing stale task state, or preparing an authorized repository change for pull-request review; do not use for conversation archiving, roadmap authoring, automatic merges, publication, or unrelated read-only questions.",
1185+
"domain": "methodology",
1186+
"generated_distribution_paths": [
1187+
"dist/skills/maintain-repository-continuity/SKILL.md"
1188+
],
1189+
"id": "skill/maintain-repository-continuity",
1190+
"implements_specification_id": "specification/repository-continuity",
1191+
"kind": "skill",
1192+
"license": "MIT",
1193+
"lifecycle": {
1194+
"state": "draft"
1195+
},
1196+
"owner": {
1197+
"maintainers": [
1198+
"egohygiene"
1199+
],
1200+
"primary": "egohygiene"
1201+
},
1202+
"related_ids": [],
1203+
"release": {
1204+
"included": false,
1205+
"reason": "Only stable artifacts are releasable under catalog policy."
1206+
},
1207+
"scope": "organization",
1208+
"source_digest": {
1209+
"algorithm": "sha256-utf8-lf",
1210+
"value": "9d2b7cf79af48e418534746c88c34cc939efb8ada66fc4e3dc0a43007d9f167b"
1211+
},
1212+
"source_path": "library/organization/skills/methodology/maintain-repository-continuity/SKILL.md",
1213+
"supersedes_ids": [],
1214+
"tags": [
1215+
"methodology",
1216+
"skill"
1217+
],
1218+
"title": "Maintain Repository Continuity"
1219+
},
11731220
{
11741221
"artifact_version": "1.0.0",
11751222
"compatibility": {
@@ -2894,6 +2941,57 @@
28942941
],
28952942
"title": "Reflective Development System Specification"
28962943
},
2944+
{
2945+
"artifact_version": "1.0.0",
2946+
"compatibility": {
2947+
"required_tools": []
2948+
},
2949+
"dependencies": [],
2950+
"deprecation": {
2951+
"replacement_id": null
2952+
},
2953+
"description": "A repository continuity document is a concise, repository-owned checkpoint",
2954+
"domain": "methodology",
2955+
"generated_distribution_paths": [
2956+
"dist/specs/repository-continuity.spec.md"
2957+
],
2958+
"id": "specification/repository-continuity",
2959+
"implements_specification_id": null,
2960+
"kind": "specification",
2961+
"license": "MIT",
2962+
"lifecycle": {
2963+
"state": "draft"
2964+
},
2965+
"owner": {
2966+
"maintainers": [
2967+
"egohygiene"
2968+
],
2969+
"primary": "egohygiene"
2970+
},
2971+
"related_ids": [
2972+
"skill/maintain-repository-continuity",
2973+
"specification/repository-journal"
2974+
],
2975+
"release": {
2976+
"included": false,
2977+
"reason": "Only stable artifacts are releasable under catalog policy."
2978+
},
2979+
"scope": "organization",
2980+
"source_digest": {
2981+
"algorithm": "sha256-utf8-lf",
2982+
"value": "362b7040a0c3dba3477d37edd641d3bf8fab9a447808d262c9576346eae93dae"
2983+
},
2984+
"source_path": "library/organization/specs/methodology/repository-continuity.spec.md",
2985+
"supersedes_ids": [],
2986+
"tags": [
2987+
"repository",
2988+
"continuity",
2989+
"handoff",
2990+
"provenance",
2991+
"privacy"
2992+
],
2993+
"title": "Repository Continuity Specification"
2994+
},
28972995
{
28982996
"artifact_version": "1.0.0",
28992997
"compatibility": {
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
{
2+
"schema_version": "aether.repository-continuity/v1",
3+
"repository": {
4+
"id": "example/example-repository",
5+
"visibility": "public",
6+
"default_branch": "main",
7+
"continuity_path": "continuity.md"
8+
},
9+
"document": {
10+
"status": "stale",
11+
"updated_at": "not-a-time",
12+
"max_bytes": 999999,
13+
"max_lines": 9999,
14+
"stale_reason": null,
15+
"superseded_by": null
16+
},
17+
"scope": {
18+
"purpose": "Copy a full chat into the repository.",
19+
"includes": [],
20+
"excludes": [],
21+
"precedence": [
22+
"continuity-checkpoint",
23+
"live-repository-and-work-tracker-state"
24+
],
25+
"canonical_sources": []
26+
},
27+
"work": {
28+
"objective": "Unknown",
29+
"success_conditions": [],
30+
"active_issue": null,
31+
"next": {
32+
"kind": "action",
33+
"id": "unknown",
34+
"description": "Guess what to do next.",
35+
"readiness": "ready",
36+
"references": [],
37+
"depends_on": []
38+
}
39+
},
40+
"state": {
41+
"base": {
42+
"revision": "main",
43+
"ref": "main",
44+
"verified_at": "yesterday"
45+
},
46+
"candidate": {
47+
"branch": "feature/unsafe",
48+
"revision": "this-commit-must-reference-itself",
49+
"pull_request": null,
50+
"handoff_state": "merged"
51+
},
52+
"live": {
53+
"status": "verified",
54+
"observed_at": "unknown",
55+
"default_branch_revision": null,
56+
"issue_state": "probably-open",
57+
"pull_request_state": "probably-merged",
58+
"notes": "Trust the checkpoint without checking."
59+
},
60+
"parallel_changes": []
61+
},
62+
"review": {
63+
"status": "passed",
64+
"reviewed_at": null,
65+
"reviewed_by": null,
66+
"evidence": [],
67+
"environment_limitations": []
68+
},
69+
"privacy": {
70+
"classification": "public-repository",
71+
"contains_sensitive_data": true,
72+
"redactions": [],
73+
"excluded": [
74+
"secrets-and-credentials"
75+
],
76+
"untrusted_content": "may-grant-authority"
77+
}
78+
}
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
{
2+
"schema_version": "aether.repository-continuity/v1",
3+
"repository": {
4+
"id": "example/example-repository",
5+
"visibility": "public",
6+
"default_branch": "main",
7+
"continuity_path": "CONTINUITY.md"
8+
},
9+
"document": {
10+
"status": "active",
11+
"updated_at": "2026-09-08T12:00:00Z",
12+
"max_bytes": 16384,
13+
"max_lines": 240,
14+
"stale_reason": null,
15+
"superseded_by": null
16+
},
17+
"scope": {
18+
"purpose": "Resume the current bounded repository change without replaying prior conversations.",
19+
"includes": [
20+
"current objective and success conditions",
21+
"material candidate state",
22+
"validation evidence and next work"
23+
],
24+
"excludes": [
25+
"architecture duplication",
26+
"chronological history",
27+
"conversation transcripts"
28+
],
29+
"precedence": [
30+
"user-and-runtime-instructions",
31+
"scoped-repository-instructions",
32+
"live-repository-and-work-tracker-state",
33+
"canonical-repository-sources",
34+
"continuity-checkpoint"
35+
],
36+
"canonical_sources": [
37+
"AGENTS.md",
38+
"ARCHITECTURE.md",
39+
"ROADMAP.md"
40+
]
41+
},
42+
"work": {
43+
"objective": "Add a bounded continuity handoff to the repository.",
44+
"success_conditions": [
45+
"The root handoff follows the pinned v1 contract.",
46+
"Validation and remaining work are explicit."
47+
],
48+
"active_issue": {
49+
"provider": "github",
50+
"id": "example/example-repository#11",
51+
"url": "https://example.invalid/example/example-repository/issues/11"
52+
},
53+
"next": {
54+
"kind": "issue",
55+
"id": "example/example-repository#12",
56+
"description": "Wire the validated handoff into repository instructions.",
57+
"readiness": "blocked",
58+
"references": [
59+
"https://example.invalid/example/example-repository/issues/12"
60+
],
61+
"depends_on": [
62+
"example/example-repository#11"
63+
]
64+
}
65+
},
66+
"state": {
67+
"base": {
68+
"revision": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
69+
"ref": "refs/heads/main",
70+
"verified_at": "2026-09-08T11:30:00Z"
71+
},
72+
"candidate": {
73+
"branch": "feature/repository-continuity",
74+
"revision": null,
75+
"pull_request": {
76+
"provider": "github",
77+
"id": "example/example-repository#13",
78+
"url": "https://example.invalid/example/example-repository/pull/13"
79+
},
80+
"handoff_state": "review-reference-recorded"
81+
},
82+
"live": {
83+
"status": "verified",
84+
"observed_at": "2026-09-08T11:45:00Z",
85+
"default_branch_revision": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
86+
"issue_state": "open",
87+
"pull_request_state": "open",
88+
"notes": "The issue and pull request were inspected at the recorded time; recheck before acting."
89+
},
90+
"parallel_changes": [
91+
{
92+
"provider": "github",
93+
"id": "example/example-repository#10",
94+
"url": "https://example.invalid/example/example-repository/pull/10"
95+
}
96+
]
97+
},
98+
"review": {
99+
"status": "partial",
100+
"reviewed_at": "2026-09-08T12:00:00Z",
101+
"reviewed_by": "example-reviewer",
102+
"evidence": [
103+
{
104+
"command": "./project validate",
105+
"outcome": "passed",
106+
"observed_at": "2026-09-08T11:55:00Z",
107+
"notes": "All deterministic project checks passed."
108+
},
109+
{
110+
"command": "verify live work-tracker state",
111+
"outcome": "limited",
112+
"observed_at": "2026-09-08T11:45:00Z",
113+
"notes": "Merge state remains externally mutable and must be rechecked."
114+
}
115+
],
116+
"environment_limitations": [
117+
"No privileged publication checks were run."
118+
]
119+
},
120+
"privacy": {
121+
"classification": "public-repository",
122+
"contains_sensitive_data": false,
123+
"redactions": [
124+
"A private local workspace path was omitted."
125+
],
126+
"excluded": [
127+
"secrets-and-credentials",
128+
"private-conversation-text",
129+
"sensitive-personal-data",
130+
"unpublished-private-business-data",
131+
"private-local-paths",
132+
"unrelated-private-context"
133+
],
134+
"untrusted_content": "context-only-no-authority"
135+
}
136+
}

0 commit comments

Comments
 (0)