Architecture
Diagram text
flowchart TD A[Pinned original skills] --> D[Distribution builder] B[Personal principles] --> D C[Runtime contracts] --> D D --> E[Project-local skill wrappers] E --> F[Claude Code, Codex, or Copilot]
vendor/pstack/ Complete unmodified pinned upstream treeupstream.lock.json Source revision, skill inventory, file hashes and modesruntime/ Host mechanics and explicit activation overridesskills/aop-mode/ Entry alias and optional evaluation evidence formatsrc/distribution.ts Full packages with thin entrypoint wrapperssrc/harnesses.ts Skill placement, CLI arguments, terminal decodingsrc/process.ts Deadlines, process-group cleanup, output retentionsrc/runner.ts Candidate setup, execution, grading, run recordssrc/tasks.ts Prompts and starting fixturessrc/grade.ts Independent outcome checkstests/ Offline qualification and lifecycle testsdocs/ Astro Starlight documentationWhere to test what
Section titled “Where to test what”An adapter test checks that a failed terminal event cannot pass. A lifecycle test starts a real disposable process to check timeout and descendant cleanup. A grader test passes both the known broken fixture and a reference solution through the same outcome checks. A live task test exercises the installed CLI end to end.
Package tests verify every installed original file against its locked hash and mode on all three targets. Import tests reject missing, modified, and extra files. Collision tests protect existing user skills.
Skill discovery, workflow execution, and outcome correctness are different questions. The live suite invokes the skill by name on Codex and Claude; the Copilot headless adapter points to its installed file. Neither inlines the contents or evidence schema; a valid result therefore checks more than a prompt that already contains the whole answer. It still does not measure whether the skill improves quality compared with an unassisted run. That needs paired experiments.
Adding a harness
Section titled “Adding a harness”Add the harness identifier, skill location, concrete command builder, and terminal decoder. Record the supported CLI version and the installation mechanism. Exercise the same qualified tasks before advertising support. Keep feature gaps explicit; never translate a missing tool into a fabricated successful action.
Adding a task
Section titled “Adding a task”Define an observable contract, a realistic broken or incomplete fixture, and a reference outcome. Qualify the grader against both good and bad candidates. Add negative cases for tempting shortcuts, such as modifying tests or writing during a review. Keep acceptance logic outside the candidate repository.
The installed reference tree lives in aop-mode/.upstream/. Codex skips hidden
folders during skill discovery, so only the explicit-only wrappers are exposed.
A visible nested source tree would expose duplicate original skills and bypass
the wrapper activation policy. Native skills/list verified 53 entrypoints after
this correction.