The development catalog contains twenty-eight canonical skills: fourteen
stable rows and fourteen provisional rows. The provisional rows are the
ChatGPT-manager subrouter, approved-roadmap manager-assignment leaf, Go and
Ruby language profiles, PostgreSQL and SQLite profiles, pytest and Minitest
test profiles, Dockerfile and Vagrantfile profiles, the Bash-to-Python
conversion skill, the native Go and go-cmp test profiles, and the Nix test
profile.
APG13
individually reviewed and promoted the six v0.2 catalog entries to stable
after repeated real use,
representative non-triggers, edge or stop behavior, post-Superpowers evidence,
complete regression, and fresh non-author review. Stability means suitability
for routine bounded use within each recorded trigger and project boundary; it
does not mean production warranty, universal applicability, automatic
invocation, or comparative superiority.
Public v0.2.0 appended one intentionally squashed release commit and annotated tag to preserved public v0.1.0 and supplied the maintainer’s separately managed user-global Codex source. Superpowers was subsequently decommissioned, and a bounded fresh RepoMap smoke discovered all six then-public skills, successfully applied the review skill, passed managed checks, and preserved the target repository. Public v0.3.0 later appends one squashed commit and annotated tag over unchanged v0.2.0, expands that public source to nineteen skills, and preserves the integration owner. These are distribution and post-transition evidence; they do not promote any skill.
APG10 evaluated
one experimental source under frozen concealed-source scenarios. Existing
owners already handled assumptions, alternatives, traceability, speculative
scope, necessary consistency work, and proportional escalation. Two independent
positive scenarios supported one correction to
implementing-with-test-discipline: when policy and removal authority are
clear, its coherent slice now includes locally owned code or test artifacts
whose sole purpose ended because of the authorized change. Unrelated cleanup
and project-owned lifecycle decisions remain outside that rule. No other leaf
changed, no seventh skill was added, and all six remain provisional.
APG3 remains a truthful blocked experiment. It stopped before its clean comparison could begin and authored no candidate. APG4 uses a separately authorized bootstrap standard; it does not rewrite APG3 or claim clean A/B evidence.
The canonical APG skill sources live under skills/. Codex repository
discovery is supplied by the checked-in .agents/skills/ directory, whose
checked-in development entries are relative symbolic links to these canonical
leaves. The projection
contains no independent skill content and does not change maturity. Current
official Codex skill documentation
identifies .agents/skills as a repository discovery location and states that
Codex follows symlinked skill folders.
The APG v0.1 bootstrap model defines maturity, acceptance, rollback, dogfooding, and later clean-evaluation requirements.
APG5 records the first
real explicit-use observation: six-skill discovery passed and
reviewing-and-verifying-repository-work produced an evidence-backed pass in
the APG private working repository. Automatic selection was not evaluated, and
all six skills remain provisional.
APG6 records
the first successful additional-repository use. RepoMap supplied one read-only
design observation using designing-significant-changes and the review skill,
plus one accepted documentation-only implementation and closeout using
planning-repository-work and the review skill. Material non-triggers were
proportionate, and the review leaf received one evidence-backed frontmatter
discovery correction for bounded repository artifacts. No procedure changed,
automatic selection was not measured, and every skill remains provisional.
APG7 records one
real APG executable observation for implementing-with-test-discipline and a
26-family behavioral suite plus disposable project-local lifecycle. Design,
planning, review, and bounded reviewer-assignment procedures were used within
their triggers; debugging was a material non-trigger. This is tooling evidence,
not automatic-selection, comparative, stable-maturity, or production-readiness
evidence. Every skill remains provisional.
APG7A adds a bounded correction observation for debugging-systematically,
implementing-with-test-discipline, and the review skill. The semantic ignore
override was reproduced, focused tests failed against APG7 production, and the
corrected 28-family suite and disposable recovery control passed. Planning and
significant-change design remained material non-triggers. This evidence adds no
maturity transition; every skill remains provisional.
APG8
records the first real-project managed adoption and check. Planning and review
applied to the bounded deployment and evidence gate; significant-change design,
implementation test discipline, and systematic debugging remained material
non-triggers. Six existing RepoMap links, user-owned exclusion bytes, and the
tracked repository were preserved. This evidence adds no maturity transition;
every skill remains provisional.
APG13
separately inventories the complete evidence for each leaf and applies one
frozen positive, non-trigger, and edge or stop family per skill. All six current
leaves passed without a procedure correction and remain byte-identical to the
APG12A baseline. Six fresh final per-skill reviews returned accept-stable.
APG16 adds one provisional router for ambiguous APG selection, routing audit, and capability-health diagnosis. It selects one smallest sufficient process leaf or none, rejects mandatory chaining, preserves explicit applicable selection and task authority, and excludes itself. A checked skill-local capability map owns the current routable entries and fails its focused test when the canonical catalog grows without an explicit routing disposition. The router does not alter any stable leaf or the six-skill v0.2 distribution contract.
APG17 adds one provisional synthesis leaf for mixed guidance that needs owner, provenance, privacy, migration, and rollback dispositions before rewrite. Sixteen frozen families and one bounded 34-unit inventory passed with zero candidate corrections. The leaf preserves every source, treats native technical skill authoring as a non-trigger, and changes no stable procedure or six-skill v0.2 distribution contract.
APG18 accepts the language-profile contract and adds one provisional Python profile with calibrated Green/Yellow/Orange/Red structural and semantic responses. The profile preserves repository policy, pairs separately with applicable process skills, and does not change the six-skill v0.2 distribution contract.
APG19 adds provisional Bash, Bats, and Zsh profiles with separate language and test-harness ownership. ZUnit remains deferred until current upstream/runtime evidence or a separately authorized legacy-only scope supports a bounded profile. The three retained leaves change no stable process skill or six-skill v0.2 distribution contract.
APG19A subsequently corrects the Bats fallback test count to include the supported comment function form. Bash and Zsh remain byte-identical; catalog membership, thresholds, maturity, routing, and six-skill v0.2 distribution remain unchanged.
APG20 truthfully defers independent Go and Ruby candidates after final review identifies material defects beyond that phase’s correction allowance. APG20A uses the complete defect ledger as its corrected baseline and retains both leaves after scenario, dogfood, source, integration, and non-author review. The stable procedures and six-skill v0.2 distribution contract remain unchanged.
APG21
accepts separate Nix, PostgreSQL, and SQLite ownership under ADR 0016 and
retains provisional PostgreSQL and SQLite leaves after frozen scenarios,
read-only dogfood, one bounded SQLite correction, and non-author review. Nix is
deferred-material-defect after one correction and a second material scenario
contradiction. No generic SQL profile or live operational authority is added.
APG21A corrects the recorded Nix merge contradiction by separating structural merge-family breadth from semantic collision, precedence, ownership, and consumer risk. The reconstructed Nix leaf is retained provisionally after the complete APG21 scenario set, ten focused merge cases, read-only dogfood, and fresh review. One focused PostgreSQL false-escalation correction scopes tested restore evidence to changes that rely on restoration as their recovery boundary. SQLite and router behavior remain unchanged.
APG22 applies the router, synthesis leaf, and all nine retained profiles to 35 frozen read-only APG, RepoMap, private-classification, and public-safe synthetic cases. Every expected disposition matches; no behavior-bearing defect or correction is found. Application discovery is not measured, no maturity row changes, and the six-skill v0.2 distribution remains unchanged. The phase records migration and release-scope proposals without implementing a root cutover, private decommission, manager-assignment skill, ZUnit profile, or v0.3 release.
APG22A adds one provisional leaf that translates already human-approved roadmap authority into a reviewable top-level manager assignment. Thirty frozen cases pass with zero material candidate corrections. Ordinary prompting remains the fallback; planning, worker-assignment composition, routing, review, acceptance, dispatch, and execution remain separate owners.
APG22B subsequently satisfies the separately authorized legacy re-entry condition and adds one provisional ZUnit profile for exactly ZUnit v0.8.2 with Zsh 5.9.2. The exact 5.3.1 pair is unsupported on the tested environment, no version range is claimed, and Zsh semantics remain with the separate Zsh profile. The six- skill v0.2 distribution contract remains unchanged.
APG22C
subsequently corrects APG22B’s selected user-startup evidence. The harness now
requires an unsuppressed positive control to load the sentinel, -f to
suppress it, and the focused ZUnit test process to observe its absence. The
exact 5.9.2 support boundary, 5.3.1 unsupported result, leaf bytes, maturity,
and six-skill v0.2 distribution contract remain unchanged.
APG23 records fresh-session discovery and explicit-use smoke for all nineteen development skills. It promotes the workflow router, guidance synthesis, Python, Bash, Bats, Zsh, exact-bounded ZUnit, and Nix rows to stable; retains five provisional rows; and includes all thirteen v0.3 skills in release scope. No skill procedure, public v0.2 distribution, schema, managed default, or active integration changes.
APG24 publishes all nineteen release-included skills without changing the fourteen stable and five provisional maturity rows. User and project lifecycle retain schema version 1 with source-specific release sets and explicit subset ownership. The active source advances without changing aggregate-link ownership, and the personal router remains for external source-qualified shadow smoke.
APG24A records that the external shadow passed and that separate human authority then decommissioned the personal router. Public and active v0.3.0 remain unchanged.
APG25
applies one bounded correction to composing-approved-roadmap-assignments.
Three frozen assignment pairs and a failing-first focused test support loading
repository structured defaults, omitting repeated ordinary procedure, and
retaining authority, acceptance, stop, and successor boundaries. The trigger,
catalog row, route, projection, and provisional maturity remain unchanged.
ADRs 0020-0022 accept future testing, reporting, and ChatGPT-manager topology
work without adding or moving a skill in APG25.
APG26
adds provisional pytest-test-profile and
converting-bash-scripts-to-python leaves after sixty frozen scenario families,
current-source calibration, failing-first focused contracts, read-only report-
tool dogfood, and fresh non-author review. The pytest candidate requires no
behavior-bearing correction; the conversion candidate uses one bounded option-
injection correction. Public and active v0.3.0 remain nineteen-skill surfaces;
no report tool is converted and no test is migrated.
APG32 adds the provisional
minitest-test-profile after current primary-source and rights calibration,
thirty-six frozen scenario families, a failing-first mirrored contract,
Minitest-specific structural thresholds, and fresh non-author review. The
candidate uses one bounded trigger and ownership correction. Public and active v0.3.0
remain nineteen-skill surfaces, and APG32 selects no dependency, command,
coverage target, readiness action, release, or successor.
APG33 adds the provisional
dockerfile-profile after current primary-source and rights calibration, forty
frozen scenario families, a failing-first mirrored contract,
Dockerfile-specific structural thresholds, one bounded context, ownership, and
measurement correction, and fresh non-author review. Public and active v0.3.0
remain nineteen-skill surfaces, and APG33 selects no image, dependency,
platform, project command, runtime policy, readiness action, release, or
successor.
APG34 adds the provisional
vagrantfile-profile after current primary-source and rights calibration,
forty frozen scenario families, a failing-first mirrored contract,
Vagrantfile-specific structural thresholds, and fresh non-author review. The
candidate uses one bounded source-semantics and machine-measurement correction.
Public and active v0.3.0 remain nineteen-skill surfaces, and APG34 selects no
provider, box, plugin, host platform, network, synced folder, provisioner,
project command, lifecycle action, readiness action, release, or successor.
APG38 integrates
two corrected APG37 Go component profiles as provisional owners after 66
public-safe scenario families, isolated compatibility probes, independent
source and structural review, and one coherent correction cycle per candidate.
matryer-is-test-profile and nix-test-profile are deferred after
corrected-state review found new behavior defects, so their current-tree
integration surfaces are absent. ADR 0026 accepts the two-component, no-stack
Go architecture. Public and active v0.3.0 remain nineteen-skill surfaces.
APG40 retains
nix-test-profile provisionally after exact-source review, forty corrected
public-safe scenarios, source-corpus calibration, one coherent correction
cycle, and fresh non-author review. The exact-version matryer/is candidate is
deferred-material-defect after its corrected equality contract still
invented a source branch; its current surfaces are absent. ADR 0027 is
Rejected, ADR 0026 remains Accepted, and no Go stack exists. Public and active
v0.3.0 remain nineteen-skill surfaces.
Each canonical APG skill source is a direct child of skills/:
skills/
└── <skill-name>/
├── SKILL.md
├── scripts/ # optional deterministic helpers
├── references/ # optional detailed guidance
└── assets/ # optional templates or media
SKILL.md is required. Supporting directories are optional and exist only when
the skill actually uses them. APG v0.1 needs no support directories.
Harness-specific metadata, such as an agents/openai.yaml file, may be added
only when a target harness and validation need justify it.
Codex uses a separate repository-local projection:
.agents/
└── skills/
└── <skill-name> -> ../../skills/<skill-name>
Every APG v0.1 projection entry is a relative symbolic link to one matching
canonical leaf. Canonical documentation, provenance, maturity, and evaluation
records continue to identify skills/; .agents/skills/ owns discovery layout
only. Separate opted-in Git worktrees may use apg-project-skills to manage
machine-local absolute links to the same leaves with strict Git-local ownership
and exclusion. The projection guide
defines that installation and rollback boundary. Other harness projections
require separate evidence and authorization.
APG30 implements ADR 0022’s skills/chatgpt/<name>/ canonical owner for
actor-qualified ChatGPT-manager leaves while retaining flat .agents/skills/
discovery. The current 28/28/28 library contains twenty-six direct children and
two nested ChatGPT-manager leaves. The namespace directory is not a skill.
This shape follows APG0-AGENT-SKILLS-SOURCE-01, the public
Agent Skills specification inspected on
2026-07-18. The specification publishes no semantic revision, so this
phase-local source ID and date record APG’s basis without claiming that the
public page is immutable. Future work must re-evaluate compatibility against an
explicitly recorded later source identity rather than silently changing the
APG0 basis.
| Skill | Trigger boundary | Maturity |
|---|---|---|
composing-bounded-worker-assignments |
Delegation is already authorized and selected, and one non-trivial worker assignment needs explicit boundaries | stable |
composing-approved-roadmap-assignments |
A human-approved roadmap phase or explicitly approved bounded phase sequence needs a reviewable top-level manager assignment without added authority | provisional |
designing-significant-changes |
Consequential behavior, architecture, ownership, contracts, safety, or irreversible choices remain unresolved | stable |
planning-repository-work |
An accepted objective needs dependent steps, cross-file coordination, staged risk reduction, or durable handoff | stable |
implementing-with-test-discipline |
A code change benefits from executable behavioral evidence | stable |
converting-bash-scripts-to-python |
An existing Bash executable or script family needs a bounded conversion to Python that preserves or deliberately migrates its observable contract | provisional |
debugging-systematically |
Behavior is failing, inconsistent, flaky, unexplained, or has multiple plausible causes | stable |
reviewing-and-verifying-repository-work |
A bounded repository artifact, change, phase, commit, or worker result needs evidence-backed acceptance, correction, disposition, or a completion claim | stable |
agentic-praxis-grimoire-workflow |
Multiple APG skills are plausible, a routing decision needs audit, or APG capability metadata may be missing or stale | stable |
chatgpt-manager-workflow |
Selection among multiple plausible ChatGPT top-level-manager capabilities is ambiguous or a ChatGPT-manager routing decision requires audit | provisional |
synthesizing-repository-guidance |
A dense, duplicated, mixed-scope, private, or source-derived guidance corpus needs bounded ownership and migration dispositions before rewrite | stable |
python-language-profile |
Python-specific judgment is material to structure, complexity, public APIs, typing, concurrency, serialization, packaging, or warning and crisis thresholds beyond repository policy | stable |
bash-language-profile |
Bash-specific judgment is material to quoting, expansion, arrays, pipelines, traps, subprocesses, files, portability, or warning and crisis thresholds beyond repository policy | stable |
bats-test-profile |
Bats-specific test judgment is material to evaluation, run status and output, hooks, fixtures, TAP, file descriptors, parallelism, background cleanup, or warning and crisis thresholds beyond repository policy | stable |
dockerfile-profile |
Dockerfile-specific judgment is material to parser directives, build stages, instruction forms, variable scope, build context, copies, mounts, cache behavior, file ownership, runtime metadata, platform behavior, or warning and crisis thresholds beyond repository policy | provisional |
vagrantfile-profile |
Vagrantfile-specific judgment is material to configuration versions and loading, machines, boxes, provider blocks, networks, synced folders, provisioners, triggers, Vagrant state, host-dependent behavior, or warning and crisis thresholds beyond repository policy | provisional |
minitest-test-profile |
Minitest-specific judgment is material to test or spec organization, assertions, lifecycle, mocks, stubs, fixture alternatives, isolation, parallelism, filtering, runners, plugins, reporters, subprocess, filesystem, or database test boundaries, or warning and crisis thresholds beyond repository policy | provisional |
pytest-test-profile |
pytest-specific judgment is material to discovery, collection, assertions, fixtures, parametrization, mocks, isolation, xdist, coverage, or warning and crisis thresholds beyond repository policy | provisional |
go-cmp-test-profile |
A repository has already selected google/go-cmp v0.7.0 and comparison judgment is material to equality versus diff, option composition and filters, comparers and transformers, ignores and unexported fields, sorting, approximation, panics, diagnostic exposure, or thresholds beyond repository policy | provisional |
go-language-profile |
Go-specific judgment is material to structure, errors, context, interfaces, generics, concurrency, public APIs, reflection, unsafe, cgo, subprocesses, compatibility, or warning and crisis thresholds beyond repository policy | provisional |
go-test-profile |
Native Go test judgment is material to package placement, subtests, helper attribution, cleanup and isolation, TestMain, parallelism, goroutine reporting, examples, benchmarks, fuzzing, caching, effective language version, or warning and crisis thresholds beyond repository policy | provisional |
nix-language-profile |
Nix-specific judgment is material to expressions, attribute sets, modules, derivations, flakes, overlays, purity, evaluation, store exposure, activation, remote builders, or warning and crisis thresholds beyond repository policy | stable |
nix-test-profile |
Nix test judgment is material to selecting which already-selected testing surface proves an exact claim, package phases, flake checks, Nixpkgs or NixOS test ownership, test-evidence qualification across sandbox, store, builder, or cache boundaries, or Nix-test-specific structural review | provisional |
postgresql-database-profile |
PostgreSQL-specific judgment is material to SQL, schemas, MVCC, transactions, locks, DDL, migrations, routines, triggers, security, backup and restore, replication, maintenance, or warning and crisis thresholds beyond repository policy | provisional |
ruby-language-profile |
Ruby-specific judgment is material to structure, exceptions, blocks, shared state, dynamic dispatch, metaprogramming, callbacks, concurrency, gems, public compatibility, serialization, subprocesses, or warning and crisis thresholds beyond repository policy | provisional |
sqlite-database-profile |
SQLite-specific judgment is material to SQL, transaction modes, single-writer concurrency, busy handling, journal or WAL behavior, schema rebuilds, pragmas, affinity, file ownership, backup and integrity, extensions, or warning and crisis thresholds beyond repository policy | provisional |
zsh-language-profile |
Zsh-specific judgment is material to option state, arrays, expansion, globbing, autoloading, startup or interactive behavior, hooks, modules, processes, or warning and crisis thresholds beyond repository policy | stable |
zunit-test-profile |
An exact APG-verified ZUnit v0.8.2 and Zsh 5.9.2 pair needs ZUnit-specific judgment about runner invocation, discovery, assertions, hooks, configuration, output, isolation, process cleanup, compatibility, or warning and crisis thresholds beyond repository policy | stable |
These functional groupings do not adopt a category-directory taxonomy. A skill retains one canonical leaf and may be discovered through more than one concept.
Each leaf owns one reusable procedure after its trigger is satisfied. The target repository or current task continues to own authority, architecture, privacy, exact scopes, test commands, coverage policy, branch and worktree workflow, commits, reviews, pushes, publication, reports, rollback, and destructive actions. A skill consumes those parameters; it does not invent or universalize them.
The bounded-assignment skill composes one assignment only. It does not authorize or dispatch delegation, and ordinary internal workers return through the agent harness rather than managed report commands.
The skill authoring and maintenance guide is the normative owner for new skills, frontmatter and behavior-bearing corrections, support additions, maturity-only dispositions, deprecation, and removal. Retained leaves continue to require a coherent reusable problem, precise trigger and non-trigger boundaries, project-owned authority, observable evidence or stop behavior, appropriate provenance, representative scenarios, independent review, structural validation, and a removal path. This catalog summarizes current state; it does not redefine that procedure.
bin/apg-check-skill-library validates the adopted mechanical leaf, catalog,
link-containment, and checked-in projection subset. A pass does not establish
semantic usefulness, rights, privacy, discovery, maturity, or stability.
The APG4 public evaluation summary records the bounded scenario and review result. The Superpowers transition map records coverage and remaining gaps.
The fresh RepoMap discovery smoke, APG10 source-disposition review, APG11 maintenance formalization, APG12 distribution validation, APG12A correction, and APG13 individual maturity review are complete. ADR 0010 records positive, representative non-trigger, edge or stop, real-use, correction, regression, authority, privacy, and rollback evidence for each skill. All six APG13 process leaves passed their frozen applications and final non-author reviews without an APG13 procedure correction.
Clean A/B superiority and a positive use in a second repository are valuable
evidence but are not independent stability blockers under ADR 0006. A concrete
unresolved material authority, privacy, safety, or procedure defect may block an
individual skill. The current catalog contains fourteen stable rows and
fourteen provisional manager-assignment, language, database, test-profile, or
conversion rows. Public
v0.1.0 retains its historical provisional catalog; public v0.2.0 contains the
six stable leaves. APG14 changes no skill procedure or maturity row. APG16,
APG17, APG18, APG19, APG20A, APG21, and APG21A add only provisional development
leaves; APG20 preserves the defect evidence that APG20A corrects. The six APG13 dispositions
remain unchanged. No successor phase begins automatically.
APG22 changes no catalog row, capability-map entry, projection, or maturity. Its dogfood evidence does not establish automatic discovery or readiness; APG22A makes the manager-assignment objective terminal. APG22B makes the separately authorized ZUnit compatibility and scope work terminal by retaining one exact version pair. APG22C corrects the startup-isolation evidence without changing that result. APG23 completes the new-session application gate, promotes eight rows, retains five provisional rows, and accepts all thirteen v0.3 skills for release scope. APG24 distributes that exact set as v0.3.0 without changing maturity or any skill procedure. APG26 later adds two provisional private-development candidates without changing that public release, its active integration, or any preexisting maturity row. APG30 adds one provisional subrouter and APG32 adds one provisional Minitest profile under the same immutable public and active v0.3.0 boundary. APG33 adds one provisional Dockerfile profile, APG34 adds one provisional Vagrantfile profile, APG38 adds two provisional Go test-component profiles, and APG40 adds one provisional Nix test profile without changing that boundary.