From b93b251a31552bfaa6a5315f6e94c0dc15576aeb Mon Sep 17 00:00:00 2001 From: Tom Softreck Date: Sun, 30 Aug 2026 13:58:57 +0200 Subject: [PATCH 1/2] plan: define process revision contract [ticket-012] --- project/ticket-012/README.md | 25 ++++++++++++++++ project/ticket-012/ai-codex-logs.txt | 0 project/ticket-012/ai-codex.md | 28 ++++++++++++++++++ project/ticket-012/changelog.md | 6 ++++ project/ticket-012/intent.json | 44 ++++++++++++++++++++++++++++ project/ticket-012/preprompt.md | 15 ++++++++++ 6 files changed, 118 insertions(+) create mode 100644 project/ticket-012/README.md create mode 100644 project/ticket-012/ai-codex-logs.txt create mode 100644 project/ticket-012/ai-codex.md create mode 100644 project/ticket-012/changelog.md create mode 100644 project/ticket-012/intent.json create mode 100644 project/ticket-012/preprompt.md diff --git a/project/ticket-012/README.md b/project/ticket-012/README.md new file mode 100644 index 0000000..9ce8440 --- /dev/null +++ b/project/ticket-012/README.md @@ -0,0 +1,25 @@ +# Ticket 012: Add URI Process revision to sample v2 contract + +- **ID**: ticket-012 +- **Owner**: unresolved:human +- **Status**: IN_PROGRESS +- **Workflow state**: VALIDATION +- **Created**: 2026-08-30 + +## Goal and scope + +Allow an explicit optional `process_revision` in v2 samples so Observability +can compare the current implementation with its previous revision. Never infer +revision identity from payload-bearing argv hashes. + +## Acceptance criteria + +- [x] AC-01: Scope is approved by the user's request to continue the version + regression dashboard implementation. +- [x] AC-02: The closed v2 schema accepts a bounded revision and still accepts + existing v2 records without it. + +## Participants + +- Human participant: user:tom; no synthesized user file was created. +- Agent participant: [ai-codex.md](ai-codex.md) diff --git a/project/ticket-012/ai-codex-logs.txt b/project/ticket-012/ai-codex-logs.txt new file mode 100644 index 0000000..e69de29 diff --git a/project/ticket-012/ai-codex.md b/project/ticket-012/ai-codex.md new file mode 100644 index 0000000..8d0020f --- /dev/null +++ b/project/ticket-012/ai-codex.md @@ -0,0 +1,28 @@ +--- +participant-id: agent:codex +participant: codex +role: agent +ticket: ticket-012 +--- +# Participant: codex (AI agent) + +## Understanding + +To be completed after reading human-owned input and the ticket preprompt. + +## Execution plan + +1. Validate the ticket scope and acceptance evidence before implementation. + +## Actual changes + +- Initialized the bounded ticket and recorded SESSION_EXECUTION_AUTHORIZATION + from the request to execute this work. + +## Blockers + +- None inside the recorded intent; proceed without a second confirmation. +- New authority remains required for destructive action, secret access, new + external coordination or material objective expansion. Protected delivery + may be invoked without another prompt when publication is in scope; its + exact-head trusted approval remains independent evidence. diff --git a/project/ticket-012/changelog.md b/project/ticket-012/changelog.md new file mode 100644 index 0000000..aee9aec --- /dev/null +++ b/project/ticket-012/changelog.md @@ -0,0 +1,6 @@ +# Ticket Changelog (ticket-012) + +## [0.1.0] - 2026-08-30 + +- Initial governance scaffold created. +- No human participant identity or content was generated. diff --git a/project/ticket-012/intent.json b/project/ticket-012/intent.json new file mode 100644 index 0000000..b8344c1 --- /dev/null +++ b/project/ticket-012/intent.json @@ -0,0 +1,44 @@ +{ + "schema": "new-project.intent/v3", + "ticket": "ticket-012", + "summary": "Add URI Process revision to sample v2 contract", + "workstream": "integration", + "classification": { + "kind": "FEATURE", + "priority": "P1", + "origin": "requested" + }, + "placement": { + "home": "semcod", + "runtimeOwner": "semcod", + "shape": "runtime_service", + "adopt": ["wellmanifest/new-project", "wellmanifest/performance"] + }, + "allowedPaths": ["project/ticket-012/**", "TODO.md", "project/TICKETS.md", "models/process-resource-sample.v2.schema.json"], + "forbiddenPaths": ["project/ticket-*/user-*.md"], + "stacks": [], + "dependsOn": ["ticket-010"], + "conflictsWith": [], + "integrationTicket": null, + "delivery": { + "acceptedBaseSha": "574136d797a61fe5b73645c6de46282b052229ee", + "targetBranch": "main", + "outcome": "The v2 sample contract accepts an optional bounded process revision for honest version-over-version comparisons.", + "nonGoals": ["Infer a revision from mutable command arguments.", "Require revision on legacy v2 samples.", "Capture repository paths or credentials."], + "complexity": "S", + "estimatedMinutes": 15, + "budgets": {"maxImplementationFiles": 5, "maxAffectedComponents": 2, "maxPublicInterfaceChanges": 1, "maxRuntimeDependencies": 1}, + "architecture": { + "status": "accepted", + "decision": "Add one optional closed-schema process_revision field; producers must supply it explicitly.", + "components": [{"name": "sample-contract", "paths": ["models/process-resource-sample.v2.schema.json"]}], + "responsibilityChanges": false, + "interfaceChanges": ["Allow optional process_revision in sample v2."], + "dataChanges": ["Allow optional process_revision in v2 samples."], + "ui": {"impact": "none", "states": [], "evidence": []}, + "rollback": "Remove the optional property; samples without it remain unchanged." + }, + "runtimeDependencies": [], + "validation": [{"criterion": "AC-02", "commands": ["python -m json.tool models/process-resource-sample.v2.schema.json", "PYTHONPATH=src ./project/governance-check.sh"], "evidence": "Valid closed schema and governance"}] + } +} diff --git a/project/ticket-012/preprompt.md b/project/ticket-012/preprompt.md new file mode 100644 index 0000000..8c53f5b --- /dev/null +++ b/project/ticket-012/preprompt.md @@ -0,0 +1,15 @@ +# Ticket preprompt + +- **Task ID**: ticket-012 +- **Task title**: Add URI Process revision to sample v2 contract +- **Created**: 2026-08-30T10:59:58Z + +Keep executable implementation outside this governance/evidence directory. +Read a human-owned user-*.md file only when one exists. +The request to execute this work creates SESSION_EXECUTION_AUTHORIZATION; +proceed within the recorded intent without a redundant confirmation prompt. +Require new authority for destructive action, secrets, external coordination, +or material objective expansion. When publication is in scope, session +authorization permits the declared protected delivery process and its merge +after exact-head trusted approval without another prompt. Session prose is +never approval evidence and the agent must not merge directly. From c43e1eaac0a600c8a52d73a6639756353e00369c Mon Sep 17 00:00:00 2001 From: Tom Softreck Date: Sun, 30 Aug 2026 13:48:12 +0200 Subject: [PATCH 2/2] feat: allow process revision evidence [ticket-012] --- models/process-resource-sample.v2.schema.json | 1 + 1 file changed, 1 insertion(+) diff --git a/models/process-resource-sample.v2.schema.json b/models/process-resource-sample.v2.schema.json index b6dc5a7..caa78cd 100644 --- a/models/process-resource-sample.v2.schema.json +++ b/models/process-resource-sample.v2.schema.json @@ -18,6 +18,7 @@ "sample_id": {"type": "string", "pattern": "^sample:[a-f0-9]{32}$"}, "process_uri": {"type": "string", "minLength": 3, "maxLength": 512}, "process_key": {"type": "string", "minLength": 3, "maxLength": 320}, + "process_revision": {"type": ["string", "null"], "minLength": 1, "maxLength": 128, "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@/+\\-]{0,127}$"}, "ticket_id": {"type": ["string", "null"], "maxLength": 128}, "correlation_id": {"type": "string", "minLength": 1, "maxLength": 128}, "started_at": {"type": "string", "format": "date-time"},