Skip to content

feat(contracts): add portable project-work/v0 contract - #31

Merged
3leapsdave merged 3 commits into
mainfrom
project-work-v0
Aug 24, 2026
Merged

feat(contracts): add portable project-work/v0 contract#31
3leapsdave merged 3 commits into
mainfrom
project-work-v0

Conversation

@3leapsdave

@3leapsdave 3leapsdave commented Aug 24, 2026

Copy link
Copy Markdown
Member

Adds the portable project-work/v0 contract family: ready packets, an inspectable project-state projection, control records, and an append-only NDJSON progress ledger.

  • New docs/standards/project-work-contract.md (draft) and proposed ADR.
  • Four schemas under schemas/project-work/v0/ with a contract manifest, worked examples, and structural rejects.
  • Structural controls wired into make check; milestone target dates are asserted real ISO-8601 dates; decision records own a non-empty, unique affects list that status and blocker records forbid.

Verification: make precommit and the project-work control battery are green.

Generated by Grok 4.6 via Grok Build under supervision of @3leapsdave

Co-Authored-By: Grok 4.6 noreply@3leaps.net
Role: devlead
Committer-of-Record: @3leapsdave

3leapsdave and others added 3 commits August 21, 2026 13:25
Add the portable project-work/v0 contract for ready packets, project
state, control records, and an append-only progress ledger.

Changes:
- Add docs/standards/project-work-contract.md (normative standard, draft)
- Add schemas/project-work/v0/ (four schemas, contract.json, README,
  examples, and structural rejects)
- Add docs/decisions/ADR-0008-project-work-contract.md as proposed
- Wire project-work controls and the contract manifest into make check
- Index the standard and ADR; note the family under Unreleased

Generated by Grok 4.6 via Grok Build under supervision of @3leapsdave

Co-Authored-By: Grok 4.6 <noreply@3leaps.net>
Role: devlead
Committer-of-Record: @3leapsdave
Reserve contract-governed transition keys by event kind and close
kind-specific control-record fields.

Changes:
- created forbids from/to; transition events forbid lifecycle_class
- status/blocker/decision close fields owned by other kinds
- Add focused reject fixtures and reject-index rows

Generated by Grok 4.6 via Grok Build under supervision of @3leapsdave

Co-Authored-By: Grok 4.6 <noreply@3leaps.net>
Role: devlead
Committer-of-Record: @3leapsdave
Tighten already-declared project-work/v0 semantics: milestone target
dates are asserted real ISO-8601 dates, and decisions own a non-empty
unique affects list that status and blocker records forbid.

Changes:
- Assert format: date on project-state.milestones[].target
- Require non-empty unique affects on decision records; forbid it on
  status and blocker records
- Document milestone date and decision affects in the standard and schema
- Add focused rejects (impossible date; missing/empty/duplicate affects;
  status and blocker cross-kind) and index them
- Add a valid decision example and wire project-state rejects into the
  control script

Generated by Grok 4.6 via Grok Build under supervision of @3leapsdave

Co-Authored-By: Grok 4.6 <noreply@3leaps.net>
Role: devlead
Committer-of-Record: @3leapsdave
@3leapsdave
3leapsdave merged commit 0fb4f3a into main Aug 24, 2026
1 check passed
@3leapsdave
3leapsdave deleted the project-work-v0 branch August 24, 2026 19:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant