From e29ec4c8747418c58c01f0b5ce51739a45fb4737 Mon Sep 17 00:00:00 2001 From: wonderbell <969064814@qq.com> Date: Mon, 31 Aug 2026 22:49:57 +0800 Subject: [PATCH 1/3] feat: rename suite to Agentic Superpowers --- .codex-plugin/plugin.json | 19 +-- .../agents/execution-efficiency-auditor.toml | 2 +- Makefile | 2 +- README.md | 94 ++++++------ THIRD_PARTY_NOTICES.md | 2 +- docs/architecture.md | 36 +++-- docs/evaluation.md | 8 +- docs/implementation-closed-loop.md | 8 +- docs/migration-from-gpt56-superpowers.md | 41 ++++++ docs/migration-from-obra-superpowers.md | 30 ++-- docs/model-profiles.md | 26 ++++ scripts/install-local.sh | 30 +++- scripts/manage-global-runtime.py | 40 +++-- scripts/restore-original.sh | 82 ++++++++--- scripts/validate.py | 70 ++++----- .../SKILL.md | 4 +- .../agents/openai.yaml | 4 +- .../SKILL.md | 12 +- .../agents/openai.yaml | 6 + .../SKILL.md | 6 +- .../agents/openai.yaml | 6 + .../SKILL.md | 4 +- .../agentic-git-delivery/agents/openai.yaml | 6 + .../SKILL.md | 4 +- .../agents/openai.yaml | 6 + .../assets/delivery-workbook.md | 0 .../assets/review-report.md | 0 .../assets/task-brief.md | 0 .../assets/worker-report.md | 0 .../references/decision-and-escalation.md | 0 .../references/evidence-and-closure.md | 0 .../references/lifecycle.md | 0 .../references/role-contracts.md | 0 .../SKILL.md | 4 +- .../agents/openai.yaml | 6 + .../SKILL.md | 28 ++-- .../agents/openai.yaml | 6 + .../references/implementer-prompt.md | 2 +- .../references/reviewer-prompt.md | 0 .../scripts/sdd-tools.cjs | 2 +- .../SKILL.md | 12 +- skills/agentic-superpowers/agents/openai.yaml | 6 + .../SKILL.md | 6 +- .../agents/openai.yaml | 6 + .../SKILL.md | 4 +- .../agentic-verification/agents/openai.yaml | 6 + .../SKILL.md | 14 +- .../agentic-writing-plans/agents/openai.yaml | 6 + .../agents/openai.yaml | 6 - .../gpt56-design-planning/agents/openai.yaml | 6 - skills/gpt56-git-delivery/agents/openai.yaml | 6 - .../agents/openai.yaml | 6 - .../agents/openai.yaml | 6 - .../agents/openai.yaml | 6 - skills/gpt56-superpowers/agents/openai.yaml | 6 - .../agents/openai.yaml | 6 - skills/gpt56-verification/agents/openai.yaml | 6 - skills/gpt56-writing-plans/agents/openai.yaml | 6 - tests/scenarios.json | 28 ++-- tests/test-global-runtime.py | 39 +++++ tests/test-install.sh | 139 +++++++++++++----- 61 files changed, 593 insertions(+), 329 deletions(-) create mode 100644 docs/migration-from-gpt56-superpowers.md create mode 100644 docs/model-profiles.md rename skills/{gpt56-debugging => agentic-debugging}/SKILL.md (97%) rename skills/{gpt56-debugging => agentic-debugging}/agents/openai.yaml (50%) rename skills/{gpt56-delegation-review => agentic-delegation-review}/SKILL.md (81%) create mode 100644 skills/agentic-delegation-review/agents/openai.yaml rename skills/{gpt56-design-planning => agentic-design-planning}/SKILL.md (90%) create mode 100644 skills/agentic-design-planning/agents/openai.yaml rename skills/{gpt56-git-delivery => agentic-git-delivery}/SKILL.md (97%) create mode 100644 skills/agentic-git-delivery/agents/openai.yaml rename skills/{gpt56-orchestrate-delivery => agentic-orchestrate-delivery}/SKILL.md (98%) create mode 100644 skills/agentic-orchestrate-delivery/agents/openai.yaml rename skills/{gpt56-orchestrate-delivery => agentic-orchestrate-delivery}/assets/delivery-workbook.md (100%) rename skills/{gpt56-orchestrate-delivery => agentic-orchestrate-delivery}/assets/review-report.md (100%) rename skills/{gpt56-orchestrate-delivery => agentic-orchestrate-delivery}/assets/task-brief.md (100%) rename skills/{gpt56-orchestrate-delivery => agentic-orchestrate-delivery}/assets/worker-report.md (100%) rename skills/{gpt56-orchestrate-delivery => agentic-orchestrate-delivery}/references/decision-and-escalation.md (100%) rename skills/{gpt56-orchestrate-delivery => agentic-orchestrate-delivery}/references/evidence-and-closure.md (100%) rename skills/{gpt56-orchestrate-delivery => agentic-orchestrate-delivery}/references/lifecycle.md (100%) rename skills/{gpt56-orchestrate-delivery => agentic-orchestrate-delivery}/references/role-contracts.md (100%) rename skills/{gpt56-purpose-bound-rigor => agentic-purpose-bound-rigor}/SKILL.md (97%) create mode 100644 skills/agentic-purpose-bound-rigor/agents/openai.yaml rename skills/{gpt56-subagent-driven-development => agentic-subagent-driven-development}/SKILL.md (60%) create mode 100644 skills/agentic-subagent-driven-development/agents/openai.yaml rename skills/{gpt56-subagent-driven-development => agentic-subagent-driven-development}/references/implementer-prompt.md (94%) rename skills/{gpt56-subagent-driven-development => agentic-subagent-driven-development}/references/reviewer-prompt.md (100%) rename skills/{gpt56-subagent-driven-development => agentic-subagent-driven-development}/scripts/sdd-tools.cjs (98%) rename skills/{gpt56-superpowers => agentic-superpowers}/SKILL.md (82%) create mode 100644 skills/agentic-superpowers/agents/openai.yaml rename skills/{gpt56-using-git-worktrees => agentic-using-git-worktrees}/SKILL.md (93%) create mode 100644 skills/agentic-using-git-worktrees/agents/openai.yaml rename skills/{gpt56-verification => agentic-verification}/SKILL.md (97%) create mode 100644 skills/agentic-verification/agents/openai.yaml rename skills/{gpt56-writing-plans => agentic-writing-plans}/SKILL.md (80%) create mode 100644 skills/agentic-writing-plans/agents/openai.yaml delete mode 100644 skills/gpt56-delegation-review/agents/openai.yaml delete mode 100644 skills/gpt56-design-planning/agents/openai.yaml delete mode 100644 skills/gpt56-git-delivery/agents/openai.yaml delete mode 100644 skills/gpt56-orchestrate-delivery/agents/openai.yaml delete mode 100644 skills/gpt56-purpose-bound-rigor/agents/openai.yaml delete mode 100644 skills/gpt56-subagent-driven-development/agents/openai.yaml delete mode 100644 skills/gpt56-superpowers/agents/openai.yaml delete mode 100644 skills/gpt56-using-git-worktrees/agents/openai.yaml delete mode 100644 skills/gpt56-verification/agents/openai.yaml delete mode 100644 skills/gpt56-writing-plans/agents/openai.yaml diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index e403007..3ed8cdb 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,16 +1,17 @@ { - "name": "gpt56-superpowers", - "version": "0.7.0", + "name": "agentic-superpowers", + "version": "0.8.0", "description": "A dependency-aware development suite with eleven Skills, an optional controller-led delivery workflow, global purpose-bound rigor, and an on-demand audit agent.", "author": { "name": "Wonderbell", "url": "https://github.com/bells0" }, - "homepage": "https://github.com/bells0/gpt56-superpowers#readme", - "repository": "https://github.com/bells0/gpt56-superpowers", + "homepage": "https://github.com/bells0/agentic-superpowers#readme", + "repository": "https://github.com/bells0/agentic-superpowers", "license": "MIT", "keywords": [ - "gpt-5.6", + "agentic-engineering", + "model-adaptive", "codex", "skills", "development-workflow", @@ -18,9 +19,9 @@ ], "skills": "./skills/", "interface": { - "displayName": "GPT-5.6 Superpowers", - "shortDescription": "Eleven focused development Skills for GPT-5.6 Sol", - "longDescription": "A Sol-first coordinator, an explicit controller-led delivery workflow, and focused Skills for design, implementation planning, worktree isolation, bounded subagent execution, debugging, verification, purpose-bound rigor, delegation and review, and atomic Git delivery.", + "displayName": "Agentic Superpowers", + "shortDescription": "Eleven model-evolving development Skills", + "longDescription": "A model-neutral accountable coordinator, an explicit controller-led delivery workflow, and focused Skills for design, implementation planning, worktree isolation, bounded subagent execution, debugging, verification, purpose-bound rigor, delegation and review, and atomic Git delivery.", "developerName": "Wonderbell", "category": "Developer Tools", "capabilities": [ @@ -35,7 +36,7 @@ "Git" ], "defaultPrompt": [ - "Use the smallest matching GPT-5.6 Superpowers Skill for this development task." + "Use the smallest matching Agentic Superpowers Skill for this development task." ] } } diff --git a/.codex/agents/execution-efficiency-auditor.toml b/.codex/agents/execution-efficiency-auditor.toml index 481c488..73f514c 100644 --- a/.codex/agents/execution-efficiency-auditor.toml +++ b/.codex/agents/execution-efficiency-auditor.toml @@ -1,4 +1,4 @@ -# managed-by: gpt56-superpowers +# managed-by: agentic-superpowers name = "execution-efficiency-auditor" description = "Use only when the user asks to audit delivery-process bloat or repeated execution drift needs a focused, read-only correction. Do not invoke as a routine reviewer or universal implementation gate." sandbox_mode = "read-only" diff --git a/Makefile b/Makefile index 0bc971a..9cb1266 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ dev-deps: local-codex-validate: @$(PYTHON) -c 'import yaml' >/dev/null 2>&1 || { echo "PyYAML is required; run make dev-deps" >&2; exit 1; } - @for skill in skills/gpt56-*; do \ + @for skill in skills/agentic-*; do \ $(PYTHON) $(CODEX_HOME)/skills/.system/skill-creator/scripts/quick_validate.py "$$skill" || exit 1; \ done $(PYTHON) $(CODEX_HOME)/skills/.system/plugin-creator/scripts/validate_plugin.py . diff --git a/README.md b/README.md index a063f73..2889f3c 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ -# GPT-5.6 Superpowers +# Agentic Superpowers -A lean, effect-first replacement for the ceremony-heavy Superpowers workflow, designed for GPT-5.6 Sol and Codex. +A lean, effect-first development Skill suite whose stable identity survives model upgrades. -Version 0.7 uses a dependency-aware hub-and-spoke structure: one Sol-first coordinator, one explicit controller-led delivery workflow, and nine focused Skills. A clear task can use one focused Skill directly—or no Skill at all—while long-running work can opt into a durable current-truth → Spec → Plan → Execution → Review → Verification → Acceptance → Closure lifecycle. The full repository installer also adds a concise global purpose-bound-rigor rule and an on-demand read-only audit agent. +Version 0.8 introduces the model-neutral `agentic-*` namespace while retaining the dependency-aware hub-and-spoke structure: one accountable coordinator, one explicit controller-led delivery workflow, and nine focused Skills. A clear task can use one focused Skill directly—or no Skill at all—while long-running work can opt into a durable current-truth → Spec → Plan → Execution → Review → Verification → Acceptance → Closure lifecycle. The full repository installer also adds a concise global purpose-bound-rigor rule and an on-demand read-only audit agent. ## Why this exists -[OpenAI's GPT-5.6 prompting guidance](https://developers.openai.com/api/docs/guides/prompt-guidance-gpt-5p6) recommends defining outcomes, constraints, evidence, autonomy, validation, and stop rules while removing repeated process instructions the model already performs reliably. +The suite evolves through versioned model profiles instead of embedding a model generation in repository, plugin, or Skill identifiers. The current profile was shaped by [OpenAI's GPT-5.6 prompting guidance](https://developers.openai.com/api/docs/guides/prompt-guidance-gpt-5p6), while the stable contracts remain outcomes, constraints, evidence, autonomy, validation, permissions, and stop rules. See [model profiles](docs/model-profiles.md) for the distinction between design inputs, deterministic package checks, and live-model evidence. This suite keeps the useful invariants—permission boundaries, project grounding, root-cause diagnosis, evidence before claims, preservation of user changes—and removes methodology ritual. It does not impose fail-first development, repeated broad suites, automatic worktrees, or per-task review chains. Each independently acceptable repository outcome receives an atomic local commit after focused evidence passes; approved Plans define those boundaries, while explicit opt-outs and unsafe or incomplete work remain uncommitted. Commit authority never implies push authority. @@ -14,17 +14,17 @@ This suite keeps the useful invariants—permission boundaries, project groundin | Skill | Use it for | |---|---| -| `gpt56-superpowers` | Two or more dependent development phases that need end-to-end coordination | -| `gpt56-orchestrate-delivery` | Explicit standardized delivery from current-state discovery through acceptance and Git closure | -| `gpt56-design-planning` | Consequential ambiguity in product, UX, architecture, interfaces, migrations, or scope | -| `gpt56-writing-plans` | Approved Spec → ordered implementation Plans → execution handoff | -| `gpt56-using-git-worktrees` | Explicit or justified worktree isolation that preserves existing user changes | -| `gpt56-subagent-driven-development` | Implementation-ready plans with independently ownable outcomes under Sol control | -| `gpt56-debugging` | Ambiguous, intermittent, environment-dependent, or multi-component failures | -| `gpt56-verification` | Choosing proportionate evidence for material completion claims | -| `gpt56-purpose-bound-rigor` | Requiring a concrete necessity case before adding hashes, gates, isolation, mocks, freezes, or repeated reviews | -| `gpt56-delegation-review` | Genuinely independent parallel work or a focused independent review | -| `gpt56-git-delivery` | Atomic completion commits plus authorized branches, worktrees, pushes, pull requests, merges, or cleanup | +| `agentic-superpowers` | Two or more dependent development phases that need end-to-end coordination | +| `agentic-orchestrate-delivery` | Explicit standardized delivery from current-state discovery through acceptance and Git closure | +| `agentic-design-planning` | Consequential ambiguity in product, UX, architecture, interfaces, migrations, or scope | +| `agentic-writing-plans` | Approved Spec → ordered implementation Plans → execution handoff | +| `agentic-using-git-worktrees` | Explicit or justified worktree isolation that preserves existing user changes | +| `agentic-subagent-driven-development` | Implementation-ready plans with independently ownable outcomes under accountable controller ownership | +| `agentic-debugging` | Ambiguous, intermittent, environment-dependent, or multi-component failures | +| `agentic-verification` | Choosing proportionate evidence for material completion claims | +| `agentic-purpose-bound-rigor` | Requiring a concrete necessity case before adding hashes, gates, isolation, mocks, freezes, or repeated reviews | +| `agentic-delegation-review` | Genuinely independent parallel work or a focused independent review | +| `agentic-git-delivery` | Atomic completion commits plus authorized branches, worktrees, pushes, pull requests, merges, or cleanup | All eleven are direct entry points. The orchestrated workflow is opt-in for explicit standardized delivery or long-running multi-module work; it does not force ordinary tasks through a fixed chain. The remaining execution-structure Skills may hand work to another focused Skill only at a real dependency boundary. Narrow trigger descriptions allow implicit routing without an always-on router, and explicit `$skill-name` invocation remains available. @@ -32,13 +32,13 @@ All eleven are direct entry points. The orchestrated workflow is opt-in for expl The comparison baseline is a local 14-Skill installation from `obra/superpowers` at commit `b55764852ac78870e65c6565fb585b6cd8b3c5c9`. -| Measure | Baseline | Version 0.7 | Reduction | +| Measure | Baseline | Version 0.8 | Reduction | |---|---:|---:|---:| | Workflow Skills | 14 | 11 | 21.4% | -| Total `SKILL.md` words | 15,737 | 5,403 | 65.7% | +| Total `SKILL.md` words | 15,737 | 5,404 | 65.7% | | Always-trigger router | Yes | No | Removed | -A focused route loads one body of 233–850 words. The longest Skills carry concrete planning, orchestrated-delivery, worktree, or subagent contracts and load only when those structures materially help. The full 5,403-word package is never a mandatory prompt chain. Word count is a structural proxy, not a model-quality or tokenization guarantee. +A focused route loads one body of 233–850 words. The longest Skills carry concrete planning, orchestrated-delivery, worktree, or subagent contracts and load only when those structures materially help. The full 5,404-word package is never a mandatory prompt chain. Word count is a structural proxy, not a model-quality or tokenization guarantee. ## Install @@ -47,8 +47,8 @@ A focused route loads one body of 233–850 words. The longest Skills carry conc Clone the repository and run the installer once: ```bash -git clone git@github.com:bells0/gpt56-superpowers.git -cd gpt56-superpowers +git clone git@github.com:bells0/agentic-superpowers.git +cd agentic-superpowers ./scripts/install-local.sh ``` @@ -67,53 +67,55 @@ To install only the eleven Skills without global guidance or the custom Agent: ```bash python3 ~/.codex/skills/.system/skill-installer/scripts/install-skill-from-github.py \ - --repo bells0/gpt56-superpowers \ + --repo bells0/agentic-superpowers \ --path \ - skills/gpt56-superpowers \ - skills/gpt56-orchestrate-delivery \ - skills/gpt56-design-planning \ - skills/gpt56-writing-plans \ - skills/gpt56-using-git-worktrees \ - skills/gpt56-subagent-driven-development \ - skills/gpt56-debugging \ - skills/gpt56-verification \ - skills/gpt56-purpose-bound-rigor \ - skills/gpt56-delegation-review \ - skills/gpt56-git-delivery + skills/agentic-superpowers \ + skills/agentic-orchestrate-delivery \ + skills/agentic-design-planning \ + skills/agentic-writing-plans \ + skills/agentic-using-git-worktrees \ + skills/agentic-subagent-driven-development \ + skills/agentic-debugging \ + skills/agentic-verification \ + skills/agentic-purpose-bound-rigor \ + skills/agentic-delegation-review \ + skills/agentic-git-delivery ``` -### Replace an existing `obra/superpowers` installation +### Upgrade from `gpt56-superpowers` ```bash -git clone git@github.com:bells0/gpt56-superpowers.git -cd gpt56-superpowers +git clone git@github.com:bells0/agentic-superpowers.git +cd agentic-superpowers ./scripts/install-local.sh ``` -The same full installer replaces an existing `obra/superpowers` installation. It validates the package, preserves legacy or conflicting Skill entries in a restorable transaction, installs eleven exact Skill links, and records the managed global runtime state. Restore the newest READY transaction with: +The installer treats all eleven `gpt56-*` Skill IDs as legacy migration inputs. It moves them into a restorable transaction, replaces the old global guidance marker with the model-neutral marker, and installs only the eleven `agentic-*` Skill links. It does not leave discoverable aliases that would duplicate routing metadata. See [the migration guide](docs/migration-from-gpt56-superpowers.md). + +The same installer also replaces an existing `obra/superpowers` installation. It validates the package, preserves legacy or conflicting Skill entries, and records the managed global runtime state. Restore the newest READY transaction with: ```bash ./scripts/restore-original.sh ``` -You can also pass a specific backup directory. Existing version-0.6 ten-Skill, version-0.3 six-Skill, and version-0.1 backups remain restorable. +You can also pass a specific backup directory. Existing `gpt56-superpowers` version-0.7, version-0.6, version-0.3, and version-0.1 backups remain restorable. ## Use Implicit routing handles strong matches. Invoke a Skill explicitly when you want a specific lens: ```text -Use $gpt56-debugging to diagnose this intermittent cross-service failure. +Use $agentic-debugging to diagnose this intermittent cross-service failure. -Use $gpt56-orchestrate-delivery to run this long-running feature through controller-led discovery, planning, bounded execution, review, verification, acceptance, and closure. +Use $agentic-orchestrate-delivery to run this long-running feature through controller-led discovery, planning, bounded execution, review, verification, acceptance, and closure. -Use $gpt56-verification to choose proportionate evidence for this release claim. +Use $agentic-verification to choose proportionate evidence for this release claim. -Use $gpt56-purpose-bound-rigor to decide whether these proposed gates and isolation steps are actually necessary. +Use $agentic-purpose-bound-rigor to decide whether these proposed gates and isolation steps are actually necessary. -Use $gpt56-writing-plans to turn this approved Spec into ordered, repository-grounded implementation Plans and define the Sol-controlled execution handoff. +Use $agentic-writing-plans to turn this approved Spec into ordered, repository-grounded implementation Plans and define the controller-owned execution handoff. -Use $gpt56-superpowers to coordinate this migration end to end. +Use $agentic-superpowers to coordinate this migration end to end. Use `docs/implementation-closed-loop.md` as a reusable template for long-running Spec → Plan → Execution workflows (including Plan A/B/C style handoffs and model-split recommendations). ``` @@ -139,11 +141,13 @@ make dev-deps make local-codex-validate ``` -See [architecture](docs/architecture.md), [migration mapping](docs/migration-from-obra-superpowers.md), and [evaluation](docs/evaluation.md). +See [architecture](docs/architecture.md), [model profiles](docs/model-profiles.md), [migration from `gpt56-superpowers`](docs/migration-from-gpt56-superpowers.md), [migration from `obra/superpowers`](docs/migration-from-obra-superpowers.md), and [evaluation](docs/evaluation.md). ## 中文说明 -这是为 GPT-5.6 Sol 重写的轻量 Superpowers:`1 个 Sol 主控核心 + 1 个显式标准交付流程 + 9 个聚焦 Skill`。普通任务不加载,单领域任务只加载一个;长期多模块任务可以显式选择主控编排、独立审查、真实路径验证、用户验收和 Git 收口的完整闭环。 +Agentic Superpowers 是一套不绑定具体模型版本的轻量开发 Skill:`1 个主控核心 + 1 个显式标准交付流程 + 9 个聚焦 Skill`。普通任务不加载,单领域任务只加载一个;长期多模块任务可以显式选择主控编排、独立审查、真实路径验证、用户验收和 Git 收口的完整闭环。 + +模型迭代记录在独立的 Model Profile 中,不进入仓库、插件或 Skill 的永久命名。升级安装会备份并移除旧的 `gpt56-*` 调用名,只暴露新的 `agentic-*`,同时保留旧事务的恢复能力。 本版本彻底移除了开发方法论强制,不要求先写失败测试、不要求 RED/GREEN/REFACTOR、不要求重复跑全量测试。保留的是更薄的“声明—证据”验证:文档看 diff/schema/link,Bug 复查原始症状,行为跑最相关检查,视觉实际渲染,发布遵守项目门禁;无法验证就明确缺口。 diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index 92e0ff8..0a8963d 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -1,6 +1,6 @@ # Third-party notices -GPT-5.6 Superpowers is an original rewrite informed by the workflow concepts and lessons of [obra/superpowers](https://github.com/obra/superpowers). It does not bundle the upstream Skill files. +Agentic Superpowers is an original rewrite informed by the workflow concepts and lessons of [obra/superpowers](https://github.com/obra/superpowers). It does not bundle the upstream Skill files. The upstream project is licensed under the MIT License: diff --git a/docs/architecture.md b/docs/architecture.md index 97508f4..c36bc18 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -2,24 +2,24 @@ ## Goal -Give GPT-5.6 a small set of precise development lenses without re-teaching reliable base-model behavior or forcing every task through one workflow. +Give evolving coding agents a small set of precise development lenses without re-teaching reliable base-model behavior or forcing every task through one workflow. ## Hub and spokes The suite contains eleven focused Skills: ```text -gpt56-superpowers Sol-led cross-phase coordination -├── gpt56-orchestrate-delivery opt-in standardized delivery lifecycle -├── gpt56-design-planning material ambiguity -├── gpt56-writing-plans implementation-ready plans -├── gpt56-using-git-worktrees justified repository isolation -├── gpt56-subagent-driven-development bounded plan execution -├── gpt56-debugging non-obvious failures -├── gpt56-verification claim-matched evidence -├── gpt56-purpose-bound-rigor necessity for workflow defenses -├── gpt56-delegation-review independent work or judgment -└── gpt56-git-delivery repository delivery state +agentic-superpowers controller-led cross-phase coordination +├── agentic-orchestrate-delivery opt-in standardized delivery lifecycle +├── agentic-design-planning material ambiguity +├── agentic-writing-plans implementation-ready plans +├── agentic-using-git-worktrees justified repository isolation +├── agentic-subagent-driven-development bounded plan execution +├── agentic-debugging non-obvious failures +├── agentic-verification claim-matched evidence +├── agentic-purpose-bound-rigor necessity for workflow defenses +├── agentic-delegation-review independent work or judgment +└── agentic-git-delivery repository delivery state ``` The diagram describes ownership, not a required call chain. Every spoke is a direct entry point. Orchestrated Delivery is the explicit exception for users who want a standardized current-truth → Spec → Plan → Execution → Review → Verification → Acceptance → Closure lifecycle; its narrow trigger prevents that workflow from becoming a tax on ordinary tasks. Design may hand settled requirements to Writing Plans; a suitable plan may hand independently ownable outcomes to Subagent Development; Worktree Isolation is optional; Verification and Git Delivery close only the claims and repository actions that need them. @@ -52,13 +52,17 @@ Orchestrated Delivery codifies the controller-led method only when the user sele Each spoke owns one decision domain. Trigger overlap is minimized by separating design uncertainty, implementation planning, isolation, bounded execution, causal uncertainty, evidence selection, coordination value, and Git delivery state. Git & Delivery additionally owns suite-wide atomic commit boundaries for repository changes. +### Stable identity, versioned model profiles + +Repository, plugin, and Skill identifiers describe durable agentic-engineering responsibilities rather than a model generation. Model-specific prompting inputs, assumptions, and evaluation status live in [model profiles](model-profiles.md). A future model update changes a profile and the affected contracts, not every public identifier. + ### Grounded implementation plans Writing Plans distinguishes user-provided facts, repository observations, proposed choices, and unresolved facts. Exact paths, symbols, commands, and current behavior must come from evidence rather than model completion. ### Conditional isolation and subagents -Worktree Isolation activates only for an explicit request or a concrete safety benefit. Subagent Development activates only for implementation-ready plans with independently ownable outcomes; Sol retains shared state, integration decisions, and final evidence. +Worktree Isolation activates only for an explicit request or a concrete safety benefit. Subagent Development activates only for implementation-ready plans with independently ownable outcomes; the controller retains shared state, integration decisions, and final evidence. ### Atomic completion commits @@ -85,9 +89,9 @@ The direct path is the default for local, reversible work. A non-default defense Delegation is justified by independent deliverables, elapsed-time savings, or fresh judgment that can change a material decision. Review is focused on named risks rather than added as a universal stage. -## Mapping to GPT-5.6 guidance +## Current guidance mapping -| Official guidance | Implementation | +| Current model-profile guidance | Stable implementation | |---|---| | State outcomes and stop rules | Six-part core contract and completion conditions | | Remove repeated process instructions | Nine focused bodies loaded only at matching boundaries; no mandatory chain | @@ -109,4 +113,4 @@ Repository validation enforces per-Skill budgets based on each contract's comple - complete package: at most 5,800 words; - only declared SDD resources and no mandatory `$skill` call chain. -Version 0.7 keeps the coordinator under 600 words and the complete package under 5,800 words. These are guardrails, not targets; normal routing loads only the matching bodies and any explicitly needed resource. +Version 0.8 keeps the coordinator under 600 words and the complete package under 5,800 words. These are guardrails, not targets; normal routing loads only the matching bodies and any explicitly needed resource. diff --git a/docs/evaluation.md b/docs/evaluation.md index f65a8e2..e200011 100644 --- a/docs/evaluation.md +++ b/docs/evaluation.md @@ -1,6 +1,6 @@ # Evaluation -The checked-in scenario matrix tests routing intent and package invariants. It is not a claim that a live GPT-5.6 benchmark occurred. +The checked-in scenario matrix tests routing intent and package invariants. It is not a claim that a live benchmark occurred for the current or any future [model profile](model-profiles.md). ## Fourteen representative scenarios @@ -26,11 +26,11 @@ The checked-in scenario matrix tests routing intent and package invariants. It i ## Current evidence - Deterministic validation checks all eleven Skill structures, per-Skill trigger budgets, forbidden forced ritual language, declared workflow resources, dependency-aware routing, and the fourteen-scenario specification. -- Transaction smoke tests exercise fresh and upgrade installs, exact restore semantics, conflicts, injected install and restore failures, version-0.3, version-0.6, and version-1 compatibility, path aliases, locks, spaces, and broken links. +- Transaction smoke tests exercise fresh and upgrade installs, exact restore semantics, conflicts, injected install and restore failures, legacy `gpt56-*` migration, version-0.3, version-0.6, version-0.7, and version-1 compatibility, path aliases, locks, spaces, and broken links. - A three-case blind forward review on 2026-07-20 covered an implicit simple-change commit, an explicit no-commit request, and a multi-repository completion. All three followed the version-0.3 local-commit contract. -- Three focused forward scenarios on 2026-07-27 covered evidence-grounded implementation plans, dirty-checkout worktree isolation, and Sol-controlled subagent execution. The first Writing Plans pass exposed invented repository details; the revised evidence classification passed the second blind scenario. +- Three focused GPT-5.6 Sol scenarios on 2026-07-27 covered evidence-grounded implementation plans, dirty-checkout worktree isolation, and controller-owned subagent execution. The first Writing Plans pass exposed invented repository details; the revised evidence classification passed the second blind scenario. -The blind review tests semantic separation in the discovery descriptions. It does not exercise Codex's production implicit router and is not a live GPT-5.6 outcome, latency, token, or cost benchmark. +The blind review tests semantic separation in the discovery descriptions. It does not exercise Codex's production implicit router and is not a repository-wide live outcome, latency, token, or cost benchmark. ## Compare effectiveness diff --git a/docs/implementation-closed-loop.md b/docs/implementation-closed-loop.md index a5f9afd..e266030 100644 --- a/docs/implementation-closed-loop.md +++ b/docs/implementation-closed-loop.md @@ -2,7 +2,7 @@ 这份说明用于长期固定工作流,目标是减少反复和偏差:**先确认需求契约(Spec),再形成可执行 Plan,再实施**。 -在 Codex 中需要完整执行这套标准流程时,直接使用 `gpt56-orchestrate-delivery`。本文件保留为面向人的简要说明;Skill 额外固化了主线程职责、角色契约、独立审查、工程验证、用户验收以及文档和 Git 收口。 +在 Codex 中需要完整执行这套标准流程时,直接使用 `agentic-orchestrate-delivery`。本文件保留为面向人的简要说明;Skill 额外固化了主线程职责、角色契约、独立审查、工程验证、用户验收以及文档和 Git 收口。 ## 适用场景 @@ -23,7 +23,7 @@ - 验收标准(可观察) 如果存在以下任一项:产品/UX/架构/迁移语义开放 → 先走 -`gpt56-design-planning`,否则可以直接进入下一步。 +`agentic-design-planning`,否则可以直接进入下一步。 ### 2) Plan(实施计划) @@ -37,8 +37,8 @@ 建议固定用: -- `gpt56-writing-plans`:把 Spec 转为可执行 Plan -- `gpt56-subagent-driven-development`:当 Plan 出现“独立可并行写入”且风险可控时,分发并行执行(Sol 保持主控) +- `agentic-writing-plans`:把 Spec 转为可执行 Plan +- `agentic-subagent-driven-development`:当 Plan 出现“独立可并行写入”且风险可控时,分发并行执行(主线程保持主控) Plan 仍未确定时不应边写边改;边界不清晰要回到 Plan。 diff --git a/docs/migration-from-gpt56-superpowers.md b/docs/migration-from-gpt56-superpowers.md new file mode 100644 index 0000000..080c6e8 --- /dev/null +++ b/docs/migration-from-gpt56-superpowers.md @@ -0,0 +1,41 @@ +# Migration from `gpt56-superpowers` + +Version 0.8 renames the suite to Agentic Superpowers so future model upgrades do not require another public-identifier migration. + +## Identifier mapping + +| Previous Skill | Current Skill | +|---|---| +| `gpt56-superpowers` | `agentic-superpowers` | +| `gpt56-orchestrate-delivery` | `agentic-orchestrate-delivery` | +| `gpt56-design-planning` | `agentic-design-planning` | +| `gpt56-writing-plans` | `agentic-writing-plans` | +| `gpt56-using-git-worktrees` | `agentic-using-git-worktrees` | +| `gpt56-subagent-driven-development` | `agentic-subagent-driven-development` | +| `gpt56-debugging` | `agentic-debugging` | +| `gpt56-verification` | `agentic-verification` | +| `gpt56-purpose-bound-rigor` | `agentic-purpose-bound-rigor` | +| `gpt56-delegation-review` | `agentic-delegation-review` | +| `gpt56-git-delivery` | `agentic-git-delivery` | + +## Full-installer behavior + +`./scripts/install-local.sh` treats all previous `gpt56-*` IDs as migration inputs: + +- existing old Skill directories or links are moved into the new transaction backup; +- only `agentic-*` links remain discoverable after installation; +- an old managed purpose-bound-rigor block and managed audit Agent are upgraded in place; +- the receipt preserves the exact previous state, so restoring that transaction brings the old installation back; +- version-0.7, version-0.6, version-0.3, and version-0.1 backup formats remain accepted by the restore script. + +The suite deliberately does not install live aliases for old Skill names. Keeping both namespaces would duplicate discovery metadata and make implicit routing ambiguous. Update explicit `$gpt56-*` prompts and project instructions to the mapped `$agentic-*` names. + +## Repository and catalog contract + +After the authorized GitHub repository rename and publication, external catalogs and installers should use: + +- repository: `https://github.com/bells0/agentic-superpowers.git` +- branch: `main` +- Skill paths: the eleven `skills/agentic-*` directories listed above + +Until that remote action occurs, these values describe the target release contract rather than confirmed public state. diff --git a/docs/migration-from-obra-superpowers.md b/docs/migration-from-obra-superpowers.md index 0085c68..f4e37e5 100644 --- a/docs/migration-from-obra-superpowers.md +++ b/docs/migration-from-obra-superpowers.md @@ -1,22 +1,22 @@ # Migration from `obra/superpowers` -This project is an original GPT-5.6 rewrite, not a compatibility layer. It deliberately avoids fourteen aliases because discoverable aliases would restore much of the trigger and metadata overhead. +This project is an original model-evolving rewrite, not a compatibility layer. It deliberately avoids fourteen aliases because discoverable aliases would restore much of the trigger and metadata overhead. ## Capability mapping -| Previous Skill | Version 0.4 decision | +| Previous Skill | Version 0.8 decision | |---|---| | `using-superpowers` | Narrow implicit descriptions plus direct invocation; no every-message router | -| `brainstorming` | `gpt56-design-planning` only for consequential ambiguity or dependency planning | -| `writing-plans` | `gpt56-writing-plans` for repository-grounded, implementation-ready plans after decisions settle | -| `executing-plans` | Base model execution for coupled work; `gpt56-subagent-driven-development` for independently ownable plan outcomes | -| `systematic-debugging` | `gpt56-debugging` for non-obvious causal investigation | -| `verification-before-completion` | `gpt56-verification` matches evidence to material claims | -| `dispatching-parallel-agents` | `gpt56-delegation-review` only for genuinely independent work or focused judgment | -| `subagent-driven-development` | `gpt56-subagent-driven-development` with Sol-owned contracts, disjoint write ownership, durable state, and proportional review | -| `requesting-code-review`, `receiving-code-review` | Focused evidence-backed review in `gpt56-delegation-review` | -| `using-git-worktrees` | `gpt56-using-git-worktrees` only for explicit or materially justified isolation | -| `finishing-a-development-branch` | `gpt56-git-delivery` for explicit Git state and atomic local commits after verified repository outcomes | +| `brainstorming` | `agentic-design-planning` only for consequential ambiguity or dependency planning | +| `writing-plans` | `agentic-writing-plans` for repository-grounded, implementation-ready plans after decisions settle | +| `executing-plans` | Base model execution for coupled work; `agentic-subagent-driven-development` for independently ownable plan outcomes | +| `systematic-debugging` | `agentic-debugging` for non-obvious causal investigation | +| `verification-before-completion` | `agentic-verification` matches evidence to material claims | +| `dispatching-parallel-agents` | `agentic-delegation-review` only for genuinely independent work or focused judgment | +| `subagent-driven-development` | `agentic-subagent-driven-development` with the controller-owned contracts, disjoint write ownership, durable state, and proportional review | +| `requesting-code-review`, `receiving-code-review` | Focused evidence-backed review in `agentic-delegation-review` | +| `using-git-worktrees` | `agentic-using-git-worktrees` only for explicit or materially justified isolation | +| `finishing-a-development-branch` | `agentic-git-delivery` for explicit Git state and atomic local commits after verified repository outcomes | | `test-driven-development` | Removed as a Skill and methodology requirement; project or user rules still govern when specified | | `writing-skills` | Base model plus repository-specific creators and validators | @@ -41,7 +41,7 @@ This project is an original GPT-5.6 rewrite, not a compatibility layer. It delib ## Transactional local migration -`scripts/install-local.sh` validates source and path safety, acquires a shared lock, and classifies each of the nine target paths as: +`scripts/install-local.sh` validates source and path safety, acquires a shared lock, and classifies each of the eleven target paths as: - `preserved`: already an exact symlink to this checkout; - `created`: linked by the current transaction; @@ -50,9 +50,9 @@ This project is an original GPT-5.6 rewrite, not a compatibility layer. It delib It also moves any of the fourteen legacy directories into an exclusive transaction directory under: ```text -~/.codex/skill-backups/gpt56-superpowers/ +~/.codex/skill-backups/agentic-superpowers/ ``` The version-2 manifest records all managed, preserved, created, and moved names before the transaction becomes READY. Restore removes only links created by that transaction, never a preserved link, and returns backed-up entries after collision checks. -Backups created by version 0.3 use the previous six-Skill version-2 manifest, while version 0.1 uses the earlier single-link manifest. The restore script retains compatibility with both formats so previous migrations remain recoverable. +Backups created by `gpt56-superpowers` versions 0.7, 0.6, and 0.3 use earlier version-2 managed-Skill manifests, while version 0.1 uses the single-link manifest. The restore script retains compatibility with all formats so previous migrations remain recoverable. diff --git a/docs/model-profiles.md b/docs/model-profiles.md new file mode 100644 index 0000000..517977b --- /dev/null +++ b/docs/model-profiles.md @@ -0,0 +1,26 @@ +# Model Profiles + +Agentic Superpowers keeps repository, plugin, and Skill identifiers stable across model generations. A model profile records what influenced the current contracts and what evidence actually exists; it is not part of the public namespace. + +## Current profile + +| Field | Current value | +|---|---| +| Profile | OpenAI GPT-5.6 Sol | +| Recorded | 2026-08-31 | +| Role | Design and prompting-guidance input for version 0.8 | +| Deterministic evidence | Package structure, prompt budgets, routing scenarios, global-runtime behavior, and install/restore transactions | +| Live-model evidence | Historical focused scenarios described in [evaluation](evaluation.md); no repository-wide live routing, latency, token, or cost benchmark is claimed | + +The suite may work with other capable coding agents, but compatibility must not be inferred from model-neutral naming alone. + +## Updating for a new model + +1. Read the model's primary prompting and tool-use guidance. +2. Compare new reliable base behavior with the existing Skill contracts. +3. Change a Skill only when the new behavior changes routing, required constraints, or useful evidence. +4. Run deterministic package validation and the representative scenarios affected by the change. +5. Record live-model results separately from static checks, including model identifier, date, scenario, and limitations. +6. Increment the suite version without renaming the repository, plugin, or `agentic-*` Skill IDs. + +Model-specific worker recommendations belong in dated evaluation evidence, not permanent Skill contracts, unless the suite intentionally introduces a separate model-bound profile package. diff --git a/scripts/install-local.sh b/scripts/install-local.sh index 64c774f..aa093b3 100755 --- a/scripts/install-local.sh +++ b/scripts/install-local.sh @@ -5,14 +5,29 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" CODEX_HOME="${CODEX_HOME:-$HOME/.codex}" SKILLS_ROOT="${SKILLS_ROOT:-$CODEX_HOME/skills}" -BACKUP_ROOT="${BACKUP_ROOT:-$CODEX_HOME/skill-backups/gpt56-superpowers}" +BACKUP_ROOT="${BACKUP_ROOT:-$CODEX_HOME/skill-backups/agentic-superpowers}" SOURCE_ROOT="$REPO_ROOT/skills" -LOCK_DIR="$SKILLS_ROOT/.gpt56-superpowers.lock" +LOCK_DIR="$SKILLS_ROOT/.agentic-superpowers.lock" +LEGACY_LOCK_DIR="$SKILLS_ROOT/.gpt56-superpowers.lock" GLOBAL_AGENT_SOURCE="$REPO_ROOT/.codex/agents/execution-efficiency-auditor.toml" GLOBAL_GUIDANCE_SOURCE="$REPO_ROOT/.codex/purpose-bound-rigor.md" GLOBAL_RUNTIME_HELPER="$REPO_ROOT/scripts/manage-global-runtime.py" MANAGED_SKILLS=( + agentic-superpowers + agentic-orchestrate-delivery + agentic-design-planning + agentic-writing-plans + agentic-using-git-worktrees + agentic-subagent-driven-development + agentic-debugging + agentic-verification + agentic-purpose-bound-rigor + agentic-delegation-review + agentic-git-delivery +) + +LEGACY_GPT56_SKILLS=( gpt56-superpowers gpt56-orchestrate-delivery gpt56-design-planning @@ -26,7 +41,7 @@ MANAGED_SKILLS=( gpt56-git-delivery ) -LEGACY_SKILLS=( +LEGACY_OBRA_SKILLS=( brainstorming dispatching-parallel-agents executing-plans @@ -43,6 +58,8 @@ LEGACY_SKILLS=( writing-skills ) +LEGACY_SKILLS=("${LEGACY_GPT56_SKILLS[@]}" "${LEGACY_OBRA_SKILLS[@]}") + exists() { [[ -e "$1" || -L "$1" ]] } @@ -191,6 +208,9 @@ on_exit() { exit "$status" } +if exists "$LEGACY_LOCK_DIR"; then + die "a legacy install or restore is active; inspect lock $LEGACY_LOCK_DIR" +fi if ! mkdir "$LOCK_DIR" 2>/dev/null; then die "another install or restore is active; inspect lock $LOCK_DIR" fi @@ -225,7 +245,7 @@ if [[ "$all_installed" -eq 1 && "$legacy_found" -eq 0 ]]; then committed=1 release_lock trap - EXIT - echo "Already installed: eleven GPT-5.6 Skills" + echo "Already installed: eleven Agentic Superpowers Skills" exit 0 fi @@ -297,7 +317,7 @@ committed=1 release_lock trap - EXIT -echo "Installed eleven GPT-5.6 Skills from: $SOURCE_ROOT" +echo "Installed eleven Agentic Superpowers Skills from: $SOURCE_ROOT" echo "Installed global purpose-bound guidance and execution-efficiency-auditor." echo "Backup: $BACKUP_DIR" echo "Restart Codex or start a new task to refresh Skill discovery." diff --git a/scripts/manage-global-runtime.py b/scripts/manage-global-runtime.py index 7569c15..5302120 100644 --- a/scripts/manage-global-runtime.py +++ b/scripts/manage-global-runtime.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Install or restore GPT-5.6 global guidance and the optional audit agent.""" +"""Install, migrate, or restore Agentic Superpowers global runtime state.""" from __future__ import annotations @@ -11,9 +11,15 @@ from pathlib import Path -START = "" -END = "" +START = "" +END = "" +LEGACY_START = "" +LEGACY_END = "" AGENT_NAME = "execution-efficiency-auditor.toml" +MANAGED_AGENT_MARKERS = ( + "# managed-by: agentic-superpowers", + "# managed-by: gpt56-superpowers", +) def read(path: Path) -> str: @@ -35,14 +41,24 @@ def managed_block(fragment: Path) -> str: def find_block(text: str) -> tuple[int, int, str] | None: - start = text.find(START) - end = text.find(END) - if start < 0 and end < 0: - return None - if start < 0 or end < start or text.find(START, start + 1) >= 0 or text.find(END, end + 1) >= 0: - raise ValueError("global AGENTS guidance contains malformed gpt56-superpowers markers") - finish = end + len(END) - return start, finish, text[start:finish] + found: list[tuple[int, int, str]] = [] + for start_marker, end_marker in ((START, END), (LEGACY_START, LEGACY_END)): + start = text.find(start_marker) + end = text.find(end_marker) + if start < 0 and end < 0: + continue + if ( + start < 0 + or end < start + or text.find(start_marker, start + 1) >= 0 + or text.find(end_marker, end + 1) >= 0 + ): + raise ValueError("global AGENTS guidance contains malformed Agentic Superpowers markers") + finish = end + len(end_marker) + found.append((start, finish, text[start:finish])) + if len(found) > 1: + raise ValueError("global AGENTS guidance contains multiple Agentic Superpowers blocks") + return found[0] if found else None def guidance_target(codex_home: Path) -> Path: @@ -77,7 +93,7 @@ def install(codex_home: Path, source_agent: Path, fragment: Path, receipt: Path) agent_target = codex_home / "agents" / AGENT_NAME previous_agent = read(agent_target) if agent_target.is_file() else None - if previous_agent is not None and "# managed-by: gpt56-superpowers" not in previous_agent: + if previous_agent is not None and not any(marker in previous_agent for marker in MANAGED_AGENT_MARKERS): raise ValueError(f"refusing to replace unmanaged custom agent: {agent_target}") receipt.parent.mkdir(parents=True, exist_ok=True) diff --git a/scripts/restore-original.sh b/scripts/restore-original.sh index 82434e3..25ffc12 100755 --- a/scripts/restore-original.sh +++ b/scripts/restore-original.sh @@ -5,12 +5,32 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" CODEX_HOME="${CODEX_HOME:-$HOME/.codex}" SKILLS_ROOT="${SKILLS_ROOT:-$CODEX_HOME/skills}" -BACKUP_ROOT="${BACKUP_ROOT:-$CODEX_HOME/skill-backups/gpt56-superpowers}" +BACKUP_ROOT_IS_EXPLICIT=0 +if [[ "${BACKUP_ROOT+x}" == "x" ]]; then + BACKUP_ROOT_IS_EXPLICIT=1 +fi +BACKUP_ROOT="${BACKUP_ROOT:-$CODEX_HOME/skill-backups/agentic-superpowers}" +LEGACY_BACKUP_ROOT="$CODEX_HOME/skill-backups/gpt56-superpowers" SOURCE_ROOT="$REPO_ROOT/skills" -LOCK_DIR="$SKILLS_ROOT/.gpt56-superpowers.lock" +LOCK_DIR="$SKILLS_ROOT/.agentic-superpowers.lock" +LEGACY_LOCK_DIR="$SKILLS_ROOT/.gpt56-superpowers.lock" GLOBAL_RUNTIME_HELPER="$REPO_ROOT/scripts/manage-global-runtime.py" MANAGED_SKILLS=( + agentic-superpowers + agentic-orchestrate-delivery + agentic-design-planning + agentic-writing-plans + agentic-using-git-worktrees + agentic-subagent-driven-development + agentic-debugging + agentic-verification + agentic-purpose-bound-rigor + agentic-delegation-review + agentic-git-delivery +) + +VERSION_07_MANAGED_SKILLS=( gpt56-superpowers gpt56-orchestrate-delivery gpt56-design-planning @@ -46,7 +66,7 @@ VERSION_03_MANAGED_SKILLS=( gpt56-git-delivery ) -LEGACY_SKILLS=( +LEGACY_OBRA_SKILLS=( brainstorming dispatching-parallel-agents executing-plans @@ -63,12 +83,14 @@ LEGACY_SKILLS=( writing-skills ) +LEGACY_SKILLS=("${VERSION_07_MANAGED_SKILLS[@]}" "${LEGACY_OBRA_SKILLS[@]}") + exists() { [[ -e "$1" || -L "$1" ]] } -exact_link() { - [[ -L "$SKILLS_ROOT/$1" ]] && [[ "$(readlink "$SKILLS_ROOT/$1")" == "$SOURCE_ROOT/$1" ]] +link_points_to() { + [[ -L "$SKILLS_ROOT/$1" ]] && [[ "$(readlink "$SKILLS_ROOT/$1")" == "$2" ]] } contains_name() { @@ -95,6 +117,7 @@ mkdir -p "$SKILLS_ROOT" "$BACKUP_ROOT" BACKUP_DIR="" restored_names=() removed_names=() +removed_targets=() committed=0 lock_held=0 restored_marker="" @@ -129,7 +152,7 @@ rollback() { for ((index=${#removed_names[@]} - 1; index >= 0; index--)); do name="${removed_names[$index]}" if ! exists "$SKILLS_ROOT/$name"; then - ln -s "$SOURCE_ROOT/$name" "$SKILLS_ROOT/$name" || rollback_error=1 + ln -s "${removed_targets[$index]}" "$SKILLS_ROOT/$name" || rollback_error=1 else echo "WARNING: rollback could not recreate $name because its path is occupied" >&2 rollback_error=1 @@ -152,6 +175,9 @@ on_exit() { exit "$status" } +if exists "$LEGACY_LOCK_DIR"; then + die "a legacy install or restore is active; inspect lock $LEGACY_LOCK_DIR" +fi if ! mkdir "$LOCK_DIR" 2>/dev/null; then die "another install or restore is active; inspect lock $LOCK_DIR" fi @@ -161,12 +187,20 @@ printf '%s\n' "$$" > "$LOCK_DIR/owner" BACKUP_DIR="${1:-}" if [[ -z "$BACKUP_DIR" ]]; then - while IFS= read -r candidate; do - if [[ -f "$candidate/READY" && ! -f "$candidate/RESTORED" ]]; then - BACKUP_DIR="$candidate" - break - fi - done < <(find "$BACKUP_ROOT" -mindepth 1 -maxdepth 1 -type d | sort -r) + backup_roots=("$BACKUP_ROOT") + if [[ "$BACKUP_ROOT_IS_EXPLICIT" -eq 0 && "$LEGACY_BACKUP_ROOT" != "$BACKUP_ROOT" ]]; then + backup_roots+=("$LEGACY_BACKUP_ROOT") + fi + for backup_root in "${backup_roots[@]}"; do + [[ -d "$backup_root" ]] || continue + while IFS= read -r candidate; do + if [[ -f "$candidate/READY" && ! -f "$candidate/RESTORED" ]]; then + BACKUP_DIR="$candidate" + break + fi + done < <(find "$backup_root" -mindepth 1 -maxdepth 1 -type d | sort -r) + [[ -z "$BACKUP_DIR" ]] || break + done fi [[ -n "$BACKUP_DIR" && -d "$BACKUP_DIR" ]] || die "no unrestored READY backup directory found" @@ -190,7 +224,8 @@ state="$(sed -n 's/^state=//p' "$BACKUP_DIR/INSTALL_INFO" | tail -n 1)" restore_v2() { recorded_source_root="$(sed -n 's/^source_root=//p' "$BACKUP_DIR/INSTALL_INFO" | tail -n 1)" recorded_skills_root="$(sed -n 's/^skills_root=//p' "$BACKUP_DIR/INSTALL_INFO" | tail -n 1)" - [[ "$recorded_source_root" == "$SOURCE_ROOT" ]] || die "backup source does not match this repository" + [[ "$recorded_source_root" == /* && "$(basename "$recorded_source_root")" == "skills" ]] \ + || die "backup source root is invalid" [[ "$recorded_skills_root" == "$SKILLS_ROOT" ]] || die "backup target does not match this Skills root" manifest_managed=() @@ -203,6 +238,7 @@ restore_v2() { while IFS= read -r name; do manifest_moved+=("$name"); done < <(sed -n 's/^moved=//p' "$BACKUP_DIR/INSTALL_INFO") if [[ "${manifest_managed[*]}" != "${MANAGED_SKILLS[*]}" ]] \ + && [[ "${manifest_managed[*]}" != "${VERSION_07_MANAGED_SKILLS[*]}" ]] \ && [[ "${manifest_managed[*]}" != "${VERSION_06_MANAGED_SKILLS[*]}" ]] \ && [[ "${manifest_managed[*]}" != "${VERSION_03_MANAGED_SKILLS[*]}" ]]; then die "managed Skill manifest is invalid" @@ -239,7 +275,8 @@ restore_v2() { for name in "${manifest_moved[@]}"; do if exists "$SKILLS_ROOT/$name"; then - if contains_name "$name" "${manifest_created[@]}" && exact_link "$name"; then + if contains_name "$name" "${manifest_created[@]}" \ + && link_points_to "$name" "$recorded_source_root/$name"; then continue fi die "restore collision at $SKILLS_ROOT/$name" @@ -247,7 +284,8 @@ restore_v2() { done for name in "${manifest_created[@]}"; do - if exact_link "$name"; then + if link_points_to "$name" "$recorded_source_root/$name"; then + removed_targets+=("$(readlink "$SKILLS_ROOT/$name")") rm "$SKILLS_ROOT/$name" removed_names+=("$name") elif exists "$SKILLS_ROOT/$name" && contains_name "$name" "${manifest_moved[@]}"; then @@ -271,7 +309,10 @@ restore_v1() { recorded_source="$(sed -n 's/^source=//p' "$BACKUP_DIR/INSTALL_INFO" | tail -n 1)" recorded_target="$(sed -n 's/^target=//p' "$BACKUP_DIR/INSTALL_INFO" | tail -n 1)" preserve_target="$(sed -n 's/^preserve_target=//p' "$BACKUP_DIR/INSTALL_INFO" | tail -n 1)" - [[ "$recorded_source" == "$SOURCE_ROOT/gpt56-superpowers" ]] || die "version-1 backup source does not match this repository" + [[ "$recorded_source" == /* \ + && "$(basename "$recorded_source")" == "gpt56-superpowers" \ + && "$(basename "$(dirname "$recorded_source")")" == "skills" ]] \ + || die "version-1 backup source is invalid" [[ "$recorded_target" == "$SKILLS_ROOT/gpt56-superpowers" ]] || die "version-1 backup target does not match this Skills root" [[ "$preserve_target" == "0" || "$preserve_target" == "1" ]] || die "invalid version-1 preserve_target value" @@ -289,7 +330,8 @@ restore_v1() { for name in "${manifest_moved[@]}"; do exists "$BACKUP_DIR/$name" || die "version-1 manifest item is absent from backup: $name" if exists "$SKILLS_ROOT/$name"; then - if [[ "$name" == "gpt56-superpowers" && "$preserve_target" == "0" ]] && exact_link "$name"; then + if [[ "$name" == "gpt56-superpowers" && "$preserve_target" == "0" ]] \ + && link_points_to "$name" "$recorded_source"; then continue fi die "restore collision at $SKILLS_ROOT/$name" @@ -305,8 +347,10 @@ restore_v1() { done if [[ "$preserve_target" == "1" ]]; then - exact_link gpt56-superpowers || die "version-1 backup expects the core link to remain present" - elif exact_link gpt56-superpowers; then + link_points_to gpt56-superpowers "$recorded_source" \ + || die "version-1 backup expects the core link to remain present" + elif link_points_to gpt56-superpowers "$recorded_source"; then + removed_targets+=("$(readlink "$SKILLS_ROOT/gpt56-superpowers")") rm "$SKILLS_ROOT/gpt56-superpowers" removed_names+=("gpt56-superpowers") elif exists "$SKILLS_ROOT/gpt56-superpowers"; then diff --git a/scripts/validate.py b/scripts/validate.py index d3ae66b..5bb97ef 100755 --- a/scripts/validate.py +++ b/scripts/validate.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Deterministic package checks for the GPT-5.6 Superpowers suite.""" +"""Deterministic package checks for the Agentic Superpowers suite.""" from __future__ import annotations @@ -17,35 +17,35 @@ ROOT = Path(__file__).resolve().parents[1] SKILLS_ROOT = ROOT / "skills" SKILL_NAMES = ( - "gpt56-superpowers", - "gpt56-orchestrate-delivery", - "gpt56-design-planning", - "gpt56-writing-plans", - "gpt56-using-git-worktrees", - "gpt56-subagent-driven-development", - "gpt56-debugging", - "gpt56-verification", - "gpt56-purpose-bound-rigor", - "gpt56-delegation-review", - "gpt56-git-delivery", + "agentic-superpowers", + "agentic-orchestrate-delivery", + "agentic-design-planning", + "agentic-writing-plans", + "agentic-using-git-worktrees", + "agentic-subagent-driven-development", + "agentic-debugging", + "agentic-verification", + "agentic-purpose-bound-rigor", + "agentic-delegation-review", + "agentic-git-delivery", ) SKILL_WORD_LIMITS = { - "gpt56-superpowers": 600, - "gpt56-orchestrate-delivery": 900, - "gpt56-design-planning": 300, - "gpt56-writing-plans": 850, - "gpt56-using-git-worktrees": 600, - "gpt56-subagent-driven-development": 750, - "gpt56-debugging": 300, - "gpt56-verification": 300, - "gpt56-purpose-bound-rigor": 500, - "gpt56-delegation-review": 450, - "gpt56-git-delivery": 300, + "agentic-superpowers": 600, + "agentic-orchestrate-delivery": 900, + "agentic-design-planning": 300, + "agentic-writing-plans": 850, + "agentic-using-git-worktrees": 600, + "agentic-subagent-driven-development": 750, + "agentic-debugging": 300, + "agentic-verification": 300, + "agentic-purpose-bound-rigor": 500, + "agentic-delegation-review": 450, + "agentic-git-delivery": 300, } PACKAGE_WORD_LIMIT = 5800 ALLOWED_RESOURCE_DIRS = { - "gpt56-orchestrate-delivery": {"references", "assets"}, - "gpt56-subagent-driven-development": {"references", "scripts"}, + "agentic-orchestrate-delivery": {"references", "assets"}, + "agentic-subagent-driven-development": {"references", "scripts"}, } failures: list[str] = [] @@ -69,7 +69,7 @@ def load_json(path: Path) -> object: manifest = load_json(ROOT / ".codex-plugin" / "plugin.json") if isinstance(manifest, dict): - check(manifest.get("name") == "gpt56-superpowers", "plugin name must match the repository") + check(manifest.get("name") == "agentic-superpowers", "plugin name must match the repository") check( isinstance(manifest.get("version"), str) and re.fullmatch(r"\d+\.\d+\.\d+", manifest["version"]) is not None, @@ -152,7 +152,7 @@ def load_json(path: Path) -> object: and path.name not in ALLOWED_RESOURCE_DIRS.get(name, set()) } check(not extra_dirs, f"{name} contains unnecessary resource directories: {sorted(extra_dirs)}") - check("$gpt56-" not in skill_text, f"{name} body must not require another sibling Skill") + check("$agentic-" not in skill_text, f"{name} body must not require another sibling Skill") word_counts[name] = words(skill_text) for name, limit in SKILL_WORD_LIMITS.items(): @@ -160,15 +160,15 @@ def load_json(path: Path) -> object: package_words = sum(word_counts.values()) check(package_words <= PACKAGE_WORD_LIMIT, f"package prompt budget exceeded: {package_words} > {PACKAGE_WORD_LIMIT}") -sdd_root = SKILLS_ROOT / "gpt56-subagent-driven-development" +sdd_root = SKILLS_ROOT / "agentic-subagent-driven-development" for relative in ( "references/implementer-prompt.md", "references/reviewer-prompt.md", "scripts/sdd-tools.cjs", ): - check((sdd_root / relative).is_file(), f"missing gpt56-subagent-driven-development/{relative}") + check((sdd_root / relative).is_file(), f"missing agentic-subagent-driven-development/{relative}") -orchestration_root = SKILLS_ROOT / "gpt56-orchestrate-delivery" +orchestration_root = SKILLS_ROOT / "agentic-orchestrate-delivery" for relative in ( "references/lifecycle.md", "references/decision-and-escalation.md", @@ -179,12 +179,12 @@ def load_json(path: Path) -> object: "assets/worker-report.md", "assets/review-report.md", ): - check((orchestration_root / relative).is_file(), f"missing gpt56-orchestrate-delivery/{relative}") + check((orchestration_root / relative).is_file(), f"missing agentic-orchestrate-delivery/{relative}") -writing_plan_path = SKILLS_ROOT / "gpt56-writing-plans" / "SKILL.md" +writing_plan_path = SKILLS_ROOT / "agentic-writing-plans" / "SKILL.md" writing_plan_text = writing_plan_path.read_text(encoding="utf-8") if writing_plan_path.is_file() else "" for heading in ("## Delivery Contract", "## Define the delivery contract"): - check(heading in writing_plan_text, f"gpt56-writing-plans is missing stable heading: {heading}") + check(heading in writing_plan_text, f"agentic-writing-plans is missing stable heading: {heading}") delivery_patterns = { "cross-task closure outside numbered tasks": r"cross-task.{0,80}(?:closure|completion).{0,100}outside.{0,40}(?:numbered )?task", "last numbered task is a product result": r"final numbered task.{0,80}(?:acceptance-ready|product result)", @@ -199,14 +199,14 @@ def load_json(path: Path) -> object: for label, pattern in delivery_patterns.items(): check( re.search(pattern, writing_plan_text, flags=re.IGNORECASE | re.DOTALL) is not None, - f"gpt56-writing-plans delivery contract is missing {label}", + f"agentic-writing-plans delivery contract is missing {label}", ) implementer_path = sdd_root / "references" / "implementer-prompt.md" implementer_prompt = implementer_path.read_text(encoding="utf-8") if implementer_path.is_file() else "" check( re.search(r"worker rule.{0,80}not a global delivery\s+opt-out", implementer_prompt, re.DOTALL) is not None - and re.search(r"controller.{0,80}gpt56-git-delivery.{0,80}completion commit", implementer_prompt, re.DOTALL) + and re.search(r"controller.{0,80}agentic-git-delivery.{0,80}completion commit", implementer_prompt, re.DOTALL) is not None, "implementer prompt must preserve controller-owned completion delivery", ) diff --git a/skills/gpt56-debugging/SKILL.md b/skills/agentic-debugging/SKILL.md similarity index 97% rename from skills/gpt56-debugging/SKILL.md rename to skills/agentic-debugging/SKILL.md index 4eb8e89..b0f660c 100644 --- a/skills/gpt56-debugging/SKILL.md +++ b/skills/agentic-debugging/SKILL.md @@ -1,9 +1,9 @@ --- -name: gpt56-debugging +name: agentic-debugging description: Diagnose and resolve ambiguous, intermittent, environment-dependent, multi-component, high-impact, or still-unexplained failures. Use when the cause is not evident from direct inspection or one evidence-backed attempt. --- -# GPT-5.6 Debugging +# Agentic Debugging Find the earliest controllable cause of a non-obvious failure and prove that the original symptom changed. diff --git a/skills/gpt56-debugging/agents/openai.yaml b/skills/agentic-debugging/agents/openai.yaml similarity index 50% rename from skills/gpt56-debugging/agents/openai.yaml rename to skills/agentic-debugging/agents/openai.yaml index 3d6a127..0c28d92 100644 --- a/skills/gpt56-debugging/agents/openai.yaml +++ b/skills/agentic-debugging/agents/openai.yaml @@ -1,6 +1,6 @@ interface: - display_name: "GPT-5.6 Debugging" + display_name: "Agentic Debugging" short_description: "Investigate ambiguous or persistent failures" - default_prompt: "Use $gpt56-debugging to diagnose this failure from evidence." + default_prompt: "Use $agentic-debugging to diagnose this failure from evidence." policy: allow_implicit_invocation: true diff --git a/skills/gpt56-delegation-review/SKILL.md b/skills/agentic-delegation-review/SKILL.md similarity index 81% rename from skills/gpt56-delegation-review/SKILL.md rename to skills/agentic-delegation-review/SKILL.md index f11a4d2..eeca6b1 100644 --- a/skills/gpt56-delegation-review/SKILL.md +++ b/skills/agentic-delegation-review/SKILL.md @@ -1,16 +1,16 @@ --- -name: gpt56-delegation-review -description: Coordinate genuinely independent workstreams, or focused review requested by the user or likely to change a specific unresolved high-impact judgment. Use only when parallelism saves time or fresh judgment can change the result; risk labels alone are insufficient. Optimize GPT-5.6 Sol as controller and use cheaper workers only for bounded, independently checkable work. +name: agentic-delegation-review +description: Coordinate genuinely independent workstreams, or focused review requested by the user or likely to change a specific unresolved high-impact judgment. Use only when parallelism saves time or fresh judgment can change the result; risk labels alone are insufficient. Keep one accountable controller and use cheaper workers only for bounded, independently checkable work. --- -# GPT-5.6 Sol Delegation & Review +# Agentic Delegation & Review -Use additional agents or reviewers where independence creates real speed or decision value. Keep Sol accountable for decomposition, conflicts, consequential judgment, and final synthesis. +Use additional agents or reviewers where independence creates real speed or decision value. Keep the controller accountable for decomposition, conflicts, consequential judgment, and final synthesis. ## Choose the execution owner -- Keep ambiguous, tightly coupled, write-heavy, high-impact, or cross-domain work with Sol. -- When model routing is supported, prefer Terra for bounded read-heavy exploration, code mapping, log analysis, routine test execution, or supporting-document synthesis. +- Keep ambiguous, tightly coupled, write-heavy, high-impact, or cross-domain work with the controller. +- When model routing is supported, prefer a lower-cost capable model for bounded read-heavy exploration, code mapping, log analysis, routine test execution, or supporting-document synthesis. - Keep shared mutable state and overlapping edits with one owner. Parallelize writes only across clearly isolated artifacts with stable interfaces. - Do not override a user-pinned model or reasoning effort. If routing controls are unavailable, delegate without inventing a configuration. - Do not increase reasoning effort by default. Use stronger effort only when the assigned judgment actually requires it. diff --git a/skills/agentic-delegation-review/agents/openai.yaml b/skills/agentic-delegation-review/agents/openai.yaml new file mode 100644 index 0000000..8204446 --- /dev/null +++ b/skills/agentic-delegation-review/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "Agentic Delegation & Review" + short_description: "Delegate bounded work under controller ownership" + default_prompt: "Use $agentic-delegation-review to coordinate this independent work or focused review under accountable controller ownership." +policy: + allow_implicit_invocation: true diff --git a/skills/gpt56-design-planning/SKILL.md b/skills/agentic-design-planning/SKILL.md similarity index 90% rename from skills/gpt56-design-planning/SKILL.md rename to skills/agentic-design-planning/SKILL.md index 4351139..58a813f 100644 --- a/skills/gpt56-design-planning/SKILL.md +++ b/skills/agentic-design-planning/SKILL.md @@ -1,9 +1,9 @@ --- -name: gpt56-design-planning +name: agentic-design-planning description: Resolve material ambiguity in product behavior, UX, scope, architecture, interfaces, data flow, migrations, permissions, or sequencing. Use when plausible choices have consequential tradeoffs or completion cannot be defined safely from available context. --- -# GPT-5.6 Design & Planning +# Agentic Design & Planning Turn consequential ambiguity into an implementable direction. Clear local edits do not need this Skill. @@ -23,7 +23,7 @@ Turn consequential ambiguity into an implementable direction. Clear local edits Create a compact plan when work spans dependent deliverables, multiple owners, or a risky transition. Organize it by outcomes and dependencies, not tiny actions. Each step should identify the artifact or behavior it produces and the evidence that closes it. -Keep design planning at the level needed to settle the direction. When settled requirements need a durable file-level implementation plan, exact task interfaces, or downstream handoff, use `gpt56-writing-plans` rather than expanding the design process into microsteps. +Keep design planning at the level needed to settle the direction. When settled requirements need a durable file-level implementation plan, exact task interfaces, or downstream handoff, use `agentic-writing-plans` rather than expanding the design process into microsteps. For low-cost and reversible choices, state a reasonable assumption and proceed. Record durable decisions where the project expects them. diff --git a/skills/agentic-design-planning/agents/openai.yaml b/skills/agentic-design-planning/agents/openai.yaml new file mode 100644 index 0000000..1b12090 --- /dev/null +++ b/skills/agentic-design-planning/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "Agentic Design & Planning" + short_description: "Resolve material design and scope ambiguity" + default_prompt: "Use $agentic-design-planning to resolve the material design choices in this task." +policy: + allow_implicit_invocation: true diff --git a/skills/gpt56-git-delivery/SKILL.md b/skills/agentic-git-delivery/SKILL.md similarity index 97% rename from skills/gpt56-git-delivery/SKILL.md rename to skills/agentic-git-delivery/SKILL.md index 14e6097..9f44878 100644 --- a/skills/gpt56-git-delivery/SKILL.md +++ b/skills/agentic-git-delivery/SKILL.md @@ -1,9 +1,9 @@ --- -name: gpt56-git-delivery +name: agentic-git-delivery description: Handle atomic scoped commits and authorized Git delivery. Use for explicit Git operations and automatically after verified repository outcomes that should receive local commits. --- -# GPT-5.6 Git & Delivery +# Agentic Git & Delivery Deliver repository changes without losing user work or exceeding authority. diff --git a/skills/agentic-git-delivery/agents/openai.yaml b/skills/agentic-git-delivery/agents/openai.yaml new file mode 100644 index 0000000..bbe9e32 --- /dev/null +++ b/skills/agentic-git-delivery/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "Agentic Git & Delivery" + short_description: "Create atomic commits and handle Git delivery" + default_prompt: "Use $agentic-git-delivery to safely deliver verified repository outcomes at atomic commit boundaries and perform only authorized remote actions." +policy: + allow_implicit_invocation: true diff --git a/skills/gpt56-orchestrate-delivery/SKILL.md b/skills/agentic-orchestrate-delivery/SKILL.md similarity index 98% rename from skills/gpt56-orchestrate-delivery/SKILL.md rename to skills/agentic-orchestrate-delivery/SKILL.md index bb48f88..e2f12b8 100644 --- a/skills/gpt56-orchestrate-delivery/SKILL.md +++ b/skills/agentic-orchestrate-delivery/SKILL.md @@ -1,9 +1,9 @@ --- -name: gpt56-orchestrate-delivery +name: agentic-orchestrate-delivery description: Run a controller-led, evidence-gated software delivery workflow from current-state discovery through requirements, implementation planning, bounded subagent execution, independent review, real-path verification, user acceptance, documentation, and Git closure. Use when the user explicitly requests this standardized workflow or a long-running multi-module change needs durable cross-phase control. Exclude simple local edits, read-only analysis, ad hoc delegation, and work whose consequential requirements remain unavailable. --- -# GPT-5.6 Orchestrated Delivery +# Agentic Orchestrated Delivery Keep the main thread accountable for semantics, decomposition, shared interfaces, integration, evidence, and completion. Delegate bounded execution, never ownership of the whole outcome. diff --git a/skills/agentic-orchestrate-delivery/agents/openai.yaml b/skills/agentic-orchestrate-delivery/agents/openai.yaml new file mode 100644 index 0000000..3084e81 --- /dev/null +++ b/skills/agentic-orchestrate-delivery/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "Agentic Orchestrated Delivery" + short_description: "Run a controller-led evidence-gated delivery workflow" + default_prompt: "Use $agentic-orchestrate-delivery to run this development request through a controller-led delivery workflow." +policy: + allow_implicit_invocation: true diff --git a/skills/gpt56-orchestrate-delivery/assets/delivery-workbook.md b/skills/agentic-orchestrate-delivery/assets/delivery-workbook.md similarity index 100% rename from skills/gpt56-orchestrate-delivery/assets/delivery-workbook.md rename to skills/agentic-orchestrate-delivery/assets/delivery-workbook.md diff --git a/skills/gpt56-orchestrate-delivery/assets/review-report.md b/skills/agentic-orchestrate-delivery/assets/review-report.md similarity index 100% rename from skills/gpt56-orchestrate-delivery/assets/review-report.md rename to skills/agentic-orchestrate-delivery/assets/review-report.md diff --git a/skills/gpt56-orchestrate-delivery/assets/task-brief.md b/skills/agentic-orchestrate-delivery/assets/task-brief.md similarity index 100% rename from skills/gpt56-orchestrate-delivery/assets/task-brief.md rename to skills/agentic-orchestrate-delivery/assets/task-brief.md diff --git a/skills/gpt56-orchestrate-delivery/assets/worker-report.md b/skills/agentic-orchestrate-delivery/assets/worker-report.md similarity index 100% rename from skills/gpt56-orchestrate-delivery/assets/worker-report.md rename to skills/agentic-orchestrate-delivery/assets/worker-report.md diff --git a/skills/gpt56-orchestrate-delivery/references/decision-and-escalation.md b/skills/agentic-orchestrate-delivery/references/decision-and-escalation.md similarity index 100% rename from skills/gpt56-orchestrate-delivery/references/decision-and-escalation.md rename to skills/agentic-orchestrate-delivery/references/decision-and-escalation.md diff --git a/skills/gpt56-orchestrate-delivery/references/evidence-and-closure.md b/skills/agentic-orchestrate-delivery/references/evidence-and-closure.md similarity index 100% rename from skills/gpt56-orchestrate-delivery/references/evidence-and-closure.md rename to skills/agentic-orchestrate-delivery/references/evidence-and-closure.md diff --git a/skills/gpt56-orchestrate-delivery/references/lifecycle.md b/skills/agentic-orchestrate-delivery/references/lifecycle.md similarity index 100% rename from skills/gpt56-orchestrate-delivery/references/lifecycle.md rename to skills/agentic-orchestrate-delivery/references/lifecycle.md diff --git a/skills/gpt56-orchestrate-delivery/references/role-contracts.md b/skills/agentic-orchestrate-delivery/references/role-contracts.md similarity index 100% rename from skills/gpt56-orchestrate-delivery/references/role-contracts.md rename to skills/agentic-orchestrate-delivery/references/role-contracts.md diff --git a/skills/gpt56-purpose-bound-rigor/SKILL.md b/skills/agentic-purpose-bound-rigor/SKILL.md similarity index 97% rename from skills/gpt56-purpose-bound-rigor/SKILL.md rename to skills/agentic-purpose-bound-rigor/SKILL.md index 969081f..366d62d 100644 --- a/skills/gpt56-purpose-bound-rigor/SKILL.md +++ b/skills/agentic-purpose-bound-rigor/SKILL.md @@ -1,9 +1,9 @@ --- -name: gpt56-purpose-bound-rigor +name: agentic-purpose-bound-rigor description: Prevent unjustified workflow defenses during software delivery. Use when an implementation, review, or plan proposes hashes, gates, isolation, fixtures, mocks, freezes, repeated reviews, broad reruns, environment re-probing, or extra coordination whose necessity is not already established. Do not invoke for ordinary direct work with no proposed process expansion. --- -# GPT-5.6 Purpose-Bound Rigor +# Agentic Purpose-Bound Rigor Keep rigor proportional to observed risk. Do not weaken real safety boundaries; stop workflow ceremony from becoming a substitute for delivery. diff --git a/skills/agentic-purpose-bound-rigor/agents/openai.yaml b/skills/agentic-purpose-bound-rigor/agents/openai.yaml new file mode 100644 index 0000000..e5077e0 --- /dev/null +++ b/skills/agentic-purpose-bound-rigor/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "Agentic Purpose-Bound Rigor" + short_description: "Require evidence before adding workflow defenses" + default_prompt: "Use $agentic-purpose-bound-rigor to keep this implementation proportionate and evidence-driven." +policy: + allow_implicit_invocation: true diff --git a/skills/gpt56-subagent-driven-development/SKILL.md b/skills/agentic-subagent-driven-development/SKILL.md similarity index 60% rename from skills/gpt56-subagent-driven-development/SKILL.md rename to skills/agentic-subagent-driven-development/SKILL.md index 2088e44..b196556 100644 --- a/skills/gpt56-subagent-driven-development/SKILL.md +++ b/skills/agentic-subagent-driven-development/SKILL.md @@ -1,19 +1,19 @@ --- -name: gpt56-subagent-driven-development -description: Execute an implementation-ready plan through bounded Codex subagents under GPT-5.6 Sol control. Use when a plan has at least two independently ownable outcomes and context isolation, parallel read work, or specialized implementation materially improves speed or quality. Exclude simple tasks, unresolved designs, tightly coupled edits, overlapping file ownership, and delegation whose coordination cost exceeds its benefit. +name: agentic-subagent-driven-development +description: Execute an implementation-ready plan through bounded coding subagents under controller ownership. Use when a plan has at least two independently ownable outcomes and context isolation, parallel read work, or specialized implementation improves speed or quality. Exclude simple tasks, unresolved designs, tightly coupled edits, overlapping file ownership, and delegation whose coordination cost exceeds its benefit. --- -# GPT-5.6 Sol Subagent Development +# Agentic Subagent Development -Keep Sol accountable for the contract, decomposition, integration, and final evidence. Delegate bounded outcomes, not responsibility for the whole result. +Keep the controller accountable for the contract, decomposition, integration, and final evidence. Delegate bounded outcomes, not responsibility for the whole result. ## Preflight the plan 1. Read the complete plan and repository instructions. 2. Resolve contradictory tasks, missing interfaces, unstable ownership, or plan-required defects before dispatch. -3. Use `gpt56-writing-plans` when the input is not implementation-ready. Use `gpt56-design-planning` when a consequential choice remains open. -4. Use `gpt56-using-git-worktrees` only when isolation is requested or materially useful; it is not a mandatory ceremony. -5. Assign one owner to each mutable file or shared state boundary. Keep cross-cutting architecture, integration decisions, and final synthesis with Sol. +3. Use `agentic-writing-plans` when the input is not implementation-ready. Use `agentic-design-planning` when a consequential choice remains open. +4. Use `agentic-using-git-worktrees` only when isolation is requested or materially useful; it is not a mandatory ceremony. +5. Assign one owner to each mutable file or shared state boundary. Keep cross-cutting architecture, integration decisions, and final synthesis with the controller. Default to sequential implementation when agents share a checkout. Parallelize read-only investigations freely when independent; parallelize writes only across disjoint artifacts with stable interfaces. @@ -27,7 +27,7 @@ node scripts/sdd-tools.cjs brief PLAN_FILE TASK_NUMBER node scripts/sdd-tools.cjs review-package PLAN_FILE BASE_SHA HEAD_SHA ``` -The helper stores ignored, plan-scoped briefs, reports, progress, and diff packages under `.gpt56/sdd//`. If Node is unavailable, keep the same contracts with available file tools; do not block a short run merely to recreate the helper. +The helper stores ignored, plan-scoped briefs, reports, progress, and diff packages under `.agentic/sdd//`. If Node is unavailable, keep the same contracts with available file tools; do not block a short run merely to recreate the helper. Create `progress.md` with the plan path, source revision, task status, agent identity, owned paths, commits if any, validation evidence, concerns, and deferred findings. Trust the ledger and Git history after compaction; never redispatch a task already recorded complete without evidence that its result was lost. @@ -38,8 +38,8 @@ Use [references/implementer-prompt.md](references/implementer-prompt.md) when as - Give the outcome, task brief, owned paths, stable interfaces, global constraints, relevant context, evidence contract, and report path. - Use fresh or task-local context. Do not paste the whole session or accumulated task transcripts. - Tell every writing agent that it is not alone in the codebase, must not revert others, and must stay within assigned ownership. -- Prefer Terra for bounded, well-specified routine implementation when routing is available. Keep ambiguous, multi-component, high-impact, or integration-heavy work on Sol. Respect user-pinned models and available tool schemas. -- Do not require a worker commit unless commit ownership is explicitly assigned. The controller or `gpt56-git-delivery` normally owns the atomic commit after each accepted task boundary. +- Prefer a lower-cost capable model for bounded, well-specified routine implementation when routing is available. Keep ambiguous, multi-component, high-impact, or integration-heavy work on the controller. Respect user-pinned models and available tool schemas. +- Do not require a worker commit unless commit ownership is explicitly assigned. The controller or `agentic-git-delivery` normally owns the atomic commit after each accepted task boundary. Require one status: @@ -54,7 +54,7 @@ If a worker is blocked, change the missing context, task boundary, model capabil After every writing task, inspect the diff and evidence before acceptance. When the approved Plan defines a commit boundary, commit it before dependent tasks. Resolve shared-interface mismatches first. -Do not force an independent reviewer after every task. Use `gpt56-delegation-review` when the user requests review or a specific unresolved high-impact judgment can realistically change the result. For a review, generate a diff package and use [references/reviewer-prompt.md](references/reviewer-prompt.md). +Do not force an independent reviewer after every task. Use `agentic-delegation-review` when the user requests review or a specific unresolved high-impact judgment can realistically change the result. For a review, generate a diff package and use [references/reviewer-prompt.md](references/reviewer-prompt.md). A multi-agent write run normally earns one integrated final review when: @@ -62,14 +62,14 @@ A multi-agent write run normally earns one integrated final review when: - interfaces, auth, concurrency, migrations, or shared state cross task boundaries; - task-local evidence cannot support the whole-branch claim. -For review findings, resume the original implementer when its context remains useful. After two unsuccessful delegated fix rounds, stop the loop: Sol diagnoses whether the issue is wrong context, a plan defect, a coupled change, or insufficient capability, then chooses a coherent fix or escalates. Never create an unbounded review-fix cycle. +For review findings, resume the original implementer when its context remains useful. After two unsuccessful delegated fix rounds, stop the loop: the controller diagnoses whether the issue is wrong context, a plan defect, a coupled change, or insufficient capability, then chooses a coherent fix or escalates. Never create an unbounded review-fix cycle. ## Complete the outcome 1. Reconcile task outputs against the plan, global constraints, and current repository state. 2. Run focused checks during tasks and the integration-level checks required by the final claim. -3. Use `gpt56-verification` when the evidence strategy remains materially uncertain. +3. Use `agentic-verification` when the evidence strategy remains materially uncertain. 4. Resolve or explicitly report every concern, blocked item, and deferred finding. -5. Use `gpt56-git-delivery` for each approved atomic completion commit and any authorized delivery or cleanup. +5. Use `agentic-git-delivery` for each approved atomic completion commit and any authorized delivery or cleanup. Report the integrated result, decisive evidence, material findings changed by review, and remaining gaps. Do not return a transcript of agent activity. diff --git a/skills/agentic-subagent-driven-development/agents/openai.yaml b/skills/agentic-subagent-driven-development/agents/openai.yaml new file mode 100644 index 0000000..fcc58b6 --- /dev/null +++ b/skills/agentic-subagent-driven-development/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "Agentic Subagent Development" + short_description: "Execute suitable plans under controller ownership" + default_prompt: "Use $agentic-subagent-driven-development to execute this suitable plan with bounded subagents under accountable controller ownership." +policy: + allow_implicit_invocation: true diff --git a/skills/gpt56-subagent-driven-development/references/implementer-prompt.md b/skills/agentic-subagent-driven-development/references/implementer-prompt.md similarity index 94% rename from skills/gpt56-subagent-driven-development/references/implementer-prompt.md rename to skills/agentic-subagent-driven-development/references/implementer-prompt.md index 26190e7..9585702 100644 --- a/skills/gpt56-subagent-driven-development/references/implementer-prompt.md +++ b/skills/agentic-subagent-driven-development/references/implementer-prompt.md @@ -27,7 +27,7 @@ or compatibility decision. Ask for the missing decision or return NEEDS_CONTEXT. Follow existing project patterns. Do not commit unless commit ownership is explicitly assigned. This worker rule is not a global delivery opt-out: after integration and completion, the controller uses -gpt56-git-delivery for the approved atomic completion commit at each accepted +agentic-git-delivery for the approved atomic completion commit at each accepted task boundary. Write the detailed report to [REPORT_FILE]: diff --git a/skills/gpt56-subagent-driven-development/references/reviewer-prompt.md b/skills/agentic-subagent-driven-development/references/reviewer-prompt.md similarity index 100% rename from skills/gpt56-subagent-driven-development/references/reviewer-prompt.md rename to skills/agentic-subagent-driven-development/references/reviewer-prompt.md diff --git a/skills/gpt56-subagent-driven-development/scripts/sdd-tools.cjs b/skills/agentic-subagent-driven-development/scripts/sdd-tools.cjs similarity index 98% rename from skills/gpt56-subagent-driven-development/scripts/sdd-tools.cjs rename to skills/agentic-subagent-driven-development/scripts/sdd-tools.cjs index 605c34e..0ea0b34 100644 --- a/skills/gpt56-subagent-driven-development/scripts/sdd-tools.cjs +++ b/skills/agentic-subagent-driven-development/scripts/sdd-tools.cjs @@ -36,7 +36,7 @@ function workspaceFor(plan) { const raw = path.basename(plan, path.extname(plan)); const slug = raw.replace(/[^A-Za-z0-9._-]+/g, "-").replace(/^-+|-+$/g, ""); if (!slug || slug === "." || slug === "..") fail(`cannot derive plan name: ${plan}`); - const base = path.join(root, ".gpt56", "sdd"); + const base = path.join(root, ".agentic", "sdd"); const workspace = path.join(base, slug); fs.mkdirSync(workspace, { recursive: true }); fs.writeFileSync(path.join(base, ".gitignore"), "*\n", "utf8"); diff --git a/skills/gpt56-superpowers/SKILL.md b/skills/agentic-superpowers/SKILL.md similarity index 82% rename from skills/gpt56-superpowers/SKILL.md rename to skills/agentic-superpowers/SKILL.md index c9921bc..0f0dbe6 100644 --- a/skills/gpt56-superpowers/SKILL.md +++ b/skills/agentic-superpowers/SKILL.md @@ -1,11 +1,11 @@ --- -name: gpt56-superpowers -description: Coordinate requests that require two or more material decision domains whose ordering or synthesis affects success. Optimized for GPT-5.6 Sol by using direct reasoning first and adding planning, delegation, review, or other process only when it changes the outcome. Exclude routine diagnose-change-check loops, one clear edit, and standalone narrow tasks. +name: agentic-superpowers +description: Coordinate requests that require two or more material decision domains whose ordering or synthesis affects success. Use direct reasoning first and add planning, delegation, review, or other process only when it changes the outcome. Exclude routine diagnose-change-check loops, one clear edit, and standalone narrow tasks. --- -# GPT-5.6 Sol Superpowers +# Agentic Superpowers -Use Sol as the accountable controller. Maintain the contract, make coherent cross-domain decisions, and own synthesis and completion. Add process only to prevent a specific likely failure. +Use one accountable controller to maintain the contract, make coherent cross-domain decisions, and own synthesis and completion. Add process only to prevent a specific likely failure. ## Establish the contract @@ -20,7 +20,7 @@ Resolve these from the request and available evidence before acting: Inspect context before asking. Infer low-cost, reversible choices and proceed. Ask only when a missing choice would materially change the result and cannot be inferred safely. -## Use Sol's capability directly +## Use the controller's capability directly - Execute bounded, reversible work directly. Do not manufacture phases, reviews, or agents for a simple task. - Express plans through outcomes, dependencies, and closing evidence rather than tiny actions or prescribed reasoning. @@ -38,7 +38,7 @@ Inspect context before asking. Infer low-cost, reversible choices and proceed. A 5. Ground choices in project evidence, preserve unrelated user changes, and implement the smallest coherent result. 6. Synthesize outcomes across phases before claiming completion. -The sibling Skills own material design ambiguity, implementation-ready plans, justified worktree isolation, suitable plan execution through subagents, non-obvious debugging, proportionate verification, focused delegation or review, and Git delivery. Use `gpt56-writing-plans` after requirements settle; use `gpt56-subagent-driven-development` only when that plan contains independently ownable outcomes. A narrow task can invoke one sibling directly without this core. +The sibling Skills own material design ambiguity, implementation-ready plans, justified worktree isolation, suitable plan execution through subagents, non-obvious debugging, proportionate verification, focused delegation or review, and Git delivery. Use `agentic-writing-plans` after requirements settle; use `agentic-subagent-driven-development` only when that plan contains independently ownable outcomes. A narrow task can invoke one sibling directly without this core. ## Permission and completion diff --git a/skills/agentic-superpowers/agents/openai.yaml b/skills/agentic-superpowers/agents/openai.yaml new file mode 100644 index 0000000..e592261 --- /dev/null +++ b/skills/agentic-superpowers/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "Agentic Superpowers" + short_description: "Adaptive orchestration for complex agent tasks" + default_prompt: "Use $agentic-superpowers to coordinate this complex outcome with accountable controller-led execution and only the process that materially improves it." +policy: + allow_implicit_invocation: true diff --git a/skills/gpt56-using-git-worktrees/SKILL.md b/skills/agentic-using-git-worktrees/SKILL.md similarity index 93% rename from skills/gpt56-using-git-worktrees/SKILL.md rename to skills/agentic-using-git-worktrees/SKILL.md index 75c41aa..1aa3a9e 100644 --- a/skills/gpt56-using-git-worktrees/SKILL.md +++ b/skills/agentic-using-git-worktrees/SKILL.md @@ -1,9 +1,9 @@ --- -name: gpt56-using-git-worktrees +name: agentic-using-git-worktrees description: Prepare or verify safe Git worktree isolation for local repository work. Use when the user requests a worktree, concurrent tasks need separate branches, the current checkout contains conflicting user changes, or long-lived or risky implementation benefits from isolation. Exclude ordinary edits already safe in the current checkout and tasks already running in an isolated worktree. --- -# GPT-5.6 Worktree Isolation +# Agentic Worktree Isolation Create only the isolation the task needs. Detect the current state first, prefer Codex-native worktree controls, and preserve user changes. @@ -61,4 +61,4 @@ Report: - setup and baseline evidence; - any limitation affecting later cleanup. -Let `gpt56-git-delivery` own atomic completion commits and any safe cleanup. Worktree creation never authorizes push, merge, branch deletion, or removal of another worktree. +Let `agentic-git-delivery` own atomic completion commits and any safe cleanup. Worktree creation never authorizes push, merge, branch deletion, or removal of another worktree. diff --git a/skills/agentic-using-git-worktrees/agents/openai.yaml b/skills/agentic-using-git-worktrees/agents/openai.yaml new file mode 100644 index 0000000..af5ff03 --- /dev/null +++ b/skills/agentic-using-git-worktrees/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "Agentic Worktree Isolation" + short_description: "Create safe local Git worktree isolation" + default_prompt: "Use $agentic-using-git-worktrees to prepare safe isolation for this repository task." +policy: + allow_implicit_invocation: true diff --git a/skills/gpt56-verification/SKILL.md b/skills/agentic-verification/SKILL.md similarity index 97% rename from skills/gpt56-verification/SKILL.md rename to skills/agentic-verification/SKILL.md index dbeed0b..af4bd8f 100644 --- a/skills/gpt56-verification/SKILL.md +++ b/skills/agentic-verification/SKILL.md @@ -1,9 +1,9 @@ --- -name: gpt56-verification +name: agentic-verification description: Choose proportionate evidence when validation strategy is the task, a material claim spans evidence layers, release gates are unclear, or validation remains uncertain after primary work. Do not invoke for a routine targeted check. --- -# GPT-5.6 Verification +# Agentic Verification Match each material completion claim to the cheapest evidence capable of disproving it. diff --git a/skills/agentic-verification/agents/openai.yaml b/skills/agentic-verification/agents/openai.yaml new file mode 100644 index 0000000..09fc136 --- /dev/null +++ b/skills/agentic-verification/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "Agentic Verification" + short_description: "Choose evidence for unclear validation" + default_prompt: "Use $agentic-verification to select proportionate evidence for this change." +policy: + allow_implicit_invocation: true diff --git a/skills/gpt56-writing-plans/SKILL.md b/skills/agentic-writing-plans/SKILL.md similarity index 80% rename from skills/gpt56-writing-plans/SKILL.md rename to skills/agentic-writing-plans/SKILL.md index a33259a..5fe2c05 100644 --- a/skills/gpt56-writing-plans/SKILL.md +++ b/skills/agentic-writing-plans/SKILL.md @@ -1,11 +1,11 @@ --- -name: gpt56-writing-plans -description: Establish a reusable Spec → Plan → Implementation workflow and turn an approved spec or settled requirements into implementation-ready plans for multi-step repository changes. Use before coding when work spans dependent deliverables, files or interfaces, migrations, or bounded-agent handoff. Exclude single clear edits, unresolved consequential design, and speculative planning without repository evidence. +name: agentic-writing-plans +description: Establish a Spec → Plan → Implementation workflow and turn an approved spec or settled requirements into implementation-ready plans for multi-step repository changes. Use before coding when work spans dependent deliverables, files or interfaces, migrations, or bounded-agent handoff. Exclude single clear edits, unresolved consequential design, and speculative planning without repository evidence. --- -# GPT-5.6 Writing Plans +# Agentic Writing Plans -Create an executable authority chain without rediscovering requirements. Plan outcomes and interfaces, not reasoning. +Create an authority chain without rediscovering requirements. Plan outcomes and interfaces, not reasoning. ## Apply the lifecycle @@ -14,10 +14,10 @@ Approved Spec → Implementation Plan(s) → Implementation → Integration evid ``` 1. **Scope:** Skip this workflow for one clear, local, reversible edit. -2. **Spec:** When material product, architecture, interface, migration, or failure semantics remain open, use `gpt56-design-planning` first. Save accepted direction at the project’s Spec location or `docs/specs/YYYY-MM-DD-.md`. +2. **Spec:** When material product, architecture, interface, migration, or failure semantics remain open, use `agentic-design-planning` first. Save accepted direction at the project’s Spec location or `docs/specs/YYYY-MM-DD-.md`. 3. **Authority:** The approved Spec owns goals, non-goals, behavior, domain boundaries, state/data rules, failure/compatibility behavior, and acceptance semantics. Plans link its sections instead of duplicating them. 4. **Plan:** Start only after Spec approval or otherwise settled requirements. Split independently shippable/testable subsystems, then state dependency order and shared-file ownership. -5. **Execution:** Sol owns contracts, shared interfaces, integration, and final evidence. Delegate bounded tasks with stable inputs and disjoint ownership. Each independently acceptable task is a default atomic commit boundary: verify and commit it before dependent work. Parallelize only after interfaces stabilize. +5. **Execution:** the controller owns contracts, shared interfaces, integration, and final evidence. Delegate bounded tasks with stable inputs and disjoint ownership. Each independently acceptable task is a default atomic commit boundary: verify and commit it before dependent work. Parallelize only after interfaces stabilize. 6. **Feedback:** Correct Plan facts and task defects. Semantic changes require Spec re-approval before dependent work. ## Ground and classify @@ -113,4 +113,4 @@ Before finishing: 5. Confirm the Delivery Contract remains outside numbered tasks and covers trigger, Plan baseline, commit map, ownership, topology, evidence, remote boundary, and per-boundary no-commit states. 6. Record sequential Plan order and safe parallel boundaries. -Keep coupled work with Sol. Use subagents for bounded ownership or useful parallelism and worktrees only when justified. Report Plan locations, execution shape, and blockers. +Keep coupled work with the controller. Use subagents for bounded ownership or useful parallelism and worktrees only when justified. Report Plan locations, execution shape, and blockers. diff --git a/skills/agentic-writing-plans/agents/openai.yaml b/skills/agentic-writing-plans/agents/openai.yaml new file mode 100644 index 0000000..234c372 --- /dev/null +++ b/skills/agentic-writing-plans/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "Agentic Writing Plans" + short_description: "Turn approved specs into executable plans" + default_prompt: "Use $agentic-writing-plans to turn this approved Spec into ordered, implementation-ready Plans with atomic commit boundaries and a controller-owned execution handoff." +policy: + allow_implicit_invocation: true diff --git a/skills/gpt56-delegation-review/agents/openai.yaml b/skills/gpt56-delegation-review/agents/openai.yaml deleted file mode 100644 index f77c52a..0000000 --- a/skills/gpt56-delegation-review/agents/openai.yaml +++ /dev/null @@ -1,6 +0,0 @@ -interface: - display_name: "GPT-5.6 Sol Delegation & Review" - short_description: "Delegate bounded work under Sol control" - default_prompt: "Use $gpt56-delegation-review to coordinate this independent work or focused review under Sol control." -policy: - allow_implicit_invocation: true diff --git a/skills/gpt56-design-planning/agents/openai.yaml b/skills/gpt56-design-planning/agents/openai.yaml deleted file mode 100644 index 00f4241..0000000 --- a/skills/gpt56-design-planning/agents/openai.yaml +++ /dev/null @@ -1,6 +0,0 @@ -interface: - display_name: "GPT-5.6 Design & Planning" - short_description: "Resolve material design and scope ambiguity" - default_prompt: "Use $gpt56-design-planning to resolve the material design choices in this task." -policy: - allow_implicit_invocation: true diff --git a/skills/gpt56-git-delivery/agents/openai.yaml b/skills/gpt56-git-delivery/agents/openai.yaml deleted file mode 100644 index c46ab71..0000000 --- a/skills/gpt56-git-delivery/agents/openai.yaml +++ /dev/null @@ -1,6 +0,0 @@ -interface: - display_name: "GPT-5.6 Git & Delivery" - short_description: "Create atomic commits and handle Git delivery" - default_prompt: "Use $gpt56-git-delivery to safely deliver verified repository outcomes at atomic commit boundaries and perform only authorized remote actions." -policy: - allow_implicit_invocation: true diff --git a/skills/gpt56-orchestrate-delivery/agents/openai.yaml b/skills/gpt56-orchestrate-delivery/agents/openai.yaml deleted file mode 100644 index 0f14c30..0000000 --- a/skills/gpt56-orchestrate-delivery/agents/openai.yaml +++ /dev/null @@ -1,6 +0,0 @@ -interface: - display_name: "GPT-5.6 Orchestrated Delivery" - short_description: "Run a controller-led evidence-gated delivery workflow" - default_prompt: "Use $gpt56-orchestrate-delivery to run this development request through a controller-led delivery workflow." -policy: - allow_implicit_invocation: true diff --git a/skills/gpt56-purpose-bound-rigor/agents/openai.yaml b/skills/gpt56-purpose-bound-rigor/agents/openai.yaml deleted file mode 100644 index 8906187..0000000 --- a/skills/gpt56-purpose-bound-rigor/agents/openai.yaml +++ /dev/null @@ -1,6 +0,0 @@ -interface: - display_name: "GPT-5.6 Purpose-Bound Rigor" - short_description: "Require evidence before adding workflow defenses" - default_prompt: "Use $gpt56-purpose-bound-rigor to keep this implementation proportionate and evidence-driven." -policy: - allow_implicit_invocation: true diff --git a/skills/gpt56-subagent-driven-development/agents/openai.yaml b/skills/gpt56-subagent-driven-development/agents/openai.yaml deleted file mode 100644 index 4204304..0000000 --- a/skills/gpt56-subagent-driven-development/agents/openai.yaml +++ /dev/null @@ -1,6 +0,0 @@ -interface: - display_name: "GPT-5.6 Subagent Development" - short_description: "Execute suitable plans under Sol control" - default_prompt: "Use $gpt56-subagent-driven-development to execute this suitable plan with bounded subagents under Sol control." -policy: - allow_implicit_invocation: true diff --git a/skills/gpt56-superpowers/agents/openai.yaml b/skills/gpt56-superpowers/agents/openai.yaml deleted file mode 100644 index 841fae5..0000000 --- a/skills/gpt56-superpowers/agents/openai.yaml +++ /dev/null @@ -1,6 +0,0 @@ -interface: - display_name: "GPT-5.6 Sol Superpowers" - short_description: "Adaptive orchestration for complex Sol tasks" - default_prompt: "Use $gpt56-superpowers to coordinate this complex outcome with Sol-led execution and only the process that materially improves it." -policy: - allow_implicit_invocation: true diff --git a/skills/gpt56-using-git-worktrees/agents/openai.yaml b/skills/gpt56-using-git-worktrees/agents/openai.yaml deleted file mode 100644 index 2b12f51..0000000 --- a/skills/gpt56-using-git-worktrees/agents/openai.yaml +++ /dev/null @@ -1,6 +0,0 @@ -interface: - display_name: "GPT-5.6 Worktree Isolation" - short_description: "Create safe local Git worktree isolation" - default_prompt: "Use $gpt56-using-git-worktrees to prepare safe isolation for this repository task." -policy: - allow_implicit_invocation: true diff --git a/skills/gpt56-verification/agents/openai.yaml b/skills/gpt56-verification/agents/openai.yaml deleted file mode 100644 index 4cdb001..0000000 --- a/skills/gpt56-verification/agents/openai.yaml +++ /dev/null @@ -1,6 +0,0 @@ -interface: - display_name: "GPT-5.6 Verification" - short_description: "Choose evidence for unclear validation" - default_prompt: "Use $gpt56-verification to select proportionate evidence for this change." -policy: - allow_implicit_invocation: true diff --git a/skills/gpt56-writing-plans/agents/openai.yaml b/skills/gpt56-writing-plans/agents/openai.yaml deleted file mode 100644 index dbb2800..0000000 --- a/skills/gpt56-writing-plans/agents/openai.yaml +++ /dev/null @@ -1,6 +0,0 @@ -interface: - display_name: "GPT-5.6 Writing Plans" - short_description: "Turn approved specs into executable plans" - default_prompt: "Use $gpt56-writing-plans to turn this approved Spec into ordered, implementation-ready Plans with atomic commit boundaries and a Sol-controlled execution handoff." -policy: - allow_implicit_invocation: true diff --git a/tests/scenarios.json b/tests/scenarios.json index 64449c9..2f70c64 100644 --- a/tests/scenarios.json +++ b/tests/scenarios.json @@ -13,7 +13,7 @@ "id": "clear-static-edit", "prompt": "Correct this clear documentation link and the matching static configuration key.", "expected": { - "skills": ["gpt56-git-delivery"], + "skills": ["agentic-git-delivery"], "approval": false, "local_commit": true, "evidence": ["diff inspection", "relevant format and link checks", "scoped local commit"] @@ -23,7 +23,7 @@ "id": "material-design", "prompt": "Design a backward-compatible public API and migration path where three plausible data models have different failure semantics.", "expected": { - "skills": ["gpt56-design-planning"], + "skills": ["agentic-design-planning"], "approval": false, "local_commit": false, "evidence": ["chosen tradeoff", "interfaces and migration boundaries", "acceptance conditions"] @@ -33,7 +33,7 @@ "id": "ambiguous-failure", "prompt": "Diagnose and fix an intermittent timeout that appears only when two services and a proxy are involved.", "expected": { - "skills": ["gpt56-debugging", "gpt56-git-delivery"], + "skills": ["agentic-debugging", "agentic-git-delivery"], "approval": false, "local_commit": true, "evidence": ["first divergent boundary", "original symptom rechecked", "scoped local commit"] @@ -43,7 +43,7 @@ "id": "claim-evidence", "prompt": "Determine the minimum reliable completion evidence for this visual behavior fix and release-readiness claim.", "expected": { - "skills": ["gpt56-verification"], + "skills": ["agentic-verification"], "approval": false, "local_commit": false, "evidence": ["rendered affected states", "project-required release gates"] @@ -53,7 +53,7 @@ "id": "purpose-bound-rigor", "prompt": "Before implementing this local UI change, add hashes, an isolated fixture, a mock acceptance gate, and a reviewer after every commit just to be safe.", "expected": { - "skills": ["gpt56-purpose-bound-rigor"], + "skills": ["agentic-purpose-bound-rigor"], "approval": false, "local_commit": false, "evidence": ["necessity case for each proposed defense", "rejection of controls without observed risk or an existing gap", "direct local implementation path"] @@ -63,7 +63,7 @@ "id": "parallel-review", "prompt": "Investigate three independent modules in parallel and obtain a focused independent review of the authentication boundary.", "expected": { - "skills": ["gpt56-delegation-review"], + "skills": ["agentic-delegation-review"], "approval": false, "local_commit": false, "evidence": ["integrated findings", "evidence-backed security review"] @@ -73,7 +73,7 @@ "id": "git-delivery", "prompt": "Create a branch, commit the scoped changes, push them, and open a pull request. Do not rewrite remote history.", "expected": { - "skills": ["gpt56-git-delivery"], + "skills": ["agentic-git-delivery"], "approval": false, "local_commit": true, "evidence": ["staged diff", "commit and remote pull-request state"] @@ -83,7 +83,7 @@ "id": "multi-phase", "prompt": "Implement a cross-module data migration end to end, resolve the architecture tradeoff, and prove affected behavior and integration readiness.", "expected": { - "skills": ["gpt56-superpowers", "gpt56-design-planning", "gpt56-verification"], + "skills": ["agentic-superpowers", "agentic-design-planning", "agentic-verification"], "approval": false, "local_commit": true, "evidence": ["dependency-aware synthesis", "accepted architecture", "claim-matched checks", "scoped local commit"] @@ -93,7 +93,7 @@ "id": "explicit-no-commit", "prompt": "Fix this configuration bug and verify it, but leave the completed changes uncommitted.", "expected": { - "skills": ["gpt56-git-delivery"], + "skills": ["agentic-git-delivery"], "approval": false, "local_commit": false, "evidence": ["verified diff", "working tree remains uncommitted"] @@ -101,9 +101,9 @@ }, { "id": "implementation-plan", - "prompt": "An approved Spec settles the product and architecture decisions. Inspect the repository, split independently shippable subsystems into ordered implementation-ready Plans, and define the Sol-controlled execution handoff without inventing paths or interfaces.", + "prompt": "An approved Spec settles the product and architecture decisions. Inspect the repository, split independently shippable subsystems into ordered implementation-ready Plans, and define the controller-owned execution handoff without inventing paths or interfaces.", "expected": { - "skills": ["gpt56-writing-plans"], + "skills": ["agentic-writing-plans"], "approval": false, "local_commit": false, "evidence": ["approved Spec linked as the unique semantic authority", "provided, observed, proposed, and unresolved facts separated", "cross-Plan order and file/interface ownership", "task-level acceptance evidence and execution routing"] @@ -113,7 +113,7 @@ "id": "worktree-isolation", "prompt": "Create a safe worktree for this long-lived change while preserving the dirty source checkout. Do not push or merge anything.", "expected": { - "skills": ["gpt56-using-git-worktrees"], + "skills": ["agentic-using-git-worktrees"], "approval": false, "local_commit": false, "evidence": ["resolved Git state", "safe worktree path and branch", "preserved source changes", "baseline result"] @@ -123,7 +123,7 @@ "id": "subagent-plan-execution", "prompt": "Execute this implementation-ready plan whose three outcomes have disjoint file ownership. Use bounded subagents, integrate their changes, verify each accepted outcome, and commit it before dependent work.", "expected": { - "skills": ["gpt56-subagent-driven-development", "gpt56-git-delivery"], + "skills": ["agentic-subagent-driven-development", "agentic-git-delivery"], "approval": false, "local_commit": true, "evidence": ["bounded ownership", "durable task state", "integrated diff and evidence", "atomic commits at accepted task boundaries"] @@ -133,7 +133,7 @@ "id": "orchestrated-delivery", "prompt": "Use the standardized controller-led workflow for this long-running multi-module feature. Keep requirements and integration in the main thread, delegate bounded implementation, obtain independent review, verify the real user path, record user acceptance separately, update documentation, and close child and parent Git boundaries.", "expected": { - "skills": ["gpt56-orchestrate-delivery"], + "skills": ["agentic-orchestrate-delivery"], "approval": false, "local_commit": true, "evidence": ["current truth and classified decisions", "bounded role ownership", "independent review disposition", "engineering verification and separate user acceptance", "documentation and child-before-parent Git closure"] diff --git a/tests/test-global-runtime.py b/tests/test-global-runtime.py index fe77606..c56cadd 100644 --- a/tests/test-global-runtime.py +++ b/tests/test-global-runtime.py @@ -68,6 +68,45 @@ def test_unmanaged_agent_is_not_replaced(self) -> None: self.assertEqual(target.read_text(encoding="utf-8"), 'name = "personal"\n') self.assertFalse((self.codex_home / "AGENTS.md").exists()) + def test_legacy_runtime_is_migrated_and_restored_exactly(self) -> None: + self.codex_home.mkdir() + guidance = self.codex_home / "AGENTS.md" + legacy_block = ( + f"{RUNTIME.LEGACY_START}\n" + "- Keep the old managed rule.\n" + f"{RUNTIME.LEGACY_END}" + ) + original_guidance = f"# Personal rules\n\n{legacy_block}\n" + guidance.write_text(original_guidance, encoding="utf-8") + agent_target = self.codex_home / "agents" / RUNTIME.AGENT_NAME + agent_target.parent.mkdir(parents=True) + original_agent = '# managed-by: gpt56-superpowers\nname = "legacy-auditor"\n' + agent_target.write_text(original_agent, encoding="utf-8") + + RUNTIME.install(self.codex_home, self.agent, self.fragment, self.receipt) + + migrated = guidance.read_text(encoding="utf-8") + self.assertIn(RUNTIME.START, migrated) + self.assertNotIn(RUNTIME.LEGACY_START, migrated) + self.assertEqual(agent_target.read_text(encoding="utf-8"), self.agent.read_text(encoding="utf-8")) + + RUNTIME.restore(self.receipt) + + self.assertEqual(guidance.read_text(encoding="utf-8"), original_guidance) + self.assertEqual(agent_target.read_text(encoding="utf-8"), original_agent) + + def test_multiple_current_and_legacy_blocks_are_rejected(self) -> None: + self.codex_home.mkdir() + guidance = self.codex_home / "AGENTS.md" + guidance.write_text( + f"{RUNTIME.START}\nnew\n{RUNTIME.END}\n\n" + f"{RUNTIME.LEGACY_START}\nold\n{RUNTIME.LEGACY_END}\n", + encoding="utf-8", + ) + + with self.assertRaisesRegex(ValueError, "multiple Agentic Superpowers blocks"): + RUNTIME.install(self.codex_home, self.agent, self.fragment, self.receipt) + if __name__ == "__main__": unittest.main() diff --git a/tests/test-install.sh b/tests/test-install.sh index 0db4948..1117b81 100755 --- a/tests/test-install.sh +++ b/tests/test-install.sh @@ -7,6 +7,20 @@ TMP_ROOT="$TMP_BASE/path with spaces" export CODEX_HOME="$TMP_ROOT/codex home" MANAGED_SKILLS=( + agentic-superpowers + agentic-orchestrate-delivery + agentic-design-planning + agentic-writing-plans + agentic-using-git-worktrees + agentic-subagent-driven-development + agentic-debugging + agentic-verification + agentic-purpose-bound-rigor + agentic-delegation-review + agentic-git-delivery +) + +VERSION_07_MANAGED_SKILLS=( gpt56-superpowers gpt56-orchestrate-delivery gpt56-design-planning @@ -42,7 +56,7 @@ VERSION_03_MANAGED_SKILLS=( gpt56-git-delivery ) -LEGACY_SKILLS=( +LEGACY_OBRA_SKILLS=( brainstorming dispatching-parallel-agents executing-plans @@ -59,6 +73,8 @@ LEGACY_SKILLS=( writing-skills ) +ALL_LEGACY_SKILLS=("${VERSION_07_MANAGED_SKILLS[@]}" "${LEGACY_OBRA_SKILLS[@]}") + cleanup() { rm -rf "$TMP_BASE" } @@ -67,7 +83,7 @@ trap cleanup EXIT make_legacy() { root="$1" mkdir -p "$root" - for name in "${LEGACY_SKILLS[@]}"; do + for name in "${ALL_LEGACY_SKILLS[@]}"; do mkdir -p "$root/$name" printf '%s\n' "$name" > "$root/$name/SKILL.md" done @@ -114,17 +130,18 @@ ln -s "$BROKEN_DEST" "$BASE_SKILLS/using-superpowers" run_install "$BASE_SKILLS" "$BASE_BACKUPS" assert_managed_links "$BASE_SKILLS" -grep -Fq '' "$CODEX_HOME/AGENTS.md" +grep -Fq '' "$CODEX_HOME/AGENTS.md" +! grep -Fq '' "$CODEX_HOME/AGENTS.md" grep -Fqx '# Personal global guidance' "$CODEX_HOME/AGENTS.md" cmp "$CODEX_HOME/agents/execution-efficiency-auditor.toml" \ "$REPO_ROOT/.codex/agents/execution-efficiency-auditor.toml" -for name in "${LEGACY_SKILLS[@]}"; do +for name in "${ALL_LEGACY_SKILLS[@]}"; do [[ ! -e "$BASE_SKILLS/$name" && ! -L "$BASE_SKILLS/$name" ]] done BASE_BACKUP="$(find "$BASE_BACKUPS" -mindepth 1 -maxdepth 1 -type d | head -n 1)" grep -Fqx 'format_version=2' "$BASE_BACKUP/INSTALL_INFO" [[ "$(grep -c '^created=' "$BASE_BACKUP/INSTALL_INFO")" -eq "${#MANAGED_SKILLS[@]}" ]] -[[ "$(grep -c '^moved=' "$BASE_BACKUP/INSTALL_INFO")" -eq 14 ]] +[[ "$(grep -c '^moved=' "$BASE_BACKUP/INSTALL_INFO")" -eq 25 ]] backup_count_before="$(find "$BASE_BACKUPS" -mindepth 1 -maxdepth 1 -type d | wc -l | tr -d ' ')" run_install "$BASE_SKILLS" "$BASE_BACKUPS" @@ -145,62 +162,66 @@ run_restore "$BASE_SKILLS" "$BASE_BACKUPS" "$BASE_BACKUP" assert_no_managed "$BASE_SKILLS" grep -Fqx '# Personal global guidance' "$CODEX_HOME/AGENTS.md" [[ ! -e "$CODEX_HOME/agents/execution-efficiency-auditor.toml" ]] -for name in "${LEGACY_SKILLS[@]}"; do +for name in "${ALL_LEGACY_SKILLS[@]}"; do [[ -e "$BASE_SKILLS/$name" || -L "$BASE_SKILLS/$name" ]] done [[ -L "$BASE_SKILLS/using-superpowers" ]] [[ "$(readlink "$BASE_SKILLS/using-superpowers")" == "$BROKEN_DEST" ]] -# Upgrade from version 0.1: preserve the existing core and remove only newly added links on restore. +# Upgrade from version 0.7: move every old public ID and restore it exactly. UPGRADE_SKILLS="$TMP_ROOT/upgrade skills" UPGRADE_BACKUPS="$TMP_ROOT/upgrade backups" +UPGRADE_OLD_SOURCE="$TMP_ROOT/old checkout/gpt56-superpowers/skills" mkdir -p "$UPGRADE_SKILLS" -ln -s "$REPO_ROOT/skills/gpt56-superpowers" "$UPGRADE_SKILLS/gpt56-superpowers" +for name in "${VERSION_07_MANAGED_SKILLS[@]}"; do + ln -s "$UPGRADE_OLD_SOURCE/$name" "$UPGRADE_SKILLS/$name" +done run_install "$UPGRADE_SKILLS" "$UPGRADE_BACKUPS" assert_managed_links "$UPGRADE_SKILLS" UPGRADE_BACKUP="$(find "$UPGRADE_BACKUPS" -mindepth 1 -maxdepth 1 -type d | head -n 1)" -grep -Fqx 'preserved=gpt56-superpowers' "$UPGRADE_BACKUP/INSTALL_INFO" -[[ "$(grep -c '^created=' "$UPGRADE_BACKUP/INSTALL_INFO")" -eq "$((${#MANAGED_SKILLS[@]} - 1))" ]] +[[ "$(grep -c '^created=' "$UPGRADE_BACKUP/INSTALL_INFO")" -eq "${#MANAGED_SKILLS[@]}" ]] +[[ "$(grep -c '^moved=' "$UPGRADE_BACKUP/INSTALL_INFO")" -eq "${#VERSION_07_MANAGED_SKILLS[@]}" ]] run_restore "$UPGRADE_SKILLS" "$UPGRADE_BACKUPS" "$UPGRADE_BACKUP" -[[ -L "$UPGRADE_SKILLS/gpt56-superpowers" ]] -for name in "${MANAGED_SKILLS[@]:1}"; do - [[ ! -e "$UPGRADE_SKILLS/$name" && ! -L "$UPGRADE_SKILLS/$name" ]] +assert_no_managed "$UPGRADE_SKILLS" +for name in "${VERSION_07_MANAGED_SKILLS[@]}"; do + [[ -L "$UPGRADE_SKILLS/$name" ]] + [[ "$(readlink "$UPGRADE_SKILLS/$name")" == "$UPGRADE_OLD_SOURCE/$name" ]] done # A conflicting narrow Skill is backed up and restored exactly. CONFLICT_SKILLS="$TMP_ROOT/conflict skills" CONFLICT_BACKUPS="$TMP_ROOT/conflict backups" -mkdir -p "$CONFLICT_SKILLS/gpt56-debugging" -printf '%s\n' personal > "$CONFLICT_SKILLS/gpt56-debugging/marker" +mkdir -p "$CONFLICT_SKILLS/agentic-debugging" +printf '%s\n' personal > "$CONFLICT_SKILLS/agentic-debugging/marker" run_install "$CONFLICT_SKILLS" "$CONFLICT_BACKUPS" CONFLICT_BACKUP="$(find "$CONFLICT_BACKUPS" -mindepth 1 -maxdepth 1 -type d | head -n 1)" -grep -Fqx 'moved=gpt56-debugging' "$CONFLICT_BACKUP/INSTALL_INFO" +grep -Fqx 'moved=agentic-debugging' "$CONFLICT_BACKUP/INSTALL_INFO" run_restore "$CONFLICT_SKILLS" "$CONFLICT_BACKUPS" "$CONFLICT_BACKUP" for name in "${MANAGED_SKILLS[@]}"; do - [[ "$name" == "gpt56-debugging" ]] && continue + [[ "$name" == "agentic-debugging" ]] && continue [[ ! -e "$CONFLICT_SKILLS/$name" && ! -L "$CONFLICT_SKILLS/$name" ]] done -[[ -d "$CONFLICT_SKILLS/gpt56-debugging" && ! -L "$CONFLICT_SKILLS/gpt56-debugging" ]] -grep -Fqx personal "$CONFLICT_SKILLS/gpt56-debugging/marker" +[[ -d "$CONFLICT_SKILLS/agentic-debugging" && ! -L "$CONFLICT_SKILLS/agentic-debugging" ]] +grep -Fqx personal "$CONFLICT_SKILLS/agentic-debugging/marker" # Restore refuses replacement of a link whose previous target is waiting in backup. COLLISION_SKILLS="$TMP_ROOT/moved collision skills" COLLISION_BACKUPS="$TMP_ROOT/moved collision backups" -mkdir -p "$COLLISION_SKILLS/gpt56-debugging" -printf '%s\n' original > "$COLLISION_SKILLS/gpt56-debugging/marker" +mkdir -p "$COLLISION_SKILLS/agentic-debugging" +printf '%s\n' original > "$COLLISION_SKILLS/agentic-debugging/marker" run_install "$COLLISION_SKILLS" "$COLLISION_BACKUPS" COLLISION_BACKUP="$(find "$COLLISION_BACKUPS" -mindepth 1 -maxdepth 1 -type d | head -n 1)" -rm "$COLLISION_SKILLS/gpt56-debugging" -mkdir -p "$COLLISION_SKILLS/gpt56-debugging" -printf '%s\n' replacement > "$COLLISION_SKILLS/gpt56-debugging/marker" +rm "$COLLISION_SKILLS/agentic-debugging" +mkdir -p "$COLLISION_SKILLS/agentic-debugging" +printf '%s\n' replacement > "$COLLISION_SKILLS/agentic-debugging/marker" if run_restore "$COLLISION_SKILLS" "$COLLISION_BACKUPS" "$COLLISION_BACKUP" 2>/dev/null; then echo "restore should refuse a moved-target collision" >&2 exit 1 fi [[ ! -f "$COLLISION_BACKUP/RESTORED" ]] -grep -Fqx replacement "$COLLISION_SKILLS/gpt56-debugging/marker" +grep -Fqx replacement "$COLLISION_SKILLS/agentic-debugging/marker" for name in "${MANAGED_SKILLS[@]}"; do - [[ "$name" == "gpt56-debugging" ]] && continue + [[ "$name" == "agentic-debugging" ]] && continue [[ -L "$COLLISION_SKILLS/$name" ]] done @@ -210,15 +231,15 @@ USER_BACKUPS="$TMP_ROOT/user replacement backups" mkdir -p "$USER_SKILLS" run_install "$USER_SKILLS" "$USER_BACKUPS" USER_BACKUP="$(find "$USER_BACKUPS" -mindepth 1 -maxdepth 1 -type d | head -n 1)" -rm "$USER_SKILLS/gpt56-verification" -mkdir -p "$USER_SKILLS/gpt56-verification" -printf '%s\n' user-owned > "$USER_SKILLS/gpt56-verification/marker" +rm "$USER_SKILLS/agentic-verification" +mkdir -p "$USER_SKILLS/agentic-verification" +printf '%s\n' user-owned > "$USER_SKILLS/agentic-verification/marker" run_restore "$USER_SKILLS" "$USER_BACKUPS" "$USER_BACKUP" for name in "${MANAGED_SKILLS[@]}"; do - [[ "$name" == "gpt56-verification" ]] && continue + [[ "$name" == "agentic-verification" ]] && continue [[ ! -e "$USER_SKILLS/$name" && ! -L "$USER_SKILLS/$name" ]] done -grep -Fqx user-owned "$USER_SKILLS/gpt56-verification/marker" +grep -Fqx user-owned "$USER_SKILLS/agentic-verification/marker" # Inject a third-link failure and require complete rollback. FAIL_SKILLS="$TMP_ROOT/failure skills" @@ -245,7 +266,7 @@ if env SKILLS_ROOT="$FAIL_SKILLS" BACKUP_ROOT="$FAIL_BACKUPS" \ exit 1 fi assert_no_managed "$FAIL_SKILLS" -for name in "${LEGACY_SKILLS[@]}"; do +for name in "${ALL_LEGACY_SKILLS[@]}"; do [[ -f "$FAIL_SKILLS/$name/SKILL.md" ]] done [[ "$(find "$FAIL_BACKUPS" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | wc -l | tr -d ' ')" -eq 0 ]] @@ -277,7 +298,7 @@ if env SKILLS_ROOT="$RESTORE_FAIL_SKILLS" BACKUP_ROOT="$RESTORE_FAIL_BACKUPS" \ exit 1 fi assert_managed_links "$RESTORE_FAIL_SKILLS" -for name in "${LEGACY_SKILLS[@]}"; do +for name in "${ALL_LEGACY_SKILLS[@]}"; do [[ -e "$RESTORE_FAIL_BACKUP/$name" || -L "$RESTORE_FAIL_BACKUP/$name" ]] [[ ! -e "$RESTORE_FAIL_SKILLS/$name" && ! -L "$RESTORE_FAIL_SKILLS/$name" ]] done @@ -329,6 +350,54 @@ for name in "${VERSION_06_MANAGED_SKILLS[@]}"; do [[ ! -e "$V06_SKILLS/$name" && ! -L "$V06_SKILLS/$name" ]] done +# Version-0.7 eleven-Skill manifests remain restorable after the namespace migration. +V07_SKILLS="$TMP_ROOT/version 0.7 skills" +V07_BACKUPS="$TMP_ROOT/version 0.7 backups" +V07_BACKUP="$V07_BACKUPS/txn-00000000000000000001" +V07_SOURCE="$TMP_ROOT/historical checkout/gpt56-superpowers/skills" +mkdir -p "$V07_SKILLS" "$V07_BACKUP" +for name in "${VERSION_07_MANAGED_SKILLS[@]}"; do + ln -s "$V07_SOURCE/$name" "$V07_SKILLS/$name" +done +{ + printf 'format_version=2\n' + printf 'source_root=%s\n' "$V07_SOURCE" + printf 'skills_root=%s\n' "$V07_SKILLS" + printf 'installed_at=20260831T000000Z\n' + for name in "${VERSION_07_MANAGED_SKILLS[@]}"; do printf 'managed=%s\n' "$name"; done + for name in "${VERSION_07_MANAGED_SKILLS[@]}"; do printf 'created=%s\n' "$name"; done + printf 'state=READY\n' +} > "$V07_BACKUP/INSTALL_INFO" +printf '%s\n' READY > "$V07_BACKUP/READY" +run_restore "$V07_SKILLS" "$V07_BACKUPS" "$V07_BACKUP" +for name in "${VERSION_07_MANAGED_SKILLS[@]}"; do + [[ ! -e "$V07_SKILLS/$name" && ! -L "$V07_SKILLS/$name" ]] +done + +# Default restore discovery falls back to the historical backup root. +DEFAULT_OLD_SKILLS="$TMP_ROOT/default old skills" +DEFAULT_OLD_ROOT="$CODEX_HOME/skill-backups/gpt56-superpowers" +DEFAULT_OLD_BACKUP="$DEFAULT_OLD_ROOT/txn-00000000000000000001" +DEFAULT_OLD_SOURCE="$TMP_ROOT/default historical checkout/gpt56-superpowers/skills" +mkdir -p "$DEFAULT_OLD_SKILLS" "$DEFAULT_OLD_BACKUP" +for name in "${VERSION_07_MANAGED_SKILLS[@]}"; do + ln -s "$DEFAULT_OLD_SOURCE/$name" "$DEFAULT_OLD_SKILLS/$name" +done +{ + printf 'format_version=2\n' + printf 'source_root=%s\n' "$DEFAULT_OLD_SOURCE" + printf 'skills_root=%s\n' "$DEFAULT_OLD_SKILLS" + printf 'installed_at=20260830T000000Z\n' + for name in "${VERSION_07_MANAGED_SKILLS[@]}"; do printf 'managed=%s\n' "$name"; done + for name in "${VERSION_07_MANAGED_SKILLS[@]}"; do printf 'created=%s\n' "$name"; done + printf 'state=READY\n' +} > "$DEFAULT_OLD_BACKUP/INSTALL_INFO" +printf '%s\n' READY > "$DEFAULT_OLD_BACKUP/READY" +env SKILLS_ROOT="$DEFAULT_OLD_SKILLS" bash "$REPO_ROOT/scripts/restore-original.sh" >/dev/null +for name in "${VERSION_07_MANAGED_SKILLS[@]}"; do + [[ ! -e "$DEFAULT_OLD_SKILLS/$name" && ! -L "$DEFAULT_OLD_SKILLS/$name" ]] +done + # Version-1 manifests remain restorable. V1_SKILLS="$TMP_ROOT/v1 skills" V1_BACKUPS="$TMP_ROOT/v1 backups" @@ -381,7 +450,7 @@ assert_no_managed "$ALIAS_SKILLS" [[ -z "$(find "$ALIAS_SKILLS" -mindepth 1 -maxdepth 1 -name 'txn-*' -print -quit)" ]] NESTED_CODEX="$TMP_ROOT/nested home/.codex" -NESTED_REPO="$NESTED_CODEX/skills/gpt56-superpowers" +NESTED_REPO="$NESTED_CODEX/skills/agentic-superpowers" mkdir -p "$(dirname "$NESTED_REPO")" cp -R "$REPO_ROOT" "$NESTED_REPO" if env CODEX_HOME="$NESTED_CODEX" bash "$NESTED_REPO/scripts/install-local.sh" >/dev/null 2>&1; then @@ -390,4 +459,4 @@ if env CODEX_HOME="$NESTED_CODEX" bash "$NESTED_REPO/scripts/install-local.sh" > fi [[ -d "$NESTED_REPO" && ! -L "$NESTED_REPO" ]] -echo "PASS: eleven-Skill transactions, v0.3/v0.6/v1 compatibility, rollback, collisions, locks, and path safety" +echo "PASS: eleven-Skill transactions, gpt56 migration, v0.3/v0.6/v0.7/v1 compatibility, rollback, collisions, locks, and path safety" From d99120fc00b03fcadd681857f862d36ed9744f94 Mon Sep 17 00:00:00 2001 From: wonderbell <969064814@qq.com> Date: Mon, 31 Aug 2026 23:09:23 +0800 Subject: [PATCH 2/3] feat: require review-gated feature branch delivery --- .codex-plugin/plugin.json | 4 +- README.md | 16 +++++--- docs/architecture.md | 12 +++--- docs/evaluation.md | 6 +-- docs/implementation-closed-loop.md | 5 ++- docs/migration-from-gpt56-superpowers.md | 12 ++++++ docs/migration-from-obra-superpowers.md | 5 ++- scripts/validate.py | 20 +++++++++- skills/agentic-git-delivery/SKILL.md | 40 +++++++------------ .../agentic-git-delivery/agents/openai.yaml | 4 +- skills/agentic-orchestrate-delivery/SKILL.md | 4 +- .../references/evidence-and-closure.md | 9 +++-- .../references/lifecycle.md | 4 +- skills/agentic-superpowers/SKILL.md | 2 +- skills/agentic-using-git-worktrees/SKILL.md | 2 +- skills/agentic-writing-plans/SKILL.md | 4 +- tests/scenarios.json | 16 ++++---- 17 files changed, 99 insertions(+), 66 deletions(-) diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index 3ed8cdb..97d7dc0 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "agentic-superpowers", "version": "0.8.0", - "description": "A dependency-aware development suite with eleven Skills, an optional controller-led delivery workflow, global purpose-bound rigor, and an on-demand audit agent.", + "description": "A dependency-aware development suite with eleven Skills, an optional controller-led workflow, review-gated feature-branch delivery, global purpose-bound rigor, and an on-demand audit agent.", "author": { "name": "Wonderbell", "url": "https://github.com/bells0" @@ -21,7 +21,7 @@ "interface": { "displayName": "Agentic Superpowers", "shortDescription": "Eleven model-evolving development Skills", - "longDescription": "A model-neutral accountable coordinator, an explicit controller-led delivery workflow, and focused Skills for design, implementation planning, worktree isolation, bounded subagent execution, debugging, verification, purpose-bound rigor, delegation and review, and atomic Git delivery.", + "longDescription": "A model-neutral accountable coordinator, an explicit controller-led delivery workflow, and focused Skills for design, implementation planning, worktree isolation, bounded subagent execution, debugging, verification, purpose-bound rigor, delegation and review, and review-gated feature-branch Git delivery.", "developerName": "Wonderbell", "category": "Developer Tools", "capabilities": [ diff --git a/README.md b/README.md index 2889f3c..0c9d23c 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Version 0.8 introduces the model-neutral `agentic-*` namespace while retaining t The suite evolves through versioned model profiles instead of embedding a model generation in repository, plugin, or Skill identifiers. The current profile was shaped by [OpenAI's GPT-5.6 prompting guidance](https://developers.openai.com/api/docs/guides/prompt-guidance-gpt-5p6), while the stable contracts remain outcomes, constraints, evidence, autonomy, validation, permissions, and stop rules. See [model profiles](docs/model-profiles.md) for the distinction between design inputs, deterministic package checks, and live-model evidence. -This suite keeps the useful invariants—permission boundaries, project grounding, root-cause diagnosis, evidence before claims, preservation of user changes—and removes methodology ritual. It does not impose fail-first development, repeated broad suites, automatic worktrees, or per-task review chains. Each independently acceptable repository outcome receives an atomic local commit after focused evidence passes; approved Plans define those boundaries, while explicit opt-outs and unsafe or incomplete work remain uncommitted. Commit authority never implies push authority. +This suite keeps the useful invariants—permission boundaries, project grounding, root-cause diagnosis, evidence before claims, preservation of user changes—and removes methodology ritual. It does not impose fail-first development, repeated broad suites, automatic worktrees, or per-task review chains. Repository development occurs on task-specific feature branches. Verified outcomes receive atomic commits, the completed branch is pushed into a reviewable pull request, and merge waits for independent authorized or user approval plus all required checks. The implementer cannot approve its own work. Explicit local-only requests stop before push; direct default-branch work requires a recorded user-authorized emergency exception. ## Structure @@ -24,10 +24,14 @@ This suite keeps the useful invariants—permission boundaries, project groundin | `agentic-verification` | Choosing proportionate evidence for material completion claims | | `agentic-purpose-bound-rigor` | Requiring a concrete necessity case before adding hashes, gates, isolation, mocks, freezes, or repeated reviews | | `agentic-delegation-review` | Genuinely independent parallel work or a focused independent review | -| `agentic-git-delivery` | Atomic completion commits plus authorized branches, worktrees, pushes, pull requests, merges, or cleanup | +| `agentic-git-delivery` | Feature-branch commits, pushed PR evidence, independent approval, required checks, controlled merge, or cleanup | All eleven are direct entry points. The orchestrated workflow is opt-in for explicit standardized delivery or long-running multi-module work; it does not force ordinary tasks through a fixed chain. The remaining execution-structure Skills may hand work to another focused Skill only at a real dependency boundary. Narrow trigger descriptions allow implicit routing without an always-on router, and explicit `$skill-name` invocation remains available. +## Delivery contract + +For repository-changing work, use a feature branch from the start. After focused evidence passes, create atomic commits, push the branch, and open or update a PR that records scope, implementation, verification evidence, risks, unresolved items, and dependencies. An independent authorized reviewer or the user must approve; required checks must pass before merge. Development, commits, or pushes directly on `main` or another default branch are prohibited unless the user explicitly authorizes an emergency exception and its reason is recorded. + ## Prompt footprint The comparison baseline is a local 14-Skill installation from `obra/superpowers` at commit `b55764852ac78870e65c6565fb585b6cd8b3c5c9`. @@ -35,10 +39,10 @@ The comparison baseline is a local 14-Skill installation from `obra/superpowers` | Measure | Baseline | Version 0.8 | Reduction | |---|---:|---:|---:| | Workflow Skills | 14 | 11 | 21.4% | -| Total `SKILL.md` words | 15,737 | 5,404 | 65.7% | +| Total `SKILL.md` words | 15,737 | 5,417 | 65.6% | | Always-trigger router | Yes | No | Removed | -A focused route loads one body of 233–850 words. The longest Skills carry concrete planning, orchestrated-delivery, worktree, or subagent contracts and load only when those structures materially help. The full 5,404-word package is never a mandatory prompt chain. Word count is a structural proxy, not a model-quality or tokenization guarantee. +A focused route loads one body of 233–850 words. The longest Skills carry concrete planning, orchestrated-delivery, worktree, or subagent contracts and load only when those structures materially help. The full 5,417-word package is never a mandatory prompt chain. Word count is a structural proxy, not a model-quality or tokenization guarantee. ## Install @@ -120,7 +124,7 @@ Use $agentic-superpowers to coordinate this migration end to end. Use `docs/implementation-closed-loop.md` as a reusable template for long-running Spec → Plan → Execution workflows (including Plan A/B/C style handoffs and model-split recommendations). ``` -Ordinary questions still use Codex directly. Completed repository outcomes implicitly add Git & Delivery for atomic local commits at verified boundaries; explicit `$skill-name` invocation remains available. +Ordinary questions still use Codex directly. Repository-changing outcomes implicitly add Git & Delivery for the feature-branch, commit, PR, approval, check, and merge contract; explicit `$skill-name` invocation remains available. ### Process auditor @@ -151,7 +155,7 @@ Agentic Superpowers 是一套不绑定具体模型版本的轻量开发 Skill: 本版本彻底移除了开发方法论强制,不要求先写失败测试、不要求 RED/GREEN/REFACTOR、不要求重复跑全量测试。保留的是更薄的“声明—证据”验证:文档看 diff/schema/link,Bug 复查原始症状,行为跑最相关检查,视觉实际渲染,发布遵守项目门禁;无法验证就明确缺口。 -每个独立可验收、可独立回滚且验证通过的仓库结果,默认形成一个原子本地 commit;已批准的 Plan 定义提交边界,依赖任务必须在当前边界提交后再继续。拟议中的 Plan、只读、未完成、验证失败、无法安全隔离或明确要求不提交的工作不会自动提交。默认 commit 不代表允许自动 push。 +仓库开发默认从功能分支开始。每个独立可验收、可独立回滚且验证通过的结果形成原子 commit;完成后推送功能分支,并通过 PR 记录范围、实现、验证证据、风险与依赖。开发者不能审批自己的实现,只有独立审批者或用户批准且必需检查通过后才能合并。禁止直接在 `main` 或默认分支开发、提交或推送;紧急例外必须由用户明确授权并记录原因。明确要求仅保留本地时,在 push 前停止。 ## License and attribution diff --git a/docs/architecture.md b/docs/architecture.md index c36bc18..00c8b99 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -30,7 +30,7 @@ The full repository installer adds the concise `.codex/purpose-bound-rigor.md` f - Read-only and clear non-repository work: no suite Skill. - Explicit standardized delivery or long-running multi-module work that needs durable cross-phase control: Orchestrated Delivery. -- Completed repository-changing outcomes: Git & Delivery supplies atomic local commits at verified boundaries. +- Repository-changing outcomes: Git & Delivery owns the task feature branch, atomic commits, branch push, evidence-bearing PR, independent approval, required checks, and controlled merge. - One consequential decision domain: one narrow Skill. - Two or more dependent phases whose ordering and synthesis affect success: core plus only the one or two narrow Skills that change a decision. - Proposed hashes, gates, isolation, mocks, freezes, repeated reviews, or broad reruns: Purpose-Bound Rigor requires a concrete protected outcome, observed risk, existing gap, and minimal intervention. @@ -50,7 +50,7 @@ Orchestrated Delivery codifies the controller-led method only when the user sele ### Focused ownership -Each spoke owns one decision domain. Trigger overlap is minimized by separating design uncertainty, implementation planning, isolation, bounded execution, causal uncertainty, evidence selection, coordination value, and Git delivery state. Git & Delivery additionally owns suite-wide atomic commit boundaries for repository changes. +Each spoke owns one decision domain. Trigger overlap is minimized by separating design uncertainty, implementation planning, isolation, bounded execution, causal uncertainty, evidence selection, coordination value, and Git delivery state. Git & Delivery additionally owns suite-wide feature-branch and review-gated delivery boundaries for repository changes. ### Stable identity, versioned model profiles @@ -64,9 +64,11 @@ Writing Plans distinguishes user-provided facts, repository observations, propos Worktree Isolation activates only for an explicit request or a concrete safety benefit. Subagent Development activates only for implementation-ready plans with independently ownable outcomes; the controller retains shared state, integration decisions, and final evidence. -### Atomic completion commits +### Feature-branch, review-gated delivery -Each independently acceptable outcome maps to one local commit per affected repository after focused evidence passes. The outcome must have one purpose and be independently revertible without leaving dependent history broken; every edit or partial test phase is not a boundary. An approved Plan supplies the commit map, and dependent work starts only after the current boundary is verified and committed. Task-owned paths or hunks are staged explicitly, unrelated user changes remain untouched, and proposed, opted-out, unsafe, incomplete, failed, blocked, or empty work remains uncommitted. Push and other remote authority stay separate. +Development starts on a task-specific feature branch, never directly on `main` or another default branch. Each independently acceptable outcome maps to one atomic commit per affected repository after focused evidence passes. The outcome must have one purpose and be independently revertible without leaving dependent history broken; every edit or partial test phase is not a boundary. An approved Plan supplies the commit map, and dependent work starts only after the current boundary is verified and committed. Task-owned paths or hunks are staged explicitly, unrelated user changes remain untouched, and proposed, opted-out, unsafe, incomplete, failed, blocked, or empty work remains uncommitted. + +After completion, the feature branch is pushed and represented by a PR containing scope, implementation, verification evidence, risks, unresolved items, and dependencies. The implementer cannot approve its own work. Merge requires approval from an independent authorized reviewer or the user plus every required check. Explicit local-only instructions stop before push. Direct default-branch development or push is an emergency exception requiring prior user authorization and a recorded reason. ### Claim-based verification @@ -95,7 +97,7 @@ Delegation is justified by independent deliverables, elapsed-time savings, or fr |---|---| | State outcomes and stop rules | Six-part core contract and completion conditions | | Remove repeated process instructions | Nine focused bodies loaded only at matching boundaries; no mandatory chain | -| Define autonomy and permissions | Verified local outcomes receive atomic commits; remote and destructive authority stay separate | +| Define autonomy and permissions | Feature-branch delivery, explicit local-only stops, independent approval, required checks, and controlled merge | | Route tools by dependency | Parallel independent work; sequential dependencies; synthesis before claims | | Validate what matters | Claim-to-evidence selection and explicit gaps | | Keep progress sparse | Outcome-first reporting and phase-level updates | diff --git a/docs/evaluation.md b/docs/evaluation.md index e200011..54b6084 100644 --- a/docs/evaluation.md +++ b/docs/evaluation.md @@ -7,13 +7,13 @@ The checked-in scenario matrix tests routing intent and package invariants. It i | Scenario | Expected route | Decisive behavior | |---|---|---| | Read-only code explanation | None | Answer from inspected evidence without workflow overhead | -| Clear static edit | Git & Delivery | Direct change, obvious artifact checks, and a scoped local commit | +| Clear static edit | Git & Delivery | Feature-branch change, obvious artifact checks, atomic commit, and review-gated delivery | | Public API or migration ambiguity | Design & Planning | Choose a tradeoff and define boundaries and acceptance | | Intermittent cross-component failure and fix | Debugging + Git & Delivery | Find the first divergence, recheck the symptom, and commit the completed fix | | Material visual or release claim | Verification | Match claim breadth to reliable evidence | | Unjustified workflow defenses | Purpose-Bound Rigor | Require a concrete protected outcome, observed risk, existing gap, and minimal effective measure | | Independent investigations or focused security review | Delegation & Review | Parallelize true independence and synthesize findings | -| Authorized branch, commit, push, and pull request | Git & Delivery | Preserve unrelated state and verify delivery results | +| Authorized branch, commit, push, and pull request | Git & Delivery | Preserve unrelated state, record PR evidence, and keep merge gated by independent approval and required checks | | Cross-module migration with architecture and evidence dependencies | Core + Design + Verification | Coordinate phases without loading the complete suite | | Explicit no-commit request | Git & Delivery | Verify the change while leaving it uncommitted | | Settled multi-module requirements | Writing Plans | Separate provided, observed, proposed, and unresolved facts in an implementation-ready plan | @@ -25,7 +25,7 @@ The checked-in scenario matrix tests routing intent and package invariants. It i ## Current evidence -- Deterministic validation checks all eleven Skill structures, per-Skill trigger budgets, forbidden forced ritual language, declared workflow resources, dependency-aware routing, and the fourteen-scenario specification. +- Deterministic validation checks all eleven Skill structures, per-Skill trigger budgets, forbidden forced ritual language, declared workflow resources, dependency-aware routing, the review-gated Git delivery contract, and the fourteen-scenario specification. - Transaction smoke tests exercise fresh and upgrade installs, exact restore semantics, conflicts, injected install and restore failures, legacy `gpt56-*` migration, version-0.3, version-0.6, version-0.7, and version-1 compatibility, path aliases, locks, spaces, and broken links. - A three-case blind forward review on 2026-07-20 covered an implicit simple-change commit, an explicit no-commit request, and a multi-repository completion. All three followed the version-0.3 local-commit contract. - Three focused GPT-5.6 Sol scenarios on 2026-07-27 covered evidence-grounded implementation plans, dirty-checkout worktree isolation, and controller-owned subagent execution. The first Writing Plans pass exposed invented repository details; the revised evidence classification passed the second blind scenario. diff --git a/docs/implementation-closed-loop.md b/docs/implementation-closed-loop.md index e266030..478aac1 100644 --- a/docs/implementation-closed-loop.md +++ b/docs/implementation-closed-loop.md @@ -55,7 +55,10 @@ Plan 仍未确定时不应边写边改;边界不清晰要回到 Plan。 - 汇总每项验收证据是否通过 - 标明未解决项与受限项 -- 明确下一步执行边界 +- 在功能分支形成原子提交;完成后推送并创建或更新 PR +- PR 记录范围、实现、验证证据、风险与依赖 +- 开发者不得审批自己的实现;独立审批者或用户批准且必需检查通过后才能合并 +- 禁止直接在默认分支开发或推送,用户明确授权并记录原因的紧急例外除外 ## 典型任务分层(Plan A / B / C) diff --git a/docs/migration-from-gpt56-superpowers.md b/docs/migration-from-gpt56-superpowers.md index 080c6e8..61140a0 100644 --- a/docs/migration-from-gpt56-superpowers.md +++ b/docs/migration-from-gpt56-superpowers.md @@ -30,6 +30,18 @@ Version 0.8 renames the suite to Agentic Superpowers so future model upgrades do The suite deliberately does not install live aliases for old Skill names. Keeping both namespaces would duplicate discovery metadata and make implicit routing ambiguous. Update explicit `$gpt56-*` prompts and project instructions to the mapped `$agentic-*` names. +## Delivery contract in version 0.8 + +`agentic-git-delivery` also establishes a review-gated default for repository changes: + +- development, commits, and pushes occur on a task-specific feature branch, not the default branch; +- verified outcomes receive atomic commits, then the completed branch is pushed into a PR; +- the PR records scope, implementation, verification evidence, risks, unresolved items, and dependencies; +- an independent authorized reviewer or the user must approve, and every required check must pass before merge; +- the implementer cannot approve its own work; +- an explicit local-only request stops before push; +- direct default-branch work requires prior user authorization and a recorded emergency reason. + ## Repository and catalog contract After the authorized GitHub repository rename and publication, external catalogs and installers should use: diff --git a/docs/migration-from-obra-superpowers.md b/docs/migration-from-obra-superpowers.md index f4e37e5..6a8ad18 100644 --- a/docs/migration-from-obra-superpowers.md +++ b/docs/migration-from-obra-superpowers.md @@ -16,7 +16,7 @@ This project is an original model-evolving rewrite, not a compatibility layer. I | `subagent-driven-development` | `agentic-subagent-driven-development` with the controller-owned contracts, disjoint write ownership, durable state, and proportional review | | `requesting-code-review`, `receiving-code-review` | Focused evidence-backed review in `agentic-delegation-review` | | `using-git-worktrees` | `agentic-using-git-worktrees` only for explicit or materially justified isolation | -| `finishing-a-development-branch` | `agentic-git-delivery` for explicit Git state and atomic local commits after verified repository outcomes | +| `finishing-a-development-branch` | `agentic-git-delivery` for feature-branch commits, pushed PR evidence, independent approval, required checks, and controlled merge | | `test-driven-development` | Removed as a Skill and methodology requirement; project or user rules still govern when specified | | `writing-skills` | Base model plus repository-specific creators and validators | @@ -36,7 +36,8 @@ This project is an original model-evolving rewrite, not a compatibility layer. I - Obtain specific authority for unapproved external or destructive actions. - Diagnose non-obvious failures from evidence and revisit the original symptom. - Match material completion claims to proportionate evidence and disclose gaps. -- Commit each completed repository-changing outcome locally by default while preserving explicit opt-outs and separate push authority. +- Develop on a task feature branch, commit verified atomic outcomes, push the completed branch, and use an evidence-bearing PR with independent approval and required checks before merge. +- Preserve explicit local-only delivery requests and require a recorded user-authorized emergency exception for direct default-branch work. - Evaluate review findings technically rather than applying them blindly. ## Transactional local migration diff --git a/scripts/validate.py b/scripts/validate.py index 5bb97ef..34c700d 100755 --- a/scripts/validate.py +++ b/scripts/validate.py @@ -191,7 +191,7 @@ def load_json(path: Path) -> object: "controller owns post-integration delivery": r"controller.{0,120}(?:after|following).{0,80}integration", "child commit precedes parent pointer": r"child repositor(?:y|ies).{0,80}(?:precede|before).{0,80}parent.{0,40}(?:gitlink|pointer)", "acceptance gate and explicit opt-out": r"acceptance gate.{0,180}explicit(?:ly)? opt(?:ed)?-out|explicit opt-out.{0,180}acceptance gate", - "completion record and local-only boundary": r"verification.{0,40}commit hashes.{0,80}dirty state.{0,120}local commits only", + "completion record and review-gated state": r"verification.{0,40}hashes.{0,80}PR/check/approval/merge state.{0,100}dirty state", "approved Plan baseline": r"Plan baseline.{0,100}approved durable Plan.{0,80}before implementation", "atomic commit map": r"Commit map.{0,100}Task N.{0,80}evidence.{0,80}message", "commit before dependent work": r"verify and commit.{0,100}before.{0,60}dependent work", @@ -211,6 +211,24 @@ def load_json(path: Path) -> object: "implementer prompt must preserve controller-owned completion delivery", ) +git_delivery_path = SKILLS_ROOT / "agentic-git-delivery" / "SKILL.md" +git_delivery_text = git_delivery_path.read_text(encoding="utf-8") if git_delivery_path.is_file() else "" +git_delivery_patterns = { + "feature branch before development": r"before development.{0,80}feature branch", + "default branch prohibition": r"do not develop, commit, or push directly.{0,80}default branch", + "branch push and pull request": r"push the feature branch.{0,80}pull request", + "pull request evidence fields": r"PR scope.{0,120}verification evidence.{0,120}risks.{0,80}dependencies", + "implementer cannot approve": r"implementer.{0,40}cannot approve", + "independent or user approval": r"independent authorized reviewer or the user", + "required checks before merge": r"merge only after.{0,80}required check", + "recorded emergency exception": r"emergency exception.{0,100}explicit user authorization.{0,80}record the reason", +} +for label, pattern in git_delivery_patterns.items(): + check( + re.search(pattern, git_delivery_text, flags=re.IGNORECASE | re.DOTALL) is not None, + f"agentic-git-delivery is missing {label}", + ) + corpus = "\n".join(skill_corpus) obsolete_patterns = { "forced methodology acronym": r"(?:always|mandatory|must|required).{0,20}\btdd\b|\btdd\b.{0,20}(?:always|mandatory|required)", diff --git a/skills/agentic-git-delivery/SKILL.md b/skills/agentic-git-delivery/SKILL.md index 9f44878..67e3445 100644 --- a/skills/agentic-git-delivery/SKILL.md +++ b/skills/agentic-git-delivery/SKILL.md @@ -1,37 +1,27 @@ --- name: agentic-git-delivery -description: Handle atomic scoped commits and authorized Git delivery. Use for explicit Git operations and automatically after verified repository outcomes that should receive local commits. +description: Deliver verified repository changes through feature branches, atomic commits, pushed branch state, reviewable pull requests, independent approval, required checks, and controlled merge. --- # Agentic Git & Delivery -Deliver repository changes without losing user work or exceeding authority. +Deliver repository changes without losing user work, bypassing review, or treating implementation as approval. -## Default atomic commits +## Feature-branch contract -Completed repository work authorizes commits at verified boundaries without another prompt. Follow an approved Plan's commit map; otherwise map each independently acceptable outcome to one commit. A boundary has one purpose, relevant evidence, and can be reverted without breaking dependent history. Never batch independent outcomes or split edits and partial states. +1. Inspect status, default branch, upstreams, remotes, and repository rules. Preserve unrelated user changes. +2. Before development, create or switch to a task-specific feature branch. Do not develop, commit, or push directly on `main` or another default branch. +3. Stage only task-owned paths or hunks. Map each independently acceptable, verified, revertible outcome to one atomic commit; never commit proposed, incomplete, failed, empty, or opted-out work. +4. After the development outcome passes its focused evidence, push the feature branch and open or update its pull request unless the user explicitly limits delivery to local state or remote authority is unavailable. +5. Record PR scope, implementation, verification evidence, risks, unresolved items, and dependencies. Keep required checks visible and current. -Keep proposed Plans uncommitted; after approval, commit the baseline before implementation. Commit verified boundaries before dependent work. Never commit read-only, incomplete, failed, blocked, empty, opted-out, or unsafe boundaries. Commit never authorizes push. +## Approval and merge gate -## Prepare +- The implementer owns the change but cannot approve it. Self-review and green checks are evidence, not approval. +- Require approval from an independent authorized reviewer or the user. +- Merge only after that approval and every required check passes. Never bypass failed hooks, checks, branch protection, or required review. +- If review requests changes, update the same feature branch, add focused evidence, and request approval again when required. -1. Inspect status, branch, upstreams, remotes, and rules. -2. Separate task changes from unrelated user work; preserve the latter. -3. Keep the suitable branch. Isolate only for parallel writes, overlap, long-lived risk, or an explicit request. -4. Before a repository-local worktree, confirm its path is ignored. +Direct default-branch work is an emergency exception only. Obtain explicit user authorization first and record the reason in the commit or PR. Force pushes, history rewrites, destructive cleanup, merge, tags, and releases require matching authority. -## Deliver - -- Stage only task-owned paths or hunks; never broadly stage unrelated work. -- Inspect the staged diff for the current boundary, follow message conventions, and create its atomic commit. -- Record each hash and exclude later boundaries from the current commit. -- Never bypass failed hooks or commit inseparable unrelated work. -- Push, create pull requests, merge, tag, or change remote state only when authorized. -- Confirm force, history rewrite, discard, or destructive cleanup unless authorized. -- Prefer non-interactive commands. - -If remote state moved, inspect divergence first. “Sync” never implies destructive authority. - -## Completion - -Verify status and branch or remote relationships. Report commits, checks, preserved changes, and authorized remote results. Clean temporary isolation only when safe and in scope. +Report branch, commits, push and PR state, checks, approval, merge result, preserved changes, and remaining blockers. diff --git a/skills/agentic-git-delivery/agents/openai.yaml b/skills/agentic-git-delivery/agents/openai.yaml index bbe9e32..07832d4 100644 --- a/skills/agentic-git-delivery/agents/openai.yaml +++ b/skills/agentic-git-delivery/agents/openai.yaml @@ -1,6 +1,6 @@ interface: display_name: "Agentic Git & Delivery" - short_description: "Create atomic commits and handle Git delivery" - default_prompt: "Use $agentic-git-delivery to safely deliver verified repository outcomes at atomic commit boundaries and perform only authorized remote actions." + short_description: "Deliver changes through reviewed feature branches" + default_prompt: "Use $agentic-git-delivery to deliver verified outcomes through a feature branch, atomic commits, PR evidence, independent approval, required checks, and controlled merge." policy: allow_implicit_invocation: true diff --git a/skills/agentic-orchestrate-delivery/SKILL.md b/skills/agentic-orchestrate-delivery/SKILL.md index e2f12b8..d074474 100644 --- a/skills/agentic-orchestrate-delivery/SKILL.md +++ b/skills/agentic-orchestrate-delivery/SKILL.md @@ -58,6 +58,6 @@ Treat engineering verification and user acceptance as separate gates: ## Close the delivery -Update affected documentation to current truth. Commit each verified, independently acceptable repository outcome at its approved boundary. Child-repository commits precede parent gitlink or pointer updates. Stage only task-owned paths, preserve dirty state, and never infer push or other remote authority from commit authority. +Update affected documentation to current truth. On a task-specific feature branch, commit each verified, independently acceptable repository outcome at its approved boundary. Child-repository commits precede parent gitlink or pointer updates. Stage only task-owned paths and preserve dirty state. Use `agentic-git-delivery` to push the branch, create the evidence-bearing PR, obtain independent approval, pass required checks, and control merge; explicit local-only instructions stop before push. -Finish with the integrated outcome, decisive evidence, review disposition, acceptance state, documentation state, local commits, preserved user changes, and remaining gaps. Do not return a transcript of agent activity. +Finish with the integrated outcome, decisive evidence, review disposition, acceptance state, documentation state, branch and PR state, commits, checks, approval, merge state, preserved user changes, and remaining gaps. Do not return a transcript of agent activity. diff --git a/skills/agentic-orchestrate-delivery/references/evidence-and-closure.md b/skills/agentic-orchestrate-delivery/references/evidence-and-closure.md index a3bd8bf..a38739e 100644 --- a/skills/agentic-orchestrate-delivery/references/evidence-and-closure.md +++ b/skills/agentic-orchestrate-delivery/references/evidence-and-closure.md @@ -31,13 +31,16 @@ Record the two independently. Tests passing does not imply user acceptance, and ## Close Git boundaries -- Map each independently acceptable and revertible outcome to one local commit. +- Develop on a task-specific feature branch; never use the default branch without an explicit recorded emergency authorization. +- Map each independently acceptable and revertible outcome to one atomic commit. - Verify and commit an accepted boundary before dependent work consumes it. - Stage only owned paths or hunks and inspect the staged diff. - Commit child repositories before updating and committing parent gitlinks or pointers. - Preserve unrelated dirty state and report it. - Leave proposed, incomplete, failed, blocked, rejected, explicitly opted-out, or unsafe-to-isolate work uncommitted. -- Never infer push, pull request, merge, tag, or force authority from local commit authority. +- Push the completed feature branch and create or update a PR unless delivery is explicitly local-only. +- Record PR scope, implementation, evidence, risks, unresolved items, and dependencies. +- Require independent authorized or user approval and all required checks before merge; the implementer cannot approve its own work. ## Completion record @@ -49,6 +52,6 @@ Report: 4. engineering verification state; 5. user acceptance state; 6. documentation updated; -7. commit hashes by repository and boundary; +7. branch, commit hashes, PR, checks, approval, and merge state; 8. preserved user changes; 9. remaining gaps, owner, and next safe action. diff --git a/skills/agentic-orchestrate-delivery/references/lifecycle.md b/skills/agentic-orchestrate-delivery/references/lifecycle.md index 6c0d968..79a50f8 100644 --- a/skills/agentic-orchestrate-delivery/references/lifecycle.md +++ b/skills/agentic-orchestrate-delivery/references/lifecycle.md @@ -50,9 +50,9 @@ Exit when the user or authorized acceptance owner has decided, or when pending a ## 8. Documentation and Git closure -Update current-truth documentation, reconcile child and parent repositories, create scoped local commits, and perform only authorized remote actions. +Update current-truth documentation, reconcile child and parent repositories, create scoped commits on the feature branch, push it, and create or update the evidence-bearing PR unless delivery is explicitly local-only. Merge only after independent approval and required checks pass. -Exit when repository state, evidence, commits, preserved changes, acceptance state, and remaining gaps are accurately reported. +Exit when repository state, evidence, commits, PR, checks, approval, merge state, preserved changes, acceptance state, and remaining gaps are accurately reported. ## Backward transitions diff --git a/skills/agentic-superpowers/SKILL.md b/skills/agentic-superpowers/SKILL.md index 0f0dbe6..62a524d 100644 --- a/skills/agentic-superpowers/SKILL.md +++ b/skills/agentic-superpowers/SKILL.md @@ -44,6 +44,6 @@ The sibling Skills own material design ambiguity, implementation-ready plans, ju Read-only requests authorize inspection and reporting. Change requests authorize in-scope local edits and relevant non-destructive checks. Obtain specific authority for external writes, destructive operations, purchases, force pushes, permanent discard, or material scope expansion unless the current request already grants it. -Finish when the success conditions are met with matching evidence. Commit each independently acceptable repository outcome after its focused evidence passes; follow an approved Plan's atomic commit map and commit a durable Plan baseline only after approval. Do not batch completed independent outcomes or commit read-only, proposed, incomplete, failed, blocked, empty, or unsafe-to-isolate work. Commit authority never implies push authority. +Finish when success conditions have matching evidence. Commit each acceptable repository outcome at its approved atomic boundary; exclude read-only, proposed, incomplete, failed, blocked, empty, or unsafe work. Use `agentic-git-delivery` for feature-branch push, PR evidence, independent approval, required checks, and merge. The implementer cannot approve; explicit local-only instructions stop before remote delivery. Report the outcome first, then decisive evidence, material gaps, the commit result, and a next action only when one remains. diff --git a/skills/agentic-using-git-worktrees/SKILL.md b/skills/agentic-using-git-worktrees/SKILL.md index 1aa3a9e..fca53f8 100644 --- a/skills/agentic-using-git-worktrees/SKILL.md +++ b/skills/agentic-using-git-worktrees/SKILL.md @@ -48,7 +48,7 @@ Establish a proportionate baseline: - distinguish pre-existing failures from failures introduced later; - report a blocking baseline problem instead of claiming the workspace is clean. -Do not start implementation on `main` or `master` unless the user explicitly chose that state or the task is already managed by a safe native workflow. +Do not start implementation on `main`, `master`, or another default branch. A direct-default-branch emergency requires explicit user authorization and a recorded reason; native workflow management alone is not an exception. ## Hand off and finish diff --git a/skills/agentic-writing-plans/SKILL.md b/skills/agentic-writing-plans/SKILL.md index 5fe2c05..f7922ee 100644 --- a/skills/agentic-writing-plans/SKILL.md +++ b/skills/agentic-writing-plans/SKILL.md @@ -61,7 +61,7 @@ Start with: - Sequence: [verify and commit each boundary before dependent work] - Placement: [cross-task closure outside numbered tasks; controller after integration of each accepted boundary] - Repositories: [child repository commits precede parent gitlink/pointer updates] -- Record: [verification, commit hashes, preserved unrelated dirty state; local commits only] +- Record: [branch, verification, hashes, PR/check/approval/merge state, preserved dirty state] - No-commit states: [current boundary incomplete, failed, blocked, unsafe, acceptance gate pending, or explicit opt-out] ``` @@ -96,7 +96,7 @@ Avoid brittle line ranges and mandatory test rituals. Include snippets only for For every repository-changing Plan, define completion, atomic boundaries, and ownership. An acceptance gate delays its boundary; an explicit opt-out prevents commit. Keep a durable Plan uncommitted while proposed; after approval, commit its baseline before implementation. The controller normally owns each task commit after integration; workers commit only when assigned. -Derive task and repository order from dependencies. Verify and commit each boundary before dependent work. Child repository commits precede parent gitlink or pointer updates. Report verification, all hashes, and preserved dirty state. Default to local commits; never push without authorization. +Derive task and repository order from dependencies. Verify and commit each boundary before dependent work. Child repository commits precede parent gitlink or pointer updates. Record branch, evidence, hashes, PR/check/approval/merge state, and preserved dirty state. Use `agentic-git-delivery`; explicit local-only instructions stop before push. ## Remove Plan failures diff --git a/tests/scenarios.json b/tests/scenarios.json index 2f70c64..d577ae5 100644 --- a/tests/scenarios.json +++ b/tests/scenarios.json @@ -16,7 +16,7 @@ "skills": ["agentic-git-delivery"], "approval": false, "local_commit": true, - "evidence": ["diff inspection", "relevant format and link checks", "scoped local commit"] + "evidence": ["task-specific feature branch", "diff inspection", "relevant format and link checks", "atomic commit", "review-gated PR delivery"] } }, { @@ -36,7 +36,7 @@ "skills": ["agentic-debugging", "agentic-git-delivery"], "approval": false, "local_commit": true, - "evidence": ["first divergent boundary", "original symptom rechecked", "scoped local commit"] + "evidence": ["task-specific feature branch", "first divergent boundary", "original symptom rechecked", "atomic commit", "review-gated PR delivery"] } }, { @@ -71,12 +71,12 @@ }, { "id": "git-delivery", - "prompt": "Create a branch, commit the scoped changes, push them, and open a pull request. Do not rewrite remote history.", + "prompt": "Create a feature branch, commit the scoped changes, push it, and open a pull request recording scope, implementation, evidence, risks, and dependencies. Do not merge until an independent approver or the user approves and required checks pass. Do not rewrite remote history.", "expected": { "skills": ["agentic-git-delivery"], "approval": false, "local_commit": true, - "evidence": ["staged diff", "commit and remote pull-request state"] + "evidence": ["default branch unchanged", "staged diff", "atomic commit", "pushed feature branch", "PR evidence fields", "independent approval and required-check merge gate"] } }, { @@ -86,7 +86,7 @@ "skills": ["agentic-superpowers", "agentic-design-planning", "agentic-verification"], "approval": false, "local_commit": true, - "evidence": ["dependency-aware synthesis", "accepted architecture", "claim-matched checks", "scoped local commit"] + "evidence": ["task-specific feature branch", "dependency-aware synthesis", "accepted architecture", "claim-matched checks", "atomic commits and review-gated PR delivery"] } }, { @@ -96,7 +96,7 @@ "skills": ["agentic-git-delivery"], "approval": false, "local_commit": false, - "evidence": ["verified diff", "working tree remains uncommitted"] + "evidence": ["task-specific feature branch", "verified diff", "working tree remains uncommitted", "no push or PR"] } }, { @@ -126,7 +126,7 @@ "skills": ["agentic-subagent-driven-development", "agentic-git-delivery"], "approval": false, "local_commit": true, - "evidence": ["bounded ownership", "durable task state", "integrated diff and evidence", "atomic commits at accepted task boundaries"] + "evidence": ["task-specific feature branch", "bounded ownership", "durable task state", "integrated diff and evidence", "atomic commits and review-gated PR delivery"] } }, { @@ -136,7 +136,7 @@ "skills": ["agentic-orchestrate-delivery"], "approval": false, "local_commit": true, - "evidence": ["current truth and classified decisions", "bounded role ownership", "independent review disposition", "engineering verification and separate user acceptance", "documentation and child-before-parent Git closure"] + "evidence": ["task-specific feature branch", "current truth and classified decisions", "bounded role ownership", "independent review disposition", "engineering verification and separate user acceptance", "documentation, PR approval, required checks, and child-before-parent Git closure"] } } ] From 5ebf9dec2e4622d22a6cac4f6309a6f0606b891c Mon Sep 17 00:00:00 2001 From: wonderbell <969064814@qq.com> Date: Tue, 1 Sep 2026 00:09:21 +0800 Subject: [PATCH 3/3] feat: make agent own Git delivery mechanics --- .codex-plugin/plugin.json | 4 +-- README.md | 10 +++---- docs/architecture.md | 8 +++--- docs/evaluation.md | 4 +-- docs/implementation-closed-loop.md | 8 +++--- docs/migration-from-gpt56-superpowers.md | 10 ++++--- docs/migration-from-obra-superpowers.md | 5 ++-- scripts/validate.py | 17 +++++++----- skills/agentic-git-delivery/SKILL.md | 27 ++++++++++--------- .../agentic-git-delivery/agents/openai.yaml | 4 +-- skills/agentic-orchestrate-delivery/SKILL.md | 2 +- .../references/evidence-and-closure.md | 8 +++--- .../references/lifecycle.md | 2 +- skills/agentic-superpowers/SKILL.md | 4 +-- skills/agentic-using-git-worktrees/SKILL.md | 4 +-- skills/agentic-writing-plans/SKILL.md | 6 ++--- tests/scenarios.json | 4 +-- 17 files changed, 70 insertions(+), 57 deletions(-) diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index 97d7dc0..6f06c48 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "agentic-superpowers", "version": "0.8.0", - "description": "A dependency-aware development suite with eleven Skills, an optional controller-led workflow, review-gated feature-branch delivery, global purpose-bound rigor, and an on-demand audit agent.", + "description": "A dependency-aware development suite with eleven Skills, an optional controller-led workflow, agent-owned PR delivery, review-gated merge, global purpose-bound rigor, and an on-demand audit agent.", "author": { "name": "Wonderbell", "url": "https://github.com/bells0" @@ -21,7 +21,7 @@ "interface": { "displayName": "Agentic Superpowers", "shortDescription": "Eleven model-evolving development Skills", - "longDescription": "A model-neutral accountable coordinator, an explicit controller-led delivery workflow, and focused Skills for design, implementation planning, worktree isolation, bounded subagent execution, debugging, verification, purpose-bound rigor, delegation and review, and review-gated feature-branch Git delivery.", + "longDescription": "A model-neutral accountable coordinator, an explicit controller-led delivery workflow, and focused Skills for design, implementation planning, worktree isolation, bounded subagent execution, debugging, verification, purpose-bound rigor, delegation and review, agent-owned feature-branch and PR delivery, and review-gated merge.", "developerName": "Wonderbell", "category": "Developer Tools", "capabilities": [ diff --git a/README.md b/README.md index 0c9d23c..28fbc57 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Version 0.8 introduces the model-neutral `agentic-*` namespace while retaining t The suite evolves through versioned model profiles instead of embedding a model generation in repository, plugin, or Skill identifiers. The current profile was shaped by [OpenAI's GPT-5.6 prompting guidance](https://developers.openai.com/api/docs/guides/prompt-guidance-gpt-5p6), while the stable contracts remain outcomes, constraints, evidence, autonomy, validation, permissions, and stop rules. See [model profiles](docs/model-profiles.md) for the distinction between design inputs, deterministic package checks, and live-model evidence. -This suite keeps the useful invariants—permission boundaries, project grounding, root-cause diagnosis, evidence before claims, preservation of user changes—and removes methodology ritual. It does not impose fail-first development, repeated broad suites, automatic worktrees, or per-task review chains. Repository development occurs on task-specific feature branches. Verified outcomes receive atomic commits, the completed branch is pushed into a reviewable pull request, and merge waits for independent authorized or user approval plus all required checks. The implementer cannot approve its own work. Explicit local-only requests stop before push; direct default-branch work requires a recorded user-authorized emergency exception. +This suite keeps the useful invariants—permission boundaries, project grounding, root-cause diagnosis, evidence before claims, preservation of user changes—and removes methodology ritual. It does not impose fail-first development, repeated broad suites, automatic worktrees, or per-task review chains. For repository changes, the Agent automatically owns task-branch selection, atomic commits, branch push, and PR creation or update without stepwise approval requests. The user reviews the PR and decides whether it may merge; the implementer cannot approve its own work. Explicit local-only requests stop before push, while merge, force push, history rewrite, unmerged-branch deletion, visibility changes, and comparable high-impact actions still require explicit authority. ## Structure @@ -30,7 +30,7 @@ All eleven are direct entry points. The orchestrated workflow is opt-in for expl ## Delivery contract -For repository-changing work, use a feature branch from the start. After focused evidence passes, create atomic commits, push the branch, and open or update a PR that records scope, implementation, verification evidence, risks, unresolved items, and dependencies. An independent authorized reviewer or the user must approve; required checks must pass before merge. Development, commits, or pushes directly on `main` or another default branch are prohibited unless the user explicitly authorizes an emergency exception and its reason is recorded. +For repository-changing work, the Agent automatically creates or selects an isolated feature branch from a verified baseline; it never asks the user to create the branch. It protects and safely migrates uncommitted default-branch work, asking only when separation is unsafe. After focused evidence passes, the Agent commits, pushes, and opens or updates a PR recording scope, implementation, evidence, risks, dependencies, and unresolved items. These mechanical steps are preauthorized by the change request. An independent authorized reviewer or the user must approve and required checks must pass before merge. Direct default-branch work requires prior user authorization and a recorded reason. After confirmed merge, cleanup is automatic only when the worktree is clean and no unmerged commits or open dependencies remain. ## Prompt footprint @@ -39,10 +39,10 @@ The comparison baseline is a local 14-Skill installation from `obra/superpowers` | Measure | Baseline | Version 0.8 | Reduction | |---|---:|---:|---:| | Workflow Skills | 14 | 11 | 21.4% | -| Total `SKILL.md` words | 15,737 | 5,417 | 65.6% | +| Total `SKILL.md` words | 15,737 | 5,474 | 65.2% | | Always-trigger router | Yes | No | Removed | -A focused route loads one body of 233–850 words. The longest Skills carry concrete planning, orchestrated-delivery, worktree, or subagent contracts and load only when those structures materially help. The full 5,417-word package is never a mandatory prompt chain. Word count is a structural proxy, not a model-quality or tokenization guarantee. +A focused route loads one body of 233–850 words. The longest Skills carry concrete planning, orchestrated-delivery, worktree, or subagent contracts and load only when those structures materially help. The full 5,474-word package is never a mandatory prompt chain. Word count is a structural proxy, not a model-quality or tokenization guarantee. ## Install @@ -124,7 +124,7 @@ Use $agentic-superpowers to coordinate this migration end to end. Use `docs/implementation-closed-loop.md` as a reusable template for long-running Spec → Plan → Execution workflows (including Plan A/B/C style handoffs and model-split recommendations). ``` -Ordinary questions still use Codex directly. Repository-changing outcomes implicitly add Git & Delivery for the feature-branch, commit, PR, approval, check, and merge contract; explicit `$skill-name` invocation remains available. +Ordinary questions still use Codex directly. Repository-changing outcomes implicitly add Git & Delivery: the Agent handles branch, commit, push, and PR mechanics; the user or an independent reviewer controls approval, and merge remains explicitly authorized. Explicit `$skill-name` invocation remains available. ### Process auditor diff --git a/docs/architecture.md b/docs/architecture.md index 00c8b99..29c3776 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -30,7 +30,7 @@ The full repository installer adds the concise `.codex/purpose-bound-rigor.md` f - Read-only and clear non-repository work: no suite Skill. - Explicit standardized delivery or long-running multi-module work that needs durable cross-phase control: Orchestrated Delivery. -- Repository-changing outcomes: Git & Delivery owns the task feature branch, atomic commits, branch push, evidence-bearing PR, independent approval, required checks, and controlled merge. +- Repository-changing outcomes: Git & Delivery makes the Agent own the task branch, atomic commits, branch push, and evidence-bearing PR; independent approval and required checks gate explicitly authorized merge. - One consequential decision domain: one narrow Skill. - Two or more dependent phases whose ordering and synthesis affect success: core plus only the one or two narrow Skills that change a decision. - Proposed hashes, gates, isolation, mocks, freezes, repeated reviews, or broad reruns: Purpose-Bound Rigor requires a concrete protected outcome, observed risk, existing gap, and minimal intervention. @@ -66,9 +66,9 @@ Worktree Isolation activates only for an explicit request or a concrete safety b ### Feature-branch, review-gated delivery -Development starts on a task-specific feature branch, never directly on `main` or another default branch. Each independently acceptable outcome maps to one atomic commit per affected repository after focused evidence passes. The outcome must have one purpose and be independently revertible without leaving dependent history broken; every edit or partial test phase is not a boundary. An approved Plan supplies the commit map, and dependent work starts only after the current boundary is verified and committed. Task-owned paths or hunks are staged explicitly, unrelated user changes remain untouched, and proposed, opted-out, unsafe, incomplete, failed, blocked, or empty work remains uncommitted. +Before implementation, the Agent automatically creates or selects a task-specific feature branch from a verified baseline, never asks the user to create it, and never works directly on `main` or another default branch. If the default branch has uncommitted user work, the Agent protects and safely migrates it; only unsafe separation requires a question. Each independently acceptable outcome maps to one atomic commit per affected repository after focused evidence passes. The outcome must have one purpose and be independently revertible without leaving dependent history broken. Task-owned paths or hunks are staged explicitly, unrelated user changes remain untouched, and proposed, opted-out, unsafe, incomplete, failed, blocked, or empty work remains uncommitted. -After completion, the feature branch is pushed and represented by a PR containing scope, implementation, verification evidence, risks, unresolved items, and dependencies. The implementer cannot approve its own work. Merge requires approval from an independent authorized reviewer or the user plus every required check. Explicit local-only instructions stop before push. Direct default-branch development or push is an emergency exception requiring prior user authorization and a recorded reason. +After focused verification, the Agent automatically commits, pushes, and opens or updates a PR containing scope, implementation, evidence, risks, unresolved items, and dependencies. The change request preauthorizes these mechanical actions, so the Agent does not seek stepwise confirmation. PR creation is not approval, and the implementer cannot approve its own work. Merge requires independent authorized-reviewer or user approval, every required check, and explicit merge authority. Explicit local-only instructions stop before push. Direct default-branch work requires prior user authorization and a recorded reason. After confirmed merge, automatic local and remote cleanup is allowed only with a clean worktree and no unmerged commits or open dependencies. ### Claim-based verification @@ -97,7 +97,7 @@ Delegation is justified by independent deliverables, elapsed-time savings, or fr |---|---| | State outcomes and stop rules | Six-part core contract and completion conditions | | Remove repeated process instructions | Nine focused bodies loaded only at matching boundaries; no mandatory chain | -| Define autonomy and permissions | Feature-branch delivery, explicit local-only stops, independent approval, required checks, and controlled merge | +| Define autonomy and permissions | Agent-owned branch, commit, push, and PR mechanics; independent approval, explicit merge authority, and safe cleanup | | Route tools by dependency | Parallel independent work; sequential dependencies; synthesis before claims | | Validate what matters | Claim-to-evidence selection and explicit gaps | | Keep progress sparse | Outcome-first reporting and phase-level updates | diff --git a/docs/evaluation.md b/docs/evaluation.md index 54b6084..d09ccff 100644 --- a/docs/evaluation.md +++ b/docs/evaluation.md @@ -13,7 +13,7 @@ The checked-in scenario matrix tests routing intent and package invariants. It i | Material visual or release claim | Verification | Match claim breadth to reliable evidence | | Unjustified workflow defenses | Purpose-Bound Rigor | Require a concrete protected outcome, observed risk, existing gap, and minimal effective measure | | Independent investigations or focused security review | Delegation & Review | Parallelize true independence and synthesize findings | -| Authorized branch, commit, push, and pull request | Git & Delivery | Preserve unrelated state, record PR evidence, and keep merge gated by independent approval and required checks | +| Repository change with remote delivery | Git & Delivery | Agent owns branch, commit, push, and PR mechanics without stepwise approval; independent review, checks, and explicit authority gate merge | | Cross-module migration with architecture and evidence dependencies | Core + Design + Verification | Coordinate phases without loading the complete suite | | Explicit no-commit request | Git & Delivery | Verify the change while leaving it uncommitted | | Settled multi-module requirements | Writing Plans | Separate provided, observed, proposed, and unresolved facts in an implementation-ready plan | @@ -25,7 +25,7 @@ The checked-in scenario matrix tests routing intent and package invariants. It i ## Current evidence -- Deterministic validation checks all eleven Skill structures, per-Skill trigger budgets, forbidden forced ritual language, declared workflow resources, dependency-aware routing, the review-gated Git delivery contract, and the fourteen-scenario specification. +- Deterministic validation checks all eleven Skill structures, per-Skill trigger budgets, forbidden forced ritual language, declared workflow resources, dependency-aware routing, the agent-owned mechanical Git delivery contract, review-gated merge, and the fourteen-scenario specification. - Transaction smoke tests exercise fresh and upgrade installs, exact restore semantics, conflicts, injected install and restore failures, legacy `gpt56-*` migration, version-0.3, version-0.6, version-0.7, and version-1 compatibility, path aliases, locks, spaces, and broken links. - A three-case blind forward review on 2026-07-20 covered an implicit simple-change commit, an explicit no-commit request, and a multi-repository completion. All three followed the version-0.3 local-commit contract. - Three focused GPT-5.6 Sol scenarios on 2026-07-27 covered evidence-grounded implementation plans, dirty-checkout worktree isolation, and controller-owned subagent execution. The first Writing Plans pass exposed invented repository details; the revised evidence classification passed the second blind scenario. diff --git a/docs/implementation-closed-loop.md b/docs/implementation-closed-loop.md index 478aac1..99460ed 100644 --- a/docs/implementation-closed-loop.md +++ b/docs/implementation-closed-loop.md @@ -55,10 +55,12 @@ Plan 仍未确定时不应边写边改;边界不清晰要回到 Plan。 - 汇总每项验收证据是否通过 - 标明未解决项与受限项 -- 在功能分支形成原子提交;完成后推送并创建或更新 PR +- Agent 在实施前自动创建或选择隔离功能分支;默认分支有未提交工作时先保护并安全迁移,仅无法安全拆分时询问用户 +- 验证通过后,Agent 自动形成原子提交、推送功能分支并创建或更新 PR,不逐步请求用户操作或授权 - PR 记录范围、实现、验证证据、风险与依赖 -- 开发者不得审批自己的实现;独立审批者或用户批准且必需检查通过后才能合并 -- 禁止直接在默认分支开发或推送,用户明确授权并记录原因的紧急例外除外 +- 创建 PR 不等于批准;开发者不得审批自己的实现,独立审批者或用户批准、必需检查通过并获得明确合并授权后才能合并 +- 直接在默认分支工作、合并、强推、改写历史和删除未合并分支等高影响动作仍需明确授权 +- 确认合并后,仅在工作区干净且不存在未合并提交或开放依赖时自动清理本地与远程分支 ## 典型任务分层(Plan A / B / C) diff --git a/docs/migration-from-gpt56-superpowers.md b/docs/migration-from-gpt56-superpowers.md index 61140a0..23b2aa5 100644 --- a/docs/migration-from-gpt56-superpowers.md +++ b/docs/migration-from-gpt56-superpowers.md @@ -34,13 +34,15 @@ The suite deliberately does not install live aliases for old Skill names. Keepin `agentic-git-delivery` also establishes a review-gated default for repository changes: -- development, commits, and pushes occur on a task-specific feature branch, not the default branch; -- verified outcomes receive atomic commits, then the completed branch is pushed into a PR; +- the Agent automatically creates or selects the isolated task branch before implementation and never asks the user to create it; +- dirty default-branch work is protected and safely migrated, with user input needed only when separation is unsafe; +- after verification, atomic commits, feature-branch push, and PR creation or update happen automatically without stepwise confirmation; - the PR records scope, implementation, verification evidence, risks, unresolved items, and dependencies; -- an independent authorized reviewer or the user must approve, and every required check must pass before merge; +- PR creation is not approval; an independent authorized reviewer or the user must approve, every required check must pass, and merge requires explicit authority; - the implementer cannot approve its own work; - an explicit local-only request stops before push; -- direct default-branch work requires prior user authorization and a recorded emergency reason. +- direct default-branch work, force push, history rewrite, unmerged-branch deletion, visibility changes, and comparable high-impact actions require prior authorization; +- after confirmed merge, cleanup is automatic only when the worktree is clean and no unmerged commits or open dependencies remain. ## Repository and catalog contract diff --git a/docs/migration-from-obra-superpowers.md b/docs/migration-from-obra-superpowers.md index 6a8ad18..598707d 100644 --- a/docs/migration-from-obra-superpowers.md +++ b/docs/migration-from-obra-superpowers.md @@ -33,10 +33,11 @@ This project is an original model-evolving rewrite, not a compatibility layer. I - Ground decisions in the project and preserve unrelated user changes. - Respect explicit scope, values, and authorization. -- Obtain specific authority for unapproved external or destructive actions. +- Treat agent-owned task-branch, commit, feature-branch push, and PR mechanics as preauthorized by a repository change request; obtain specific authority for merge or other high-impact actions. - Diagnose non-obvious failures from evidence and revisit the original symptom. - Match material completion claims to proportionate evidence and disclose gaps. -- Develop on a task feature branch, commit verified atomic outcomes, push the completed branch, and use an evidence-bearing PR with independent approval and required checks before merge. +- Have the Agent automatically create or select the task branch, protect dirty default-branch work, commit verified atomic outcomes, push the completed branch, and open or update the evidence-bearing PR without stepwise confirmation. +- Treat PR creation as delivery, not approval; merge only with independent or user approval, required checks, and explicit merge authority. - Preserve explicit local-only delivery requests and require a recorded user-authorized emergency exception for direct default-branch work. - Evaluate review findings technically rather than applying them blindly. diff --git a/scripts/validate.py b/scripts/validate.py index 34c700d..224751a 100755 --- a/scripts/validate.py +++ b/scripts/validate.py @@ -214,14 +214,19 @@ def load_json(path: Path) -> object: git_delivery_path = SKILLS_ROOT / "agentic-git-delivery" / "SKILL.md" git_delivery_text = git_delivery_path.read_text(encoding="utf-8") if git_delivery_path.is_file() else "" git_delivery_patterns = { - "feature branch before development": r"before development.{0,80}feature branch", - "default branch prohibition": r"do not develop, commit, or push directly.{0,80}default branch", - "branch push and pull request": r"push the feature branch.{0,80}pull request", - "pull request evidence fields": r"PR scope.{0,120}verification evidence.{0,120}risks.{0,80}dependencies", + "agent and user responsibility split": r"agent owns delivery mechanics.{0,80}user reviews the PR and decides merge", + "automatic isolated branch": r"before implementation.{0,80}automatically create or select.{0,80}isolated task branch", + "no user branch mechanics": r"never ask the user to do it", + "dirty default branch protection": r"protect and migrate uncommitted default-branch work.{0,80}safe separation is impossible", + "preauthorized commit push and PR": r"automatically commit, push, and open or update the PR.{0,100}preauthorized defaults.{0,80}stepwise confirmation", + "pull request evidence fields": r"record scope.{0,80}implementation.{0,80}evidence.{0,80}risks.{0,80}dependencies.{0,80}unresolved items", "implementer cannot approve": r"implementer.{0,40}cannot approve", - "independent or user approval": r"independent authorized reviewer or the user", + "pull request is not approval": r"PR creation.{0,40}not approval", + "independent or user approval": r"independent authorized-reviewer or user approval", "required checks before merge": r"merge only after.{0,80}required check", - "recorded emergency exception": r"emergency exception.{0,100}explicit user authorization.{0,80}record the reason", + "high-impact authorization": r"explicit authorization.{0,120}merge.{0,80}force push.{0,80}history rewrite.{0,100}deleting an unmerged branch.{0,80}visibility changes", + "recorded default branch exception": r"direct default-branch work.{0,80}prior user authorization.{0,80}recorded reason", + "safe automatic cleanup": r"after confirmed merge.{0,100}automatically clean.{0,100}worktree is clean.{0,100}no unmerged commits or open dependencies", } for label, pattern in git_delivery_patterns.items(): check( diff --git a/skills/agentic-git-delivery/SKILL.md b/skills/agentic-git-delivery/SKILL.md index 67e3445..68904fe 100644 --- a/skills/agentic-git-delivery/SKILL.md +++ b/skills/agentic-git-delivery/SKILL.md @@ -1,27 +1,28 @@ --- name: agentic-git-delivery -description: Deliver verified repository changes through feature branches, atomic commits, pushed branch state, reviewable pull requests, independent approval, required checks, and controlled merge. +description: Deliver verified changes through agent-owned feature branches, atomic commits, PR evidence, independent approval, required checks, controlled merge, and safe cleanup. --- # Agentic Git & Delivery -Deliver repository changes without losing user work, bypassing review, or treating implementation as approval. +The agent owns delivery mechanics; the user reviews the PR and decides merge. -## Feature-branch contract +## Agent-owned delivery -1. Inspect status, default branch, upstreams, remotes, and repository rules. Preserve unrelated user changes. -2. Before development, create or switch to a task-specific feature branch. Do not develop, commit, or push directly on `main` or another default branch. -3. Stage only task-owned paths or hunks. Map each independently acceptable, verified, revertible outcome to one atomic commit; never commit proposed, incomplete, failed, empty, or opted-out work. -4. After the development outcome passes its focused evidence, push the feature branch and open or update its pull request unless the user explicitly limits delivery to local state or remote authority is unavailable. -5. Record PR scope, implementation, verification evidence, risks, unresolved items, and dependencies. Keep required checks visible and current. +1. Inspect the default branch, status, upstreams, remotes, rules, and verified baseline. Preserve unrelated changes. +2. Before implementation, automatically create or select an isolated task branch. Never ask the user to do it. Protect and migrate uncommitted default-branch work; ask only when safe separation is impossible. +3. Stage owned paths or hunks. Map each acceptable, verified, revertible outcome to one atomic commit; exclude proposed, incomplete, failed, empty, or opted-out work. +4. After verification, automatically commit, push, and open or update the PR. These are preauthorized defaults; do not seek stepwise confirmation. Explicit local-only instructions stop before push. +5. Record scope, implementation, evidence, risks, dependencies, and unresolved items; keep required checks current. ## Approval and merge gate -- The implementer owns the change but cannot approve it. Self-review and green checks are evidence, not approval. -- Require approval from an independent authorized reviewer or the user. -- Merge only after that approval and every required check passes. Never bypass failed hooks, checks, branch protection, or required review. -- If review requests changes, update the same feature branch, add focused evidence, and request approval again when required. +- The implementer cannot approve. PR creation, self-review, and green checks are not approval. +- Require independent authorized-reviewer or user approval. Merge only after approval and required checks pass; never bypass protections. +- Update the same branch for review fixes and refresh evidence. -Direct default-branch work is an emergency exception only. Obtain explicit user authorization first and record the reason in the commit or PR. Force pushes, history rewrites, destructive cleanup, merge, tags, and releases require matching authority. +Immediate explicit authorization remains required for merge, force push, history rewrite, deleting an unmerged branch, visibility changes, or comparable high-impact actions. Direct default-branch work requires prior user authorization and a recorded reason. + +After confirmed merge, automatically clean remote and local branches only when the worktree is clean and no unmerged commits or open dependencies remain. Otherwise report the blocker. Report branch, commits, push and PR state, checks, approval, merge result, preserved changes, and remaining blockers. diff --git a/skills/agentic-git-delivery/agents/openai.yaml b/skills/agentic-git-delivery/agents/openai.yaml index 07832d4..c45509a 100644 --- a/skills/agentic-git-delivery/agents/openai.yaml +++ b/skills/agentic-git-delivery/agents/openai.yaml @@ -1,6 +1,6 @@ interface: display_name: "Agentic Git & Delivery" - short_description: "Deliver changes through reviewed feature branches" - default_prompt: "Use $agentic-git-delivery to deliver verified outcomes through a feature branch, atomic commits, PR evidence, independent approval, required checks, and controlled merge." + short_description: "Own branch, commit, push, and PR mechanics" + default_prompt: "Use $agentic-git-delivery to perform authorized branch, commit, push, and PR mechanics; leave approval and merge decisions to an independent reviewer or the user." policy: allow_implicit_invocation: true diff --git a/skills/agentic-orchestrate-delivery/SKILL.md b/skills/agentic-orchestrate-delivery/SKILL.md index d074474..bbf986f 100644 --- a/skills/agentic-orchestrate-delivery/SKILL.md +++ b/skills/agentic-orchestrate-delivery/SKILL.md @@ -58,6 +58,6 @@ Treat engineering verification and user acceptance as separate gates: ## Close the delivery -Update affected documentation to current truth. On a task-specific feature branch, commit each verified, independently acceptable repository outcome at its approved boundary. Child-repository commits precede parent gitlink or pointer updates. Stage only task-owned paths and preserve dirty state. Use `agentic-git-delivery` to push the branch, create the evidence-bearing PR, obtain independent approval, pass required checks, and control merge; explicit local-only instructions stop before push. +Update affected documentation to current truth. Use `agentic-git-delivery` before implementation to create or select an isolated task branch and safely protect or migrate default-branch changes without asking the user to perform Git mechanics. Commit each verified, independently acceptable outcome at its approved boundary; child-repository commits precede parent gitlink or pointer updates. Stage only task-owned paths and preserve dirty state. After verification, automatically commit, push, and create or update the evidence-bearing PR without stepwise confirmation. The user or an independent reviewer approves; merge remains explicitly authorized and required checks must pass. Explicit local-only instructions stop before push. Finish with the integrated outcome, decisive evidence, review disposition, acceptance state, documentation state, branch and PR state, commits, checks, approval, merge state, preserved user changes, and remaining gaps. Do not return a transcript of agent activity. diff --git a/skills/agentic-orchestrate-delivery/references/evidence-and-closure.md b/skills/agentic-orchestrate-delivery/references/evidence-and-closure.md index a38739e..3f83a3a 100644 --- a/skills/agentic-orchestrate-delivery/references/evidence-and-closure.md +++ b/skills/agentic-orchestrate-delivery/references/evidence-and-closure.md @@ -31,16 +31,18 @@ Record the two independently. Tests passing does not imply user acceptance, and ## Close Git boundaries -- Develop on a task-specific feature branch; never use the default branch without an explicit recorded emergency authorization. +- Automatically create or select a task-specific feature branch before implementation; never ask the user to create it or use the default branch without explicit recorded authorization. +- Protect and safely migrate uncommitted default-branch work; ask only when it cannot be separated safely. - Map each independently acceptable and revertible outcome to one atomic commit. - Verify and commit an accepted boundary before dependent work consumes it. - Stage only owned paths or hunks and inspect the staged diff. - Commit child repositories before updating and committing parent gitlinks or pointers. - Preserve unrelated dirty state and report it. - Leave proposed, incomplete, failed, blocked, rejected, explicitly opted-out, or unsafe-to-isolate work uncommitted. -- Push the completed feature branch and create or update a PR unless delivery is explicitly local-only. +- After verification, automatically commit, push the completed feature branch, and create or update a PR without stepwise confirmation unless delivery is explicitly local-only. - Record PR scope, implementation, evidence, risks, unresolved items, and dependencies. -- Require independent authorized or user approval and all required checks before merge; the implementer cannot approve its own work. +- Require independent authorized or user approval, all required checks, and explicit merge authority; PR creation is not approval and the implementer cannot approve its own work. +- After confirmed merge, clean local and remote branches automatically only when the worktree is clean and no unmerged commits or open dependencies remain. ## Completion record diff --git a/skills/agentic-orchestrate-delivery/references/lifecycle.md b/skills/agentic-orchestrate-delivery/references/lifecycle.md index 79a50f8..bccf7b3 100644 --- a/skills/agentic-orchestrate-delivery/references/lifecycle.md +++ b/skills/agentic-orchestrate-delivery/references/lifecycle.md @@ -50,7 +50,7 @@ Exit when the user or authorized acceptance owner has decided, or when pending a ## 8. Documentation and Git closure -Update current-truth documentation, reconcile child and parent repositories, create scoped commits on the feature branch, push it, and create or update the evidence-bearing PR unless delivery is explicitly local-only. Merge only after independent approval and required checks pass. +Update current-truth documentation and reconcile child and parent repositories. The Agent automatically creates or selects the isolated feature branch, protects or safely migrates dirty default-branch work, makes scoped commits, pushes, and creates or updates the evidence-bearing PR unless delivery is explicitly local-only. Do not ask the user to perform or separately approve these mechanics. Merge only with explicit authority after independent approval and required checks pass; clean branches automatically after confirmed merge only when no unmerged work or open dependency remains. Exit when repository state, evidence, commits, PR, checks, approval, merge state, preserved changes, acceptance state, and remaining gaps are accurately reported. diff --git a/skills/agentic-superpowers/SKILL.md b/skills/agentic-superpowers/SKILL.md index 62a524d..685dee7 100644 --- a/skills/agentic-superpowers/SKILL.md +++ b/skills/agentic-superpowers/SKILL.md @@ -42,8 +42,8 @@ The sibling Skills own material design ambiguity, implementation-ready plans, ju ## Permission and completion -Read-only requests authorize inspection and reporting. Change requests authorize in-scope local edits and relevant non-destructive checks. Obtain specific authority for external writes, destructive operations, purchases, force pushes, permanent discard, or material scope expansion unless the current request already grants it. +Read-only requests authorize inspection. Repository changes authorize edits, checks, isolated task branches, atomic commits, feature-branch push, and PR creation or update. The Agent performs these mechanics without repeated confirmation. Obtain authority for merge, force push, history rewrite, unmerged-branch deletion, visibility changes, destructive operations, purchases, permanent discard, or material scope expansion. -Finish when success conditions have matching evidence. Commit each acceptable repository outcome at its approved atomic boundary; exclude read-only, proposed, incomplete, failed, blocked, empty, or unsafe work. Use `agentic-git-delivery` for feature-branch push, PR evidence, independent approval, required checks, and merge. The implementer cannot approve; explicit local-only instructions stop before remote delivery. +Finish when success conditions have matching evidence. Commit each acceptable repository outcome at its approved atomic boundary; exclude read-only, proposed, incomplete, failed, blocked, empty, or unsafe work. Use `agentic-git-delivery` for agent-owned delivery mechanics, PR evidence, independent approval, required checks, explicitly authorized merge, and safe post-merge cleanup. The implementer cannot approve; explicit local-only instructions stop before remote delivery. Report the outcome first, then decisive evidence, material gaps, the commit result, and a next action only when one remains. diff --git a/skills/agentic-using-git-worktrees/SKILL.md b/skills/agentic-using-git-worktrees/SKILL.md index fca53f8..156ee13 100644 --- a/skills/agentic-using-git-worktrees/SKILL.md +++ b/skills/agentic-using-git-worktrees/SKILL.md @@ -28,7 +28,7 @@ If already isolated, keep the existing worktree. Do not nest another one. Record ## Create isolation safely -1. Prefer a Codex or harness-native worktree action when the current task can use it. Native controls own placement, branch state, handoff, and cleanup; do not create invisible parallel state behind them. +1. Prefer a Codex or harness-native worktree action when the current task can use it. The Agent creates or selects the branch; never ask the user to perform this mechanic. Native controls own placement, branch state, handoff, and cleanup; do not create invisible parallel state behind them. 2. If no native path is available, use `git worktree` directly. 3. Honor explicit branch and directory choices. Otherwise use the repository's existing `.worktrees/` or `worktrees/` convention; `.worktrees/` wins when both exist. 4. Before using a project-local directory, verify it is ignored with `git check-ignore`. Do not silently edit `.gitignore` or create a commit solely to make worktree setup succeed. Use an approved external location or ask when no safe location exists. @@ -61,4 +61,4 @@ Report: - setup and baseline evidence; - any limitation affecting later cleanup. -Let `agentic-git-delivery` own atomic completion commits and any safe cleanup. Worktree creation never authorizes push, merge, branch deletion, or removal of another worktree. +Let `agentic-git-delivery` own atomic completion commits, feature-branch push, PR delivery, and safe post-merge cleanup. Worktree creation alone never authorizes merge, branch deletion, or removal of another worktree. diff --git a/skills/agentic-writing-plans/SKILL.md b/skills/agentic-writing-plans/SKILL.md index f7922ee..aa02edd 100644 --- a/skills/agentic-writing-plans/SKILL.md +++ b/skills/agentic-writing-plans/SKILL.md @@ -55,7 +55,7 @@ Start with: ## Delivery Contract - Completion trigger: [objective condition; user acceptance when required] -- Commit ownership: [controller or explicitly assigned worker] +- Delivery ownership: [Agent owns branch, commit, push, PR; user owns merge] - Plan baseline: [commit an approved durable Plan before implementation; never commit it while proposed] - Commit map: [Task N → owned paths, evidence, message; group only inseparable tasks] - Sequence: [verify and commit each boundary before dependent work] @@ -94,9 +94,9 @@ Avoid brittle line ranges and mandatory test rituals. Include snippets only for ## Define the delivery contract -For every repository-changing Plan, define completion, atomic boundaries, and ownership. An acceptance gate delays its boundary; an explicit opt-out prevents commit. Keep a durable Plan uncommitted while proposed; after approval, commit its baseline before implementation. The controller normally owns each task commit after integration; workers commit only when assigned. +For every repository-changing Plan, define completion and atomic boundaries. Acceptance gates delay their boundary; explicit opt-outs prevent commit. Keep a durable Plan uncommitted while proposed; commit its baseline before implementation. The Agent owns delivery mechanics; workers commit only when assigned. -Derive task and repository order from dependencies. Verify and commit each boundary before dependent work. Child repository commits precede parent gitlink or pointer updates. Record branch, evidence, hashes, PR/check/approval/merge state, and preserved dirty state. Use `agentic-git-delivery`; explicit local-only instructions stop before push. +Derive task and repository order from dependencies. Verify and commit each boundary before dependent work. Child repository commits precede parent gitlink or pointer updates. Record branch, evidence, hashes, PR/check/approval/merge state, and preserved dirty state. Use `agentic-git-delivery`; the user controls merge, and explicit local-only instructions stop before push. ## Remove Plan failures diff --git a/tests/scenarios.json b/tests/scenarios.json index d577ae5..c951677 100644 --- a/tests/scenarios.json +++ b/tests/scenarios.json @@ -71,12 +71,12 @@ }, { "id": "git-delivery", - "prompt": "Create a feature branch, commit the scoped changes, push it, and open a pull request recording scope, implementation, evidence, risks, and dependencies. Do not merge until an independent approver or the user approves and required checks pass. Do not rewrite remote history.", + "prompt": "Implement this repository change. Own the mechanical Git delivery without asking me to create a branch, commit, push, or open the pull request. Protect any dirty default-branch work, record scope, implementation, evidence, risks, dependencies, and unresolved items in the PR, and leave merge for my explicit decision after independent approval and required checks.", "expected": { "skills": ["agentic-git-delivery"], "approval": false, "local_commit": true, - "evidence": ["default branch unchanged", "staged diff", "atomic commit", "pushed feature branch", "PR evidence fields", "independent approval and required-check merge gate"] + "evidence": ["agent-owned branch, commit, push, and PR mechanics", "protected or safely migrated default-branch work", "staged diff", "atomic commit", "PR evidence fields", "PR creation is not approval", "independent approval, required-check, and explicit-authority merge gate", "conditional safe post-merge cleanup"] } }, {