diff --git a/README.md b/README.md index c1d2156..fe76be2 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@
-
+
@@ -23,11 +23,11 @@
## AI Cost Tracking
-   
-  
+   
+  
-- 🤖 **LLM usage:** $1.1471 (408 commits)
-- 👤 **Human dev:** ~$14309 (143.1h @ $100/h, 30min dedup)
+- 🤖 **LLM usage:** $1.0015 (422 commits)
+- 👤 **Human dev:** ~$14481 (144.8h @ $100/h, 30min dedup)
Generated on 2026-08-10 using [openrouter/x-ai/grok-code-fast-1](https://openrouter.ai/x-ai/grok-code-fast-1)
diff --git a/TODO.md b/TODO.md
index d827a5c..99a713a 100644
--- a/TODO.md
+++ b/TODO.md
@@ -64,6 +64,9 @@
- [x] Deliver [ticket-021](project/ticket-021/README.md): detect only writable
Python `__version__` declarations and support conventional version modules.
State: `DONE / PUBLICATION`; classification: `BUG / application`.
+- [ ] Deliver [ticket-023](project/ticket-023/README.md): publish the merged
+ Python carrier fix as Goal 2.1.292 and verify a clean public install.
+ State: `IN_PROGRESS / EDIT`; classification: `SERVICE / integration`.
- [ ] After governance bootstrap, execute the sequential phases defined in
[the refactoring plan](docs/GOAL_KORU_SUBACTOR_REFACTORING_PLAN.md), with one
narrowly scoped ticket active at a time.
@@ -74,7 +77,8 @@
> `ticket-010 DONE`; `ticket-011 DONE`; `ticket-012 DONE`;
> `ticket-013 DONE`; `ticket-014 CANCELLED`; `ticket-015 DONE`;
> `ticket-016 DONE`; `ticket-017 DONE`; `ticket-018 DONE`;
-> `ticket-019 DONE`; `ticket-020 DONE`; `ticket-021 DONE`.
+> `ticket-019 DONE`; `ticket-020 DONE`; `ticket-021 DONE`;
+> `ticket-023 IN_PROGRESS`.
> **Recently shipped (manual note):** `goal all [PATHS...]` monorepo sweep —
> runs `goal -a` in every git repo with uncommitted changes under the given
diff --git a/VERSION b/VERSION
index b6d69f4..3c05fb2 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.1.291
+2.1.292
diff --git a/goal/__init__.py b/goal/__init__.py
index 96a0067..76ba8b7 100644
--- a/goal/__init__.py
+++ b/goal/__init__.py
@@ -1,3 +1,3 @@
"""Goal - Automated git push with smart commit messages, changelog updates, and version tagging."""
-__version__ = "2.1.291"
+__version__ = "2.1.292"
diff --git a/project/TICKETS.md b/project/TICKETS.md
index dcc945b..bd25678 100644
--- a/project/TICKETS.md
+++ b/project/TICKETS.md
@@ -27,4 +27,5 @@ This file indexes governance tickets without taking ownership of
| **ticket-019** | [`README.md`](./ticket-019/README.md) | [`preprompt.md`](./ticket-019/preprompt.md) | - | [`ai-codex.md`](./ticket-019/ai-codex.md) | [`ai-codex-logs.txt`](./ticket-019/ai-codex-logs.txt) | [`changelog.md`](./ticket-019/changelog.md) |
| **ticket-020** | [`README.md`](./ticket-020/README.md) | [`preprompt.md`](./ticket-020/preprompt.md) | - | [`ai-codex.md`](./ticket-020/ai-codex.md) | [`ai-codex-logs.txt`](./ticket-020/ai-codex-logs.txt) | [`changelog.md`](./ticket-020/changelog.md) |
| **ticket-021** | [`README.md`](./ticket-021/README.md) | [`preprompt.md`](./ticket-021/preprompt.md) | - | [`ai-codex.md`](./ticket-021/ai-codex.md) | [`ai-codex-logs.txt`](./ticket-021/ai-codex-logs.txt) | [`changelog.md`](./ticket-021/changelog.md) |
+| **ticket-023** | [`README.md`](./ticket-023/README.md) | [`preprompt.md`](./ticket-023/preprompt.md) | - | [`ai-codex.md`](./ticket-023/ai-codex.md) | [`ai-codex-logs.txt`](./ticket-023/ai-codex-logs.txt) | [`changelog.md`](./ticket-023/changelog.md) |
diff --git a/project/ticket-023/README.md b/project/ticket-023/README.md
new file mode 100644
index 0000000..0c608bf
--- /dev/null
+++ b/project/ticket-023/README.md
@@ -0,0 +1,43 @@
+# Ticket 023: Publish Goal 2.1.292 Python carrier fix
+
+- **ID**: ticket-023
+- **Owner**: unresolved:human
+- **Status**: IN_PROGRESS
+- **Workflow state**: EDIT
+- **Created**: 2026-08-10
+
+## Goal and scope
+
+Publish the merged ticket-021 Python version-carrier fix as Goal 2.1.292.
+Synchronize the five atomic release carriers, pass the full test and protected
+PR chain, publish wheel and sdist only from merged `main`, then verify a fresh
+public-index installation.
+
+## Acceptance criteria
+
+- [x] AC-01: The user explicitly requested autonomous testing, publication and
+ dependent-project updates.
+- [ ] AC-02: Goal selects `normal-bump -> 2.1.292` once and all release carriers
+ are synchronized.
+- [ ] AC-03: Full tests, build, governance, target CI and exact-head validator
+ pass before merge.
+- [ ] AC-04: Clean merged `main` publishes exactly one wheel and one sdist for
+ 2.1.292 through `goal -a --delivery-mode publish-only`.
+- [ ] AC-05: A fresh public-index environment reports Goal 2.1.292.
+
+## Session authorization
+
+The user authorized autonomous publication. No repeated confirmation is
+required for this exact release; protected exact-head approval and registry
+credential boundaries remain enforced.
+
+## Boundary
+
+This slice owns only `VERSION`, `pyproject.toml`, `uv.lock`,
+`goal/__init__.py`, README release badges and ticket metadata. Source,
+dependency constraints, top-level changelog, governance and CI are excluded.
+
+## Participants
+
+- Human participant: unresolved; no user-* file was created by this script.
+- Agent participant: [ai-codex.md](ai-codex.md)
diff --git a/project/ticket-023/ai-codex-logs.txt b/project/ticket-023/ai-codex-logs.txt
new file mode 100644
index 0000000..e69de29
diff --git a/project/ticket-023/ai-codex.md b/project/ticket-023/ai-codex.md
new file mode 100644
index 0000000..e9e95a5
--- /dev/null
+++ b/project/ticket-023/ai-codex.md
@@ -0,0 +1,29 @@
+---
+participant-id: agent:codex
+participant: codex
+role: agent
+ticket: ticket-023
+---
+# Participant: codex (AI agent)
+
+## Understanding
+
+Ticket-021 is merged and Goal correctly identifies writable Python version
+carriers. This ticket owns only the atomic 2.1.292 release and public evidence.
+
+## Execution plan
+
+1. Publish the bounded release plan.
+2. Synchronize five release carriers to 2.1.292.
+3. Run full tests/build/governance and protected PR validation.
+4. Publish from clean merged main and verify an isolated install.
+
+## Actual changes
+
+- Initialized the bounded release ticket from merged application head.
+
+## Blockers
+
+- None inside the recorded intent; proceed without a second confirmation.
+- New authority remains required for destructive action, secret access, new
+ external coordination, material objective expansion and trusted merge.
diff --git a/project/ticket-023/changelog.md b/project/ticket-023/changelog.md
new file mode 100644
index 0000000..8deba02
--- /dev/null
+++ b/project/ticket-023/changelog.md
@@ -0,0 +1,8 @@
+# Ticket Changelog (ticket-023)
+
+## [0.1.0] - 2026-08-10
+
+- Initial governance scaffold created.
+- No human participant identity or content was generated.
+- Defined the five-carrier atomic 2.1.292 release and protected publication
+ sequence.
diff --git a/project/ticket-023/intent.json b/project/ticket-023/intent.json
new file mode 100644
index 0000000..b900625
--- /dev/null
+++ b/project/ticket-023/intent.json
@@ -0,0 +1,61 @@
+{
+ "schema": "new-project.intent/v3",
+ "ticket": "ticket-023",
+ "summary": "Publish Goal 2.1.292 Python carrier fix",
+ "workstream": "integration",
+ "classification": {
+ "kind": "SERVICE",
+ "priority": "P1",
+ "origin": "requested"
+ },
+ "allowedPaths": [
+ "VERSION",
+ "README.md",
+ "pyproject.toml",
+ "uv.lock",
+ "goal/__init__.py",
+ "project/ticket-023/**",
+ "TODO.md",
+ "project/TICKETS.md"
+ ],
+ "forbiddenPaths": ["project/ticket-*/user-*.md"],
+ "stacks": ["python"],
+ "dependsOn": ["ticket-021"],
+ "conflictsWith": [],
+ "integrationTicket": null,
+ "delivery": {
+ "acceptedBaseSha": "9b4beddbb042bf5a3575c4eb3080368b20a20dfb",
+ "targetBranch": "main",
+ "outcome": "Goal 2.1.292 is published from protected merged main and verified from the public index",
+ "nonGoals": [
+ "No package source, dependency, governance or CI change",
+ "No top-level changelog update in the atomic release slice"
+ ],
+ "complexity": "S",
+ "estimatedMinutes": 30,
+ "budgets": {
+ "maxImplementationFiles": 5,
+ "maxAffectedComponents": 1,
+ "maxPublicInterfaceChanges": 0,
+ "maxRuntimeDependencies": 0
+ },
+ "architecture": {
+ "status": "accepted",
+ "decision": "Use the five-file atomic release-carrier slice and publish only after protected merge",
+ "components": [
+ {"name": "goal-release-metadata", "paths": ["VERSION", "README.md", "pyproject.toml", "uv.lock", "goal/__init__.py"]}
+ ],
+ "responsibilityChanges": false,
+ "interfaceChanges": [],
+ "dataChanges": [],
+ "ui": {"impact": "none", "states": [], "evidence": []},
+ "rollback": "Revert before registry publication; registry artifacts are immutable after upload"
+ },
+ "runtimeDependencies": [],
+ "validation": [
+ {"criterion": "AC-02", "commands": ["goal check-versions"], "evidence": "One normal bump to 2.1.292, then already-bumped"},
+ {"criterion": "AC-03", "commands": ["pytest -q", "python -m build", "./project/governance-check.sh"], "evidence": "Tests, artifacts and governance pass"},
+ {"criterion": "AC-05", "commands": ["goal --version"], "evidence": "Fresh public-index install reports 2.1.292"}
+ ]
+ }
+}
diff --git a/project/ticket-023/preprompt.md b/project/ticket-023/preprompt.md
new file mode 100644
index 0000000..dc84533
--- /dev/null
+++ b/project/ticket-023/preprompt.md
@@ -0,0 +1,12 @@
+# Ticket preprompt
+
+- **Task ID**: ticket-023
+- **Task title**: Publish Goal 2.1.292 Python carrier fix
+- **Created**: 2026-08-10T11:57:26Z
+
+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,
+material objective expansion and trusted merge approval.
diff --git a/pyproject.toml b/pyproject.toml
index d183c41..4d2add3 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "goal"
-version = "2.1.291"
+version = "2.1.292"
description = "Goal - Automated git push with enterprise-grade commit intelligence, smart conventional commit generation based on deep code analysis, and interactive release workflow management."
readme = "README.md"
authors = [
diff --git a/uv.lock b/uv.lock
index 692c74e..72df1c0 100644
--- a/uv.lock
+++ b/uv.lock
@@ -771,7 +771,7 @@ wheels = [
[[package]]
name = "goal"
-version = "2.1.291"
+version = "2.1.292"
source = { editable = "." }
dependencies = [
{ name = "click" },