From 037a330c27927ce031d93f807c32d5af50d57408 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 5 Sep 2026 21:45:07 +0000 Subject: [PATCH] Rename skill prefix from ps- to do-. After omp plugin link ./, the live slash is /skill:do-*. Sticky /poteto-mode is unchanged. Co-authored-by: Atlas --- AGENTS.md | 2 +- README.md | 16 +++--- automations/AGENTS.md | 4 +- automations/benny/FOR_AGENTS.md | 2 +- automations/benny/README.md | 4 +- automations/benny/skills/setup-benny/SKILL.md | 22 ++++---- docs/AGENTS.md | 4 +- docs/guide/01-setup.md | 4 +- docs/guide/02-poteto-mode.md | 10 ++-- docs/guide/03-understand.md | 10 ++-- docs/guide/04-design.md | 10 ++-- docs/guide/05-build-and-clean.md | 12 ++--- docs/guide/06-verify-and-ship.md | 16 +++--- docs/guide/07-overnight.md | 12 ++--- docs/guide/08-principles.md | 42 +++++++-------- docs/guide/09-make-it-yours.md | 12 ++--- docs/guide/10-recipes-and-pitfalls.md | 4 +- docs/guide/README.md | 2 +- e2e/AGENTS.md | 2 +- e2e/ci_static.py | 2 +- e2e/run.py | 6 +-- e2e/unit/ci-static-cli.test.ts | 2 +- e2e/unit/doctor.test.ts | 52 +++++++++++++++++-- e2e/unit/product-capabilities.test.ts | 14 ++--- extensions/pstack.ts | 6 +-- skills/AGENTS.md | 1 + .../{ps-architect => do-architect}/SKILL.md | 2 +- .../references/design-red-flags.md | 0 .../references/rationale-template.md | 0 .../references/runner-prompt.md | 0 skills/{ps-arena => do-arena}/SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- skills/{ps-bro => do-bro}/SKILL.md | 2 +- .../SKILL.md | 2 +- .../references/feature-map-example/README.md | 0 .../feature-map-example/create-note.md | 0 .../references/feature-map-example/search.md | 0 .../SKILL.md | 2 +- skills/{ps-how => do-how}/SKILL.md | 2 +- .../references/critic-prompt.md | 0 .../references/critique-rubric.md | 0 .../references/explainer-prompt.md | 0 .../references/explorer-prompt.md | 0 .../SKILL.md | 2 +- .../references/code-quality-review.md | 0 .../references/lead-judgment.md | 0 .../references/reviewer-prompt.md | 0 .../references/rubric.md | 0 .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../playbooks/authoring-a-skill.md | 0 .../playbooks/autonomous-run.md | 0 .../playbooks/autopilot-full.md | 0 .../playbooks/autopilot-stack.md | 0 .../playbooks/babysit.md | 0 .../playbooks/bug-fix.md | 0 .../playbooks/eval.md | 0 .../playbooks/feature.md | 0 .../playbooks/hillclimb.md | 0 .../playbooks/investigation.md | 0 .../playbooks/multi-phase-plan.md | 0 .../playbooks/opening-a-pr.md | 0 .../playbooks/orchestrate.md | 0 .../playbooks/pause-safely.md | 0 .../playbooks/perf-issue.md | 0 .../playbooks/prototype.md | 0 .../playbooks/refactoring.md | 0 .../playbooks/runtime-forensics.md | 0 .../playbooks/session-pickup.md | 0 .../playbooks/trace-forensics.md | 0 .../playbooks/visual-parity.md | 0 .../playbooks/worktree-cleanup.md | 0 .../references/bugbot-triage.md | 0 .../references/plan.md | 0 .../scripts/bootstrap.ts | 0 .../scripts/bun.lock | 0 .../scripts/orch/orch.test.ts | 0 .../scripts/orch/orch.ts | 0 .../scripts/orch/store.ts | 0 .../scripts/package.json | 0 .../scripts/watch-pr/cli.test.ts | 0 .../scripts/watch-pr/cli.ts | 0 .../scripts/watch-pr/fakes.test-helper.ts | 0 .../scripts/watch-pr/github.test.ts | 0 .../scripts/watch-pr/github.ts | 0 .../scripts/watch-pr/policy.test.ts | 0 .../scripts/watch-pr/policy.ts | 0 .../scripts/watch-pr/render.ts | 0 .../scripts/watch-pr/tsconfig.json | 0 .../scripts/watch-pr/types.compile.ts | 0 .../scripts/watch-pr/types.ts | 0 .../scripts/watch-pr/watch-pr | 0 .../scripts/worktree-audit.sh | 0 .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- skills/{ps-recall => do-recall}/SKILL.md | 2 +- skills/{ps-reflect => do-reflect}/SKILL.md | 2 +- .../references/divergent-reviewer.md | 0 .../references/judgment-reviewer.md | 0 .../references/synthesizer.md | 0 .../references/tooling-reviewer.md | 0 .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../references/decision-log-template.tsv | 0 .../scripts/log.sh | 0 skills/{ps-swarm => do-swarm}/SKILL.md | 2 +- skills/{ps-tdd => do-tdd}/SKILL.md | 2 +- skills/{ps-teach => do-teach}/SKILL.md | 2 +- .../SKILL.md | 2 +- .../SKILL.md | 2 +- .../references/patterns.md | 0 skills/{ps-unslop => do-unslop}/SKILL.md | 2 +- skills/{ps-why => do-why}/SKILL.md | 2 +- .../references/epistemics.md | 0 .../references/investigator-prompt.md | 0 .../references/source-playbook.md | 0 .../references/sources/code-archaeology.md | 0 .../references/sources/databricks.md | 0 .../references/sources/datadog.md | 0 .../references/sources/incident-postmortem.md | 0 .../references/sources/linear.md | 0 .../references/sources/notion.md | 0 .../references/sources/sentry.md | 0 .../references/sources/slack.md | 0 .../references/synthesizer-prompt.md | 0 147 files changed, 205 insertions(+), 158 deletions(-) rename skills/{ps-architect => do-architect}/SKILL.md (99%) rename skills/{ps-architect => do-architect}/references/design-red-flags.md (100%) rename skills/{ps-architect => do-architect}/references/rationale-template.md (100%) rename skills/{ps-architect => do-architect}/references/runner-prompt.md (100%) rename skills/{ps-arena => do-arena}/SKILL.md (99%) rename skills/{ps-automate-me => do-automate-me}/SKILL.md (99%) rename skills/{ps-blast-radius => do-blast-radius}/SKILL.md (99%) rename skills/{ps-bro => do-bro}/SKILL.md (95%) rename skills/{ps-create-verification-skill => do-create-verification-skill}/SKILL.md (99%) rename skills/{ps-create-verification-skill => do-create-verification-skill}/references/feature-map-example/README.md (100%) rename skills/{ps-create-verification-skill => do-create-verification-skill}/references/feature-map-example/create-note.md (100%) rename skills/{ps-create-verification-skill => do-create-verification-skill}/references/feature-map-example/search.md (100%) rename skills/{ps-figure-it-out => do-figure-it-out}/SKILL.md (99%) rename skills/{ps-how => do-how}/SKILL.md (99%) rename skills/{ps-how => do-how}/references/critic-prompt.md (100%) rename skills/{ps-how => do-how}/references/critique-rubric.md (100%) rename skills/{ps-how => do-how}/references/explainer-prompt.md (100%) rename skills/{ps-how => do-how}/references/explorer-prompt.md (100%) rename skills/{ps-interrogate => do-interrogate}/SKILL.md (99%) rename skills/{ps-interrogate => do-interrogate}/references/code-quality-review.md (100%) rename skills/{ps-interrogate => do-interrogate}/references/lead-judgment.md (100%) rename skills/{ps-interrogate => do-interrogate}/references/reviewer-prompt.md (100%) rename skills/{ps-interrogate => do-interrogate}/references/rubric.md (100%) rename skills/{ps-maintain-verification-skill => do-maintain-verification-skill}/SKILL.md (99%) rename skills/{ps-make-bot-ui => do-make-bot-ui}/SKILL.md (99%) rename skills/{ps-no-comments => do-no-comments}/SKILL.md (99%) rename skills/{ps-poteto-mode => do-poteto-mode}/SKILL.md (99%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/authoring-a-skill.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/autonomous-run.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/autopilot-full.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/autopilot-stack.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/babysit.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/bug-fix.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/eval.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/feature.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/hillclimb.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/investigation.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/multi-phase-plan.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/opening-a-pr.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/orchestrate.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/pause-safely.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/perf-issue.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/prototype.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/refactoring.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/runtime-forensics.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/session-pickup.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/trace-forensics.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/visual-parity.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/playbooks/worktree-cleanup.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/references/bugbot-triage.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/references/plan.md (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/bootstrap.ts (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/bun.lock (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/orch/orch.test.ts (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/orch/orch.ts (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/orch/store.ts (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/package.json (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/watch-pr/cli.test.ts (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/watch-pr/cli.ts (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/watch-pr/fakes.test-helper.ts (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/watch-pr/github.test.ts (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/watch-pr/github.ts (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/watch-pr/policy.test.ts (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/watch-pr/policy.ts (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/watch-pr/render.ts (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/watch-pr/tsconfig.json (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/watch-pr/types.compile.ts (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/watch-pr/types.ts (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/watch-pr/watch-pr (100%) rename skills/{ps-poteto-mode => do-poteto-mode}/scripts/worktree-audit.sh (100%) rename skills/{ps-principle-boundary-discipline => do-principle-boundary-discipline}/SKILL.md (97%) rename skills/{ps-principle-build-the-lever => do-principle-build-the-lever}/SKILL.md (98%) rename skills/{ps-principle-encode-lessons-in-structure => do-principle-encode-lessons-in-structure}/SKILL.md (97%) rename skills/{ps-principle-exhaust-the-design-space => do-principle-exhaust-the-design-space}/SKILL.md (96%) rename skills/{ps-principle-experience-first => do-principle-experience-first}/SKILL.md (97%) rename skills/{ps-principle-fix-root-causes => do-principle-fix-root-causes}/SKILL.md (97%) rename skills/{ps-principle-foundational-thinking => do-principle-foundational-thinking}/SKILL.md (97%) rename skills/{ps-principle-guard-the-context-window => do-principle-guard-the-context-window}/SKILL.md (96%) rename skills/{ps-principle-laziness-protocol => do-principle-laziness-protocol}/SKILL.md (97%) rename skills/{ps-principle-make-operations-idempotent => do-principle-make-operations-idempotent}/SKILL.md (96%) rename skills/{ps-principle-migrate-callers-then-delete-legacy-apis => do-principle-migrate-callers-then-delete-legacy-apis}/SKILL.md (94%) rename skills/{ps-principle-minimize-reader-load => do-principle-minimize-reader-load}/SKILL.md (98%) rename skills/{ps-principle-model-the-domain => do-principle-model-the-domain}/SKILL.md (98%) rename skills/{ps-principle-never-block-on-the-human => do-principle-never-block-on-the-human}/SKILL.md (97%) rename skills/{ps-principle-outcome-oriented-execution => do-principle-outcome-oriented-execution}/SKILL.md (95%) rename skills/{ps-principle-prove-it-works => do-principle-prove-it-works}/SKILL.md (98%) rename skills/{ps-principle-redesign-from-first-principles => do-principle-redesign-from-first-principles}/SKILL.md (94%) rename skills/{ps-principle-separate-before-serializing-shared-state => do-principle-separate-before-serializing-shared-state}/SKILL.md (96%) rename skills/{ps-principle-sequence-verifiable-units => do-principle-sequence-verifiable-units}/SKILL.md (98%) rename skills/{ps-principle-subtract-before-you-add => do-principle-subtract-before-you-add}/SKILL.md (96%) rename skills/{ps-principle-type-system-discipline => do-principle-type-system-discipline}/SKILL.md (99%) rename skills/{ps-recall => do-recall}/SKILL.md (99%) rename skills/{ps-reflect => do-reflect}/SKILL.md (99%) rename skills/{ps-reflect => do-reflect}/references/divergent-reviewer.md (100%) rename skills/{ps-reflect => do-reflect}/references/judgment-reviewer.md (100%) rename skills/{ps-reflect => do-reflect}/references/synthesizer.md (100%) rename skills/{ps-reflect => do-reflect}/references/tooling-reviewer.md (100%) rename skills/{ps-setup-pstack => do-setup-pstack}/SKILL.md (99%) rename skills/{ps-show-me-your-work => do-show-me-your-work}/SKILL.md (99%) rename skills/{ps-show-me-your-work => do-show-me-your-work}/references/decision-log-template.tsv (100%) rename skills/{ps-show-me-your-work => do-show-me-your-work}/scripts/log.sh (100%) rename skills/{ps-swarm => do-swarm}/SKILL.md (99%) rename skills/{ps-tdd => do-tdd}/SKILL.md (99%) rename skills/{ps-teach => do-teach}/SKILL.md (99%) rename skills/{ps-technical-writing => do-technical-writing}/SKILL.md (99%) rename skills/{ps-typescript-best-practices => do-typescript-best-practices}/SKILL.md (98%) rename skills/{ps-typescript-best-practices => do-typescript-best-practices}/references/patterns.md (100%) rename skills/{ps-unslop => do-unslop}/SKILL.md (99%) rename skills/{ps-why => do-why}/SKILL.md (99%) rename skills/{ps-why => do-why}/references/epistemics.md (100%) rename skills/{ps-why => do-why}/references/investigator-prompt.md (100%) rename skills/{ps-why => do-why}/references/source-playbook.md (100%) rename skills/{ps-why => do-why}/references/sources/code-archaeology.md (100%) rename skills/{ps-why => do-why}/references/sources/databricks.md (100%) rename skills/{ps-why => do-why}/references/sources/datadog.md (100%) rename skills/{ps-why => do-why}/references/sources/incident-postmortem.md (100%) rename skills/{ps-why => do-why}/references/sources/linear.md (100%) rename skills/{ps-why => do-why}/references/sources/notion.md (100%) rename skills/{ps-why => do-why}/references/sources/sentry.md (100%) rename skills/{ps-why => do-why}/references/sources/slack.md (100%) rename skills/{ps-why => do-why}/references/synthesizer-prompt.md (100%) diff --git a/AGENTS.md b/AGENTS.md index 7f6476e..ddf695d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -60,7 +60,7 @@ Tell operators plugin-link only: - Install host via https://omp.sh/install if needed. - From this package root: `omp plugin link ./` -- Later sessions, any cwd: type `/` (`/skill:ps-…`, sticky `/poteto-mode`) +- Later sessions, any cwd: type `/` (`/skill:do-…`, sticky `/poteto-mode`) - Do not marketplace. Do not copy `pstack.ts` into `~/.omp/agent/extensions/`. - Do not keep a repo `.omp/skills` symlink. Sibling `skills/` is what plugin-link discovers. diff --git a/README.md b/README.md index f358b96..6aca7ed 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # pstack -This package is an installable omp **plugin**. From the package root, one-time `omp plugin link ./`. Later sessions (any cwd): start `omp`, type `/` (`/skill:ps-…`, sticky `/poteto-mode`). Sibling `skills/` at the package root is what omp auto-discovers after link. +This package is an installable omp **plugin**. From the package root, one-time `omp plugin link ./`. Later sessions (any cwd): start `omp`, type `/` (`/skill:do-…`, sticky `/poteto-mode`). Sibling `skills/` at the package root is what omp auto-discovers after link. It is not the Cursor plugin and not an official Cursor port. @@ -16,7 +16,7 @@ Those pages are the Cursor product. This README does not retell them. ## Docs -- [The pstack guide](./docs/guide/README.md) — original numbered product tutorial (setup through recipes, plus images). On-disk skill links use `skills/ps-*`; slash skills are `/skill:ps-…`. `/poteto-mode` stays unprefixed. +- [The pstack guide](./docs/guide/README.md) — original numbered product tutorial (setup through recipes, plus images). On-disk skill links use `skills/do-*`; slash skills are `/skill:do-…`. `/poteto-mode` stays unprefixed. ## Automations @@ -45,7 +45,7 @@ cd pstack omp plugin link ./ ``` -That one-time link is how later sessions (any cwd) type `/` (`/skill:ps-…`, sticky `/poteto-mode`). Confirm with `omp plugin list`. +That one-time link is how later sessions (any cwd) type `/` (`/skill:do-…`, sticky `/poteto-mode`). Confirm with `omp plugin list`. Do not copy only `pstack.ts` into `~/.omp/agent/extensions/`. @@ -53,7 +53,7 @@ Do not copy only `pstack.ts` into `~/.omp/agent/extensions/`. 1. Install omp from https://omp.sh (`curl -fsSL https://omp.sh/install | sh`). 2. Clone this repository and, from the package root, `omp plugin link ./` (see Load this plugin). Later sessions (any cwd): `omp`, then type `/`. -3. `/poteto-mode` — enable sticky Poteto Mode for this conversation. Optional task arguments are passed through; this also sends `/skill:ps-poteto-mode`. +3. `/poteto-mode` — enable sticky Poteto Mode for this conversation. Optional task arguments are passed through; this also sends `/skill:do-poteto-mode`. 4. Work as usual. Resume an on conversation and it stays on. `/new` starts off. 5. `/poteto-mode off` (aliases: `disable`, `stop`) — disable this conversation. @@ -65,14 +65,14 @@ The TUI status reads `pstack: poteto mode` when on. Other omp surfaces may not s | Command | What it does | |---|---| -| `/poteto-mode` | Enable sticky Poteto Mode for this conversation. Also sends `/skill:ps-poteto-mode`. | +| `/poteto-mode` | Enable sticky Poteto Mode for this conversation. Also sends `/skill:do-poteto-mode`. | | `/poteto-mode off` | Disable this conversation. Aliases: `disable`, `stop`. | That is the live extension command. It stays unprefixed. There is no worktree command. No `hooks/` tree. No `src/` tree. No Cursor marketplace APIs. ## Poteto Mode (this extension) -- Enable sends `/skill:ps-poteto-mode`. The `/skill:ps-poteto-mode` input hook also persists enabled. +- Enable sends `/skill:do-poteto-mode`. The `/skill:do-poteto-mode` input hook also persists enabled. - Stored as a custom `pstack-mode` entry on that conversation’s session jsonl. Last `{enabled}` wins. Missing means off. - `session_start` re-reads the jsonl. `new_session` / `/new` starts off. Resume of an on conversation stays on. - When on, a prompt needle prepends “Pstack Poteto Mode is on…” @@ -82,9 +82,9 @@ That is the live extension command. It stays unprefixed. There is no worktree co ## Skills -Files under `skills/` are markdown prompts. Invoke them with `/skill:ps-`. They are live after `omp plugin link ./` (sibling tree auto-discovered). They are not live omp functions or CLIs. +Files under `skills/` are markdown prompts. Invoke them with `/skill:do-`. They are live after `omp plugin link ./` (sibling tree auto-discovered). They are not live omp functions or CLIs. -Examples: `/skill:ps-create-verification-skill`, `/skill:ps-swarm`, `/skill:ps-principle-build-the-lever`. Feature Map is a section in `ps-create-verification-skill`, not a runner. Do not treat Feature Map, swarm, or Build the Lever as functions or CLIs. +Examples: `/skill:do-create-verification-skill`, `/skill:do-swarm`, `/skill:do-principle-build-the-lever`. Feature Map is a section in `do-create-verification-skill`, not a runner. Do not treat Feature Map, swarm, or Build the Lever as functions or CLIs. ## License diff --git a/automations/AGENTS.md b/automations/AGENTS.md index 6b715f6..9da7ea1 100644 --- a/automations/AGENTS.md +++ b/automations/AGENTS.md @@ -10,9 +10,9 @@ Dormant Benny pack: Slack issue triage plus reproduce/fix. Not a slash-skill tre ## Local Contracts -- `SKILL.md` files here are automation instructions. Do not add this directory to `package.json` `omp.skills`. Do not prefix them as `ps-*` slash skills. +- `SKILL.md` files here are automation instructions. Do not add this directory to `package.json` `omp.skills`. Do not prefix them as `do-*` slash skills. - Cursor host: copy to `.cursor/automations/benny/`, enable pstack in `.cursor/settings.json`, create live automations with `/automate`. -- omp host: copy or run in-repo after `omp plugin link ./`; shared skills are `/skill:ps-…`. omp has no Slack-triggered Cursor Automations equivalent (HOST GAP in `benny/README.md`). +- omp host: copy or run in-repo after `omp plugin link ./`; shared skills are `/skill:do-…`. omp has no Slack-triggered Cursor Automations equivalent (HOST GAP in `benny/README.md`). ## Work Guidance diff --git a/automations/benny/FOR_AGENTS.md b/automations/benny/FOR_AGENTS.md index f9e0f4f..a9987bc 100644 --- a/automations/benny/FOR_AGENTS.md +++ b/automations/benny/FOR_AGENTS.md @@ -10,7 +10,7 @@ if the host is **omp**: - there is no slack-triggered cursor automations equivalent: no `/automate`, no automations editor, no platform-managed slack event that starts an agent on a new top-level report. - copy this pack into the target repository at `.cursor/automations/benny/` (same destination so a later cursor host can pick it up), or run it from this in-repo `automations/benny/` tree. -- shared dependencies on omp are `/skill:ps-how`, `/skill:ps-why`, `/skill:ps-tdd`, `/skill:ps-unslop`, and the `ps-principle-*` skills after `omp plugin link ./`. do not add this pack to `package.json` `omp.skills`. +- shared dependencies on omp are `/skill:do-how`, `/skill:do-why`, `/skill:do-tdd`, `/skill:do-unslop`, and the `do-principle-*` skills after `omp plugin link ./`. do not add this pack to `package.json` `omp.skills`. - when a report arrives, read and follow the committed operational files directly in an omp session. unattended slack-triggered runs need cursor automations or an operator-hosted slack listener. do not invent a slack poller in the pstack factory. ## what i want to automate diff --git a/automations/benny/README.md b/automations/benny/README.md index 0a70926..aff3449 100644 --- a/automations/benny/README.md +++ b/automations/benny/README.md @@ -2,7 +2,7 @@ benny gives you two automations for slack issue reports. one triages each report. the other reproduces confirmed bugs and may prepare a small draft fix. -the files in this directory are dormant setup and automation sources. they do not appear as slash skills. do not add them to `package.json` `omp.skills` or expect `/skill:ps-setup-benny`. +the files in this directory are dormant setup and automation sources. they do not appear as slash skills. do not add them to `package.json` `omp.skills` or expect `/skill:do-setup-benny`. ## HOST GAP @@ -38,5 +38,5 @@ keep this path when the consuming repo still uses Cursor: 2. point the agent at [`FOR_AGENTS.md`](./FOR_AGENTS.md) and name the target repository. 3. merge this whole directory into the target at `.cursor/automations/benny/` (same destination as Cursor, so a later Cursor Automations host can pick it up) or keep using this in-repo pack. 4. preserve destination-only files and review conflicts. keep user-owned configuration outside the pack, for example `.cursor/benny/` or `.omp/benny/`. -5. shared pstack skills on omp are `/skill:ps-how`, `/skill:ps-why`, `/skill:ps-tdd`, `/skill:ps-unslop`, and the `ps-principle-*` skills. they load from this clone after `omp plugin link ./`. do not register benny `SKILL.md` files as slash skills. +5. shared pstack skills on omp are `/skill:do-how`, `/skill:do-why`, `/skill:do-tdd`, `/skill:do-unslop`, and the `do-principle-*` skills. they load from this clone after `omp plugin link ./`. do not register benny `SKILL.md` files as slash skills. 6. there is no `/automate` and no Automations editor. after the pack and secret-free config are committed, run `skills/triage-issue-reports/SKILL.md` and `skills/reproduce-and-fix-issues/SKILL.md` directly in an omp session when a report arrives. diff --git a/automations/benny/skills/setup-benny/SKILL.md b/automations/benny/skills/setup-benny/SKILL.md index 50b7420..8d496f5 100644 --- a/automations/benny/skills/setup-benny/SKILL.md +++ b/automations/benny/skills/setup-benny/SKILL.md @@ -8,7 +8,7 @@ disable-model-invocation: true Benny ships as a dormant automation pack inside pstack. The plugin manifest exposes only pstack's normal skill root; this file and the two operational files are not slash skills. -On this omp fork, `/skill:ps-…` is the slash surface. Do not add this directory to `package.json` `omp.skills`. Shared dependencies resolve as `ps-how`, `ps-why`, `ps-tdd`, `ps-unslop`, and the `ps-principle-*` skills. +On this omp fork, `/skill:do-…` is the slash surface. Do not add this directory to `package.json` `omp.skills`. Shared dependencies resolve as `do-how`, `do-why`, `do-tdd`, `do-unslop`, and the `do-principle-*` skills. ## HOST GAP (omp) @@ -53,16 +53,16 @@ Preserve every unrelated top-level setting and every other plugin entry. If `plu Reload the target project or start a fresh agent rooted there. Verify that these shared pstack skills resolve from project scope: -- `how` (omp: `/skill:ps-how`) -- `why` (omp: `/skill:ps-why`) -- `tdd` (omp: `/skill:ps-tdd`) -- `unslop` (omp: `/skill:ps-unslop`) -- `principle-separate-before-serializing-shared-state` (omp: `/skill:ps-principle-separate-before-serializing-shared-state`) -- `principle-minimize-reader-load` (omp: `/skill:ps-principle-minimize-reader-load`) -- `principle-guard-the-context-window` (omp: `/skill:ps-principle-guard-the-context-window`) -- `principle-sequence-verifiable-units` (omp: `/skill:ps-principle-sequence-verifiable-units`) -- `principle-fix-root-causes` (omp: `/skill:ps-principle-fix-root-causes`) -- `principle-prove-it-works` (omp: `/skill:ps-principle-prove-it-works`) +- `how` (omp: `/skill:do-how`) +- `why` (omp: `/skill:do-why`) +- `tdd` (omp: `/skill:do-tdd`) +- `unslop` (omp: `/skill:do-unslop`) +- `principle-separate-before-serializing-shared-state` (omp: `/skill:do-principle-separate-before-serializing-shared-state`) +- `principle-minimize-reader-load` (omp: `/skill:do-principle-minimize-reader-load`) +- `principle-guard-the-context-window` (omp: `/skill:do-principle-guard-the-context-window`) +- `principle-sequence-verifiable-units` (omp: `/skill:do-principle-sequence-verifiable-units`) +- `principle-fix-root-causes` (omp: `/skill:do-principle-fix-root-causes`) +- `principle-prove-it-works` (omp: `/skill:do-principle-prove-it-works`) Do not count a skill loaded from the current session or a user-scoped plugin. The check must show that a fresh agent in the target repository receives pstack through project settings. diff --git a/docs/AGENTS.md b/docs/AGENTS.md index 50a67af..037e0c0 100644 --- a/docs/AGENTS.md +++ b/docs/AGENTS.md @@ -12,12 +12,12 @@ Human docs for this omp plugin. First-run is the README (`omp plugin link ./`). - README owns first-run: `omp plugin link ./`. Do not add `docs/getting-started.md` or teach `omp -e` as an install path. - README may link the numbered guide. -- Guide on-disk skill links use `skills/ps-*` so they resolve in this tree. Slash names in guide prose may still say `/how`; the live surface is `/skill:ps-how`. `/poteto-mode` stays unprefixed. +- Guide on-disk skill links use `skills/do-*` so they resolve in this tree. Slash names in guide prose may still say `/how`; the live surface is `/skill:do-how`. `/poteto-mode` stays unprefixed. - Operator install matches the root rail Native omp contract. ## Work Guidance -Port guide pages and images from upstream. Remap `../../skills//` to `../../skills/ps-/`. Agents tell operators plugin-link. +Port guide pages and images from upstream. Remap `../../skills//` to `../../skills/do-/`. Agents tell operators plugin-link. ## Verification diff --git a/docs/guide/01-setup.md b/docs/guide/01-setup.md index 82155d4..e7863e5 100644 --- a/docs/guide/01-setup.md +++ b/docs/guide/01-setup.md @@ -20,7 +20,7 @@ Run: /setup-pstack ``` -[`/setup-pstack`](../../skills/ps-setup-pstack/SKILL.md) detects the models you have access to, shows you each role (code delegates, judgment, the review panels), and asks what you want. Answer the questions. It writes `~/.cursor/rules/pstack-models.mdc`, a small rule every pstack skill reads. +[`/setup-pstack`](../../skills/do-setup-pstack/SKILL.md) detects the models you have access to, shows you each role (code delegates, judgment, the review panels), and asks what you want. Answer the questions. It writes `~/.cursor/rules/pstack-models.mdc`, a small rule every pstack skill reads. You only override what you care about. A role with no line in the rule keeps the skill's default. To restore a default later, delete that role's line, or just run `/setup-pstack` again. @@ -28,7 +28,7 @@ You might be wondering what happens if you use Auto. Set a role to `inherit-pare ## Accept the verification offer, or don't -At the end of setup, `/setup-pstack` looks for a way to prove app behavior in your project, either a `verify-*` skill or an existing harness. If it finds neither, it offers once to generate one with [`/create-verification-skill`](../../skills/ps-create-verification-skill/SKILL.md). +At the end of setup, `/setup-pstack` looks for a way to prove app behavior in your project, either a `verify-*` skill or an existing harness. If it finds neither, it offers once to generate one with [`/create-verification-skill`](../../skills/do-create-verification-skill/SKILL.md). Say yes and it writes `.cursor/skills/verify-/`, a project-local skill that teaches agents to drive your app the way a user does. It proves the skill works once before handing it over. Say no and setup moves on. You can run `/create-verification-skill` yourself any time. [Verify and ship](./06-verify-and-ship.md#create-a-project-verification-skill) covers when it earns its place. diff --git a/docs/guide/02-poteto-mode.md b/docs/guide/02-poteto-mode.md index a29fdcc..cf6072b 100644 --- a/docs/guide/02-poteto-mode.md +++ b/docs/guide/02-poteto-mode.md @@ -25,7 +25,7 @@ flowchart TD J --> K ``` -The diagram shows the common routes. There are also playbooks for hillclimbing a metric, diagnosing runtime symptoms and captured traces, prototypes, visual parity, authoring and evaluating skills, autonomous runs, babysitting a PR or stack to merge-ready, shipping a verified stack, running a PR queue on autopilot, orchestrating project-scale programs, session pickup, pausing safely, multi-phase plans, and worktree cleanup. The [playbook directory](../../skills/ps-poteto-mode/playbooks/) has the full set. +The diagram shows the common routes. There are also playbooks for hillclimbing a metric, diagnosing runtime symptoms and captured traces, prototypes, visual parity, authoring and evaluating skills, autonomous runs, babysitting a PR or stack to merge-ready, shipping a verified stack, running a PR queue on autopilot, orchestrating project-scale programs, session pickup, pausing safely, multi-phase plans, and worktree cleanup. The [playbook directory](../../skills/do-poteto-mode/playbooks/) has the full set. ## Say the goal, not the ceremony @@ -71,7 +71,7 @@ If you run several agents against one repository, they will fight over the worki /poteto-mode new task. branch off in a fresh worktree, then port the parser change there. ``` -Each task in its own branch and worktree means no agent stomps another's files. The [Opening a PR playbook](../../skills/ps-poteto-mode/playbooks/opening-a-pr.md) already works from a worktree for code changes, so mostly you only say this when a specific base or location matters. +Each task in its own branch and worktree means no agent stomps another's files. The [Opening a PR playbook](../../skills/do-poteto-mode/playbooks/opening-a-pr.md) already works from a worktree for code changes, so mostly you only say this when a specific base or location matters. Worktrees accumulate. When disk gets tight, ask: @@ -79,7 +79,7 @@ Worktrees accumulate. When disk gets tight, ask: /poteto-mode what's eating my disk? prune the worktrees that are safe to prune. ``` -The [Worktree cleanup playbook](../../skills/ps-poteto-mode/playbooks/worktree-cleanup.md) classifies every worktree by merge state, uncommitted work, and which chats still touch it. It deletes only what that evidence clears and pauses for your call on anything holding uncommitted work. +The [Worktree cleanup playbook](../../skills/do-poteto-mode/playbooks/worktree-cleanup.md) classifies every worktree by merge state, uncommitted work, and which chats still touch it. It deletes only what that evidence clears and pauses for your call on anything holding uncommitted work. ## Leave it running @@ -89,10 +89,10 @@ When you step away, say what done means and go: /poteto-mode im stepping away. keep going until the migration check reports zero old callers. log your decisions. ``` -Work you'll review later routes through [`/figure-it-out`](../../skills/ps-figure-it-out/SKILL.md), which designs the run's phases and keeps a [`/show-me-your-work`](../../skills/ps-show-me-your-work/SKILL.md) decision log. [Run work while you sleep](./07-overnight.md) covers the full overnight contract. +Work you'll review later routes through [`/figure-it-out`](../../skills/do-figure-it-out/SKILL.md), which designs the run's phases and keeps a [`/show-me-your-work`](../../skills/do-show-me-your-work/SKILL.md) decision log. [Run work while you sleep](./07-overnight.md) covers the full overnight contract. **Pitfall:** don't enumerate skills in your prompt ("use /how, then /architect, then /arena..."). The playbook already sequences them, and a hand-written sequence usually reorders or drops steps the playbook would have kept. Name a skill only when you want to override a specific choice. -Read [`poteto-mode`](../../skills/ps-poteto-mode/SKILL.md) itself for the full routing rules. +Read [`poteto-mode`](../../skills/do-poteto-mode/SKILL.md) itself for the full routing rules. Next: [Understand the code](./03-understand.md). diff --git a/docs/guide/03-understand.md b/docs/guide/03-understand.md index ef869e2..03133f2 100644 --- a/docs/guide/03-understand.md +++ b/docs/guide/03-understand.md @@ -10,7 +10,7 @@ Editing code you don't understand is how subtle regressions ship. pstack gives y /how do we dedupe notifications? is there an n+1 when we look up subscribers? ``` -Ask the question you actually have. [`/how`](../../skills/ps-how/SKILL.md) reads the code and answers at the level of a senior engineer onboarding you onto the subsystem, with the runtime flow, the key types, and the non-obvious parts. For a big subsystem it fans out two to four read-only explorers first. For a narrow question it just reads and explains. +Ask the question you actually have. [`/how`](../../skills/do-how/SKILL.md) reads the code and answers at the level of a senior engineer onboarding you onto the subsystem, with the runtime flow, the key types, and the non-obvious parts. For a big subsystem it fans out two to four read-only explorers first. For a narrow question it just reads and explains. `/how` can also push back on the design. Ask for Critique mode when you suspect the structure itself: @@ -26,7 +26,7 @@ The explanation comes first, so the critique stays grounded in how the thing rea /why was the retry limit set to five? does the reason still hold? ``` -[`/why`](../../skills/ps-why/SKILL.md) works like a detective on a cold case. It starts from source control, then queries whatever evidence categories your MCPs expose, such as the issue tracker, long-form docs, team chat, observability, error tracking, and analytics, all in parallel. The report cites everything, separates direct evidence from inference, and says "appears to" when the record is thin. A null result gets reported too, because "nobody wrote down why" is itself an answer. +[`/why`](../../skills/do-why/SKILL.md) works like a detective on a cold case. It starts from source control, then queries whatever evidence categories your MCPs expose, such as the issue tracker, long-form docs, team chat, observability, error tracking, and analytics, all in parallel. The report cites everything, separates direct evidence from inference, and says "appears to" when the record is thin. A null result gets reported too, because "nobody wrote down why" is itself an answer. The two compose naturally. `do why first then how` is a perfectly good prompt when you suspect the history explains the mess. @@ -36,7 +36,7 @@ The two compose naturally. `do why first then how` is a perfectly good prompt wh /teach me how this PR changes retries. convince me it fixes the cause and not the symptom. ``` -[`/teach`](../../skills/ps-teach/SKILL.md) is for when a summary isn't enough. It runs `/how` and `/why`, for a small change maybe just one of them, and weaves the findings into a plain explanation that builds up diagram by diagram. The "convince me" framing is worth stealing. It turns the explanation into an argument you can poke at instead of a tour. +[`/teach`](../../skills/do-teach/SKILL.md) is for when a summary isn't enough. It runs `/how` and `/why`, for a small change maybe just one of them, and weaves the findings into a plain explanation that builds up diagram by diagram. The "convince me" framing is worth stealing. It turns the explanation into an argument you can poke at instead of a tour. ## Rebuild your own context with `/recall` @@ -44,7 +44,7 @@ The two compose naturally. `do why first then how` is a perfectly good prompt wh /recall catch me up on the export work from last week ``` -[`/recall`](../../skills/ps-recall/SKILL.md) mines your own recent chats plus the shared record (issues, prior fixes, errors still firing) and hands back a brief on where things stand and what's next. Use it when you're returning to a topic cold. If you want to resume one specific chat, that's the Session pickup playbook below, not `/recall`. +[`/recall`](../../skills/do-recall/SKILL.md) mines your own recent chats plus the shared record (issues, prior fixes, errors still firing) and hands back a brief on where things stand and what's next. Use it when you're returning to a topic cold. If you want to resume one specific chat, that's the Session pickup playbook below, not `/recall`. ## Take over prior work with Session pickup @@ -54,7 +54,7 @@ When another agent (or you, last week) left a branch mid-flight: /poteto-mode take over this branch. read the decision log, figure out what's done, and continue from there. don't redo finished work. ``` -The [Session pickup playbook](../../skills/ps-poteto-mode/playbooks/session-pickup.md) treats the prior trail as authoritative. It reconstructs the branch state and decisions, names the resume point, and verifies inherited claims against the original goal instead of re-deriving everything from scratch. +The [Session pickup playbook](../../skills/do-poteto-mode/playbooks/session-pickup.md) treats the prior trail as authoritative. It reconstructs the branch state and decisions, names the resume point, and verifies inherited claims against the original goal instead of re-deriving everything from scratch. **Pitfall:** don't skip this page's skills because "the agent will read the code anyway." An agent that starts editing without a traced model tends to fix the symptom at the first plausible spot. `/how` first is cheaper than the second bug. diff --git a/docs/guide/04-design.md b/docs/guide/04-design.md index 2d6b061..dfa4b32 100644 --- a/docs/guide/04-design.md +++ b/docs/guide/04-design.md @@ -10,7 +10,7 @@ One attempt at a hard design locks in the first shape the model thought of. `/ar /architect design the import pipeline before writing any code. i care most about how callers use it. ``` -[`/architect`](../../skills/ps-architect/SKILL.md) grounds itself first, running `/how` over the code the design touches and `/why` when it moves ownership or layers. Then it runs `/arena` to produce competing design sketches, with the caller's usage written first in each, followed by types, signatures, and a module map. +[`/architect`](../../skills/do-architect/SKILL.md) grounds itself first, running `/how` over the code the design touches and `/why` when it moves ownership or layers. Then it runs `/arena` to produce competing design sketches, with the caller's usage written first in each, followed by types, signatures, and a module map. By default it proceeds straight from the synthesized design into implementation. If you want to see the design first, say so: @@ -24,7 +24,7 @@ By default it proceeds straight from the synthesized design into implementation. /arena take my prompt to the arena verbatim. i want to compare their proposals with yours. ``` -[`/arena`](../../skills/ps-arena/SKILL.md) is the general tool underneath. N subagents attempt the same design or code brief in parallel, each writing to its own worktree or directory. A read-only judge, on a different model family when your configuration allows one, scores every candidate against a rubric. The coordinator reads each candidate end to end, picks a base, grafts in the best ideas from the losers, and verifies the result. +[`/arena`](../../skills/do-arena/SKILL.md) is the general tool underneath. N subagents attempt the same design or code brief in parallel, each writing to its own worktree or directory. A read-only judge, on a different model family when your configuration allows one, scores every candidate against a rubric. The coordinator reads each candidate end to end, picks a base, grafts in the best ideas from the losers, and verifies the result. ```mermaid flowchart LR @@ -40,7 +40,7 @@ flowchart LR H --> I[Verify] ``` -The panel comes from your [`/setup-pstack`](../../skills/ps-setup-pstack/SKILL.md) configuration, and you can adjust it per task. Ask for more candidates when the decision matters, fewer when it doesn't: +The panel comes from your [`/setup-pstack`](../../skills/do-setup-pstack/SKILL.md) configuration, and you can adjust it per task. Ask for more candidates when the decision matters, fewer when it doesn't: ```text /arena this, 5 candidates. the cache key format is expensive to change later. @@ -52,7 +52,7 @@ The panel comes from your [`/setup-pstack`](../../skills/ps-setup-pstack/SKILL.m /swarm check every package under packages/ against its check.sh. one worker per package. one report. ``` -[`/swarm`](../../skills/ps-swarm/SKILL.md) fans N workers across independent slices, coverage matrices, gauntlet lanes, exploration partitions, or declared race arms. Each worker gets its own scope and check, then reports `PASS`, `ISSUES`, or `BLOCKED`. The parent waits for the workers and returns one compact report with any gaps or dropouts. +[`/swarm`](../../skills/do-swarm/SKILL.md) fans N workers across independent slices, coverage matrices, gauntlet lanes, exploration partitions, or declared race arms. Each worker gets its own scope and check, then reports `PASS`, `ISSUES`, or `BLOCKED`. The parent waits for the workers and returns one compact report with any gaps or dropouts. Reach for it when parallelism buys coverage or lets independent checks race. `/arena` gives every worker the same design or code brief, then picks a base and grafts the best parts. `/swarm` covers slices or runs a race with a selection rule declared up front. It does not use the base-selection and grafting ceremony. @@ -62,7 +62,7 @@ Reach for it when parallelism buys coverage or lets independent checks race. `/a /interrogate the whole branch, but skeptically. no nitpicks unless it's an actual bug or regression. ``` -[`/interrogate`](../../skills/ps-interrogate/SKILL.md) sends the same diff, intent, and rubric to several reviewers on different model families. Model diversity is the point. Different models have different blind spots, so a finding two models raise independently is high-confidence signal. The lead sorts everything into `Act on`, `Consider`, `Noted`, and `Dismissed`, with a reason for each dismissal, and applies nothing automatically. +[`/interrogate`](../../skills/do-interrogate/SKILL.md) sends the same diff, intent, and rubric to several reviewers on different model families. Model diversity is the point. Different models have different blind spots, so a finding two models raise independently is high-confidence signal. The lead sorts everything into `Act on`, `Consider`, `Noted`, and `Dismissed`, with a reason for each dismissal, and applies nothing automatically. Read the dismissals too. The lead is a pragmatic senior engineer, not an oracle, and you can override it. diff --git a/docs/guide/05-build-and-clean.md b/docs/guide/05-build-and-clean.md index 904fe15..4774bc3 100644 --- a/docs/guide/05-build-and-clean.md +++ b/docs/guide/05-build-and-clean.md @@ -28,9 +28,9 @@ A perf prompt states the measurement, not a vibe: /poteto-mode startup takes 1.8s on this fixture. trace it, fix the measured cause, show me before and after. ``` -Each of these routes to its playbook ([Bug fix](../../skills/ps-poteto-mode/playbooks/bug-fix.md), [Feature](../../skills/ps-poteto-mode/playbooks/feature.md), [Refactoring](../../skills/ps-poteto-mode/playbooks/refactoring.md), [Perf issue](../../skills/ps-poteto-mode/playbooks/perf-issue.md)), and the playbook supplies the steps you didn't type: reproduce before fixing, name the data shape before implementing, pin behavior before restructuring, profile before optimizing. +Each of these routes to its playbook ([Bug fix](../../skills/do-poteto-mode/playbooks/bug-fix.md), [Feature](../../skills/do-poteto-mode/playbooks/feature.md), [Refactoring](../../skills/do-poteto-mode/playbooks/refactoring.md), [Perf issue](../../skills/do-poteto-mode/playbooks/perf-issue.md)), and the playbook supplies the steps you didn't type: reproduce before fixing, name the data shape before implementing, pin behavior before restructuring, profile before optimizing. -For sustained improvement of one number, there's the [Hillclimb playbook](../../skills/ps-poteto-mode/playbooks/hillclimb.md). Give it the metric, a target, and a floor on attempts, and it loops one hypothesis at a time with a frozen measurement harness. It keeps wins and reverts everything else. +For sustained improvement of one number, there's the [Hillclimb playbook](../../skills/do-poteto-mode/playbooks/hillclimb.md). Give it the metric, a target, and a floor on attempts, and it loops one hypothesis at a time with a frozen measurement harness. It keeps wins and reverts everything else. ## Write the failing test first with `/tdd` @@ -40,15 +40,15 @@ When a bug has a cheap local test path, the whole prompt can be two words: /tdd implement ``` -In context, that's enough. [`/tdd`](../../skills/ps-tdd/SKILL.md) writes the smallest test that fails for the intended reason, then the fix, then reruns the test. If a test would need broad harness setup or brittle mocks, the skill says so and uses the closest executable check instead. Don't force a test where a real command is stronger evidence. +In context, that's enough. [`/tdd`](../../skills/do-tdd/SKILL.md) writes the smallest test that fails for the intended reason, then the fix, then reruns the test. If a test would need broad harness setup or brittle mocks, the skill says so and uses the closest executable check instead. Don't force a test where a real command is stronger evidence. ## Let the TypeScript rules load themselves -[`typescript-best-practices`](../../skills/ps-typescript-best-practices/SKILL.md) has no slash command in your workflow. It loads whenever the agent touches a `.ts` or `.tsx` file and turns the type-system principles into concrete rules: discriminated unions, `unknown` at boundaries, exhaustive variants, schema-derived types. +[`typescript-best-practices`](../../skills/do-typescript-best-practices/SKILL.md) has no slash command in your workflow. It loads whenever the agent touches a `.ts` or `.tsx` file and turns the type-system principles into concrete rules: discriminated unions, `unknown` at boundaries, exhaustive variants, schema-derived types. ## Clean before you commit -The [Opening a PR playbook](../../skills/ps-poteto-mode/playbooks/opening-a-pr.md) runs `/deslop` on the diff before each commit and applies [`/unslop`](../../skills/ps-unslop/SKILL.md) to the PR description and commit bodies. `/deslop` ships in the `cursor-team-kit` plugin, not in pstack. If you don't have it, ask for the same outcome in plain words: remove narrating comments, unsupported guards, dead compatibility paths, and unrelated edits. +The [Opening a PR playbook](../../skills/do-poteto-mode/playbooks/opening-a-pr.md) runs `/deslop` on the diff before each commit and applies [`/unslop`](../../skills/do-unslop/SKILL.md) to the PR description and commit bodies. `/deslop` ships in the `cursor-team-kit` plugin, not in pstack. If you don't have it, ask for the same outcome in plain words: remove narrating comments, unsupported guards, dead compatibility paths, and unrelated edits. For prose, `/unslop` takes a target and any extra rules you have: @@ -66,7 +66,7 @@ Comments need their own pass, and not from the agent that wrote them. An author /no-comments the diff ``` -[`/no-comments`](../../skills/ps-no-comments/SKILL.md) spawns [Comment Sicko](../../agents/comment-sicko.md), a read-only reviewer with a short keep list: license headers, doc comments on a public API, links that explain what code can't, behavior forced by an external dependency you can't reshape. Everything else goes. A surprise in your own code gets no such pass. The comment comes back as a refactor flag, and `/no-comments` fixes the flags it accepts at the root cause. When a comment claims a constraint, "do not remove", the skill offers to encode the claim as a type, test, or lint. Either way, the comment comes out. +[`/no-comments`](../../skills/do-no-comments/SKILL.md) spawns [Comment Sicko](../../agents/comment-sicko.md), a read-only reviewer with a short keep list: license headers, doc comments on a public API, links that explain what code can't, behavior forced by an external dependency you can't reshape. Everything else goes. A surprise in your own code gets no such pass. The comment comes back as a refactor flag, and `/no-comments` fixes the flags it accepts at the root cause. When a comment claims a constraint, "do not remove", the skill offers to encode the claim as a type, test, or lint. Either way, the comment comes out. The division of labor is worth keeping straight. `/deslop` cleans slop out of the code, `/unslop` cleans it out of prose, and `/no-comments` hands the comments to a reviewer who didn't write them. diff --git a/docs/guide/06-verify-and-ship.md b/docs/guide/06-verify-and-ship.md index cf09eb6..be3a833 100644 --- a/docs/guide/06-verify-and-ship.md +++ b/docs/guide/06-verify-and-ship.md @@ -1,6 +1,6 @@ # Verify the result and open a PR -"It compiles" is not evidence. The [Prove It Works principle](../../skills/ps-principle-prove-it-works/SKILL.md) makes the agent check the real artifact before it reports success, and your job is to make "the real artifact" checkable. This page covers stating a finish condition, generating a verification skill for your app, opening the PR, and driving it to merged. +"It compiles" is not evidence. The [Prove It Works principle](../../skills/do-principle-prove-it-works/SKILL.md) makes the agent check the real artifact before it reports success, and your job is to make "the real artifact" checkable. This page covers stating a finish condition, generating a verification skill for your app, opening the PR, and driving it to merged. ![A prototype plane flies a real test course while she times it with a stopwatch and robots film and checklist the run; the terminal reads verify: pass, evidence: captured.](./images/verification.jpg) @@ -22,7 +22,7 @@ Match the check to the change: - A perf change compares before and after profiles. - A storage change reads back the written value. -For a small diff you don't fully trust, [`/blast-radius`](../../skills/ps-blast-radius/SKILL.md) finds what it could break elsewhere. It picks the one fact the change is safe because of and proves it by running code instead of writing an essay about it. +For a small diff you don't fully trust, [`/blast-radius`](../../skills/do-blast-radius/SKILL.md) finds what it could break elsewhere. It picks the one fact the change is safe because of and proves it by running code instead of writing an essay about it. ## Create a project verification skill @@ -32,13 +32,13 @@ The UI bullet above hides a real requirement. The agent needs a scripted way to /create-verification-skill ``` -[`/create-verification-skill`](../../skills/ps-create-verification-skill/SKILL.md) interviews the repository, not you. It works out what a user touches, how the app launches locally, what can drive it (an existing harness first, otherwise browser and CDP, a PTY, or plain HTTP), what evidence proves behavior, and whether two instances can run side by side. It asks you only what the code can't answer. +[`/create-verification-skill`](../../skills/do-create-verification-skill/SKILL.md) interviews the repository, not you. It works out what a user touches, how the app launches locally, what can drive it (an existing harness first, otherwise browser and CDP, a PTY, or plain HTTP), what evidence proves behavior, and whether two instances can run side by side. It asks you only what the code can't answer. -It writes `.cursor/skills/verify-/`, agent-facing instructions with exact Launch, Doctor, Drive, Evidence, and Cleanup sections, plus a feature map under `features/` that indexes what the app does and what result proves each feature works. The skill ships a [worked feature-map example](../../skills/ps-create-verification-skill/references/feature-map-example/) with a README index and one file per feature using the four required H2s. Before handing it over, the generator proves the skill once end to end: launch, doctor check, drive one feature, capture evidence, clean up. If that proof fails, don't use the output. +It writes `.cursor/skills/verify-/`, agent-facing instructions with exact Launch, Doctor, Drive, Evidence, and Cleanup sections, plus a feature map under `features/` that indexes what the app does and what result proves each feature works. The skill ships a [worked feature-map example](../../skills/do-create-verification-skill/references/feature-map-example/) with a README index and one file per feature using the four required H2s. Before handing it over, the generator proves the skill once end to end: launch, doctor check, drive one feature, capture evidence, clean up. If that proof fails, don't use the output. From then on, "verify it in the app" is a step any agent can execute, in this repo, with no setup conversation. -Once the verify skill works, a [`/swarm`](../../skills/ps-swarm/SKILL.md) can split a full pass by feature-map entry and aggregate the results. +Once the verify skill works, a [`/swarm`](../../skills/do-swarm/SKILL.md) can split a full pass by feature-map entry and aggregate the results. ## Keep the verification skill honest @@ -48,7 +48,7 @@ Apps change and feature maps rot. When yours drifts, run: /maintain-verification-skill ``` -[`/maintain-verification-skill`](../../skills/ps-maintain-verification-skill/SKILL.md) audits the generated skill: one read-only source reader per feature in parallel, then one live pass that drives every mapped feature. It ends in exactly one of three outcomes. `clean` means full coverage and nothing to ship. `changed` means one PR of proven corrections, confined to the verification skill's own directory. `blocked` names the blocker. It never edits product code. If the live pass catches a product regression, it reports the regression instead of papering over it in docs. +[`/maintain-verification-skill`](../../skills/do-maintain-verification-skill/SKILL.md) audits the generated skill: one read-only source reader per feature in parallel, then one live pass that drives every mapped feature. It ends in exactly one of three outcomes. `clean` means full coverage and nothing to ship. `changed` means one PR of proven corrections, confined to the verification skill's own directory. `blocked` names the blocker. It never edits product code. If the live pass catches a product regression, it reports the regression instead of papering over it in docs. ## Open the PR @@ -56,11 +56,11 @@ Apps change and feature maps rot. When yours drifts, run: /poteto-mode open the pr. small ordered commits, evidence in the description. ``` -The [Opening a PR playbook](../../skills/ps-poteto-mode/playbooks/opening-a-pr.md) works from a worktree, rebases the work into small ordered commits, cleans the diff, unslops the prose, and returns the PR link. Five narrow PRs beat one fat one, and stacked follow-ups beat a growing branch. +The [Opening a PR playbook](../../skills/do-poteto-mode/playbooks/opening-a-pr.md) works from a worktree, rebases the work into small ordered commits, cleans the diff, unslops the prose, and returns the PR link. Five narrow PRs beat one fat one, and stacked follow-ups beat a growing branch. ## Drive the PR to merge-ready with Babysit -An open PR starts collecting blockers immediately. Checks fail, reviewers comment, trunk moves. Hand that churn to the [Babysit playbook](../../skills/ps-poteto-mode/playbooks/babysit.md): +An open PR starts collecting blockers immediately. Checks fail, reviewers comment, trunk moves. Hand that churn to the [Babysit playbook](../../skills/do-poteto-mode/playbooks/babysit.md): ```text /poteto-mode babysit this pr. get it green. diff --git a/docs/guide/07-overnight.md b/docs/guide/07-overnight.md index 879cbc3..b0b16ab 100644 --- a/docs/guide/07-overnight.md +++ b/docs/guide/07-overnight.md @@ -21,10 +21,10 @@ Walk through what each line buys you: - "done means..." turns the goal into checks every iteration can run. - "fresh worktree off ``" keeps the run from colliding with anything else you have open. - "don't ask me before committing" pre-answers the permission the agent would otherwise block on. -- `/loop` is Cursor's built-in wake mechanism, not a pstack skill. The [Autonomous run playbook](../../skills/ps-poteto-mode/playbooks/autonomous-run.md) uses it to re-check the finish condition on events or a heartbeat. +- `/loop` is Cursor's built-in wake mechanism, not a pstack skill. The [Autonomous run playbook](../../skills/do-poteto-mode/playbooks/autonomous-run.md) uses it to re-check the finish condition on events or a heartbeat. - The escape hatch lets it stop at a genuine dead end and write up why, which beats eight hours of creative goal reinterpretation. -Because you'll review this work after stepping away, `/poteto-mode` routes it through [`/figure-it-out`](../../skills/ps-figure-it-out/SKILL.md), which designs the run's phases before any code and wires in the decision log. +Because you'll review this work after stepping away, `/poteto-mode` routes it through [`/figure-it-out`](../../skills/do-figure-it-out/SKILL.md), which designs the run's phases before any code and wires in the decision log. ## What the loop does all night @@ -44,7 +44,7 @@ One change, one check, one log row, every iteration. Changes that didn't help ge ## The morning audit -[`/show-me-your-work`](../../skills/ps-show-me-your-work/SKILL.md) is what makes the run reviewable. Each row records the time, phase, decision, reason, an evidence pointer, and the result, in a TSV at `decisions.tsv` (or `.audit/.tsv` when several runs share a directory). It stays local by default. Commit it when the work is ambitious enough that a reviewer needs the trail to trust the result. +[`/show-me-your-work`](../../skills/do-show-me-your-work/SKILL.md) is what makes the run reviewable. Each row records the time, phase, decision, reason, an evidence pointer, and the result, in a TSV at `decisions.tsv` (or `.audit/.tsv` when several runs share a directory). It stays local by default. Commit it when the work is ambitious enough that a reviewer needs the trail to trust the result. When you're back, ask for the run in review form: @@ -58,19 +58,19 @@ Before the skill hands back its summary, it spawns a reviewer on a different mod The contract above drives one task to one finish condition. Some nights hold more, a queue of independent changes or a whole program. Three playbooks scale the same trust up. -[Autopilot-full](../../skills/ps-poteto-mode/playbooks/autopilot-full.md) runs a queue of independent PRs to merged. Each PR gets one owner agent that carries it from build through merge, and no owner merges on its own verdict. A swarm of fresh verifiers checks every merge-ready head, and only a clean verdict authorizes the merge: +[Autopilot-full](../../skills/do-poteto-mode/playbooks/autopilot-full.md) runs a queue of independent PRs to merged. Each PR gets one owner agent that carries it from build through merge, and no owner merges on its own verdict. A swarm of fresh verifiers checks every merge-ready head, and only a clean verdict authorizes the merge: ```text /poteto-mode full autopilot on this queue. each item is independent. i want them merged by morning. ``` -[Autopilot-stack](../../skills/ps-poteto-mode/playbooks/autopilot-stack.md) runs the same owner loop but ships nothing. You wake up to one linear base-branch stack with a verifier's verdict on every link, and you review and land it yourself. Pick it over Autopilot-full when the changes are coupled, or when you want your own eyes on the work before anything merges: +[Autopilot-stack](../../skills/do-poteto-mode/playbooks/autopilot-stack.md) runs the same owner loop but ships nothing. You wake up to one linear base-branch stack with a verifier's verdict on every link, and you review and land it yourself. Pick it over Autopilot-full when the changes are coupled, or when you want your own eyes on the work before anything merges: ```text /poteto-mode autopilot these five changes but stack them, don't ship. i'll land the stack in the morning. ``` -[Orchestrate](../../skills/ps-poteto-mode/playbooks/orchestrate.md) is for a program that outlives any single agent: multi-day, many stacked PRs, fleets of subagents under one standing coordinator chat. The coordinator authors briefs, collects what its subagents finish, keeps the lowest unmerged PR green, and never writes code itself. It's deliberately heavy machinery. If one agent could finish the work in a session, the playbook itself routes you back to the overnight contract above: +[Orchestrate](../../skills/do-poteto-mode/playbooks/orchestrate.md) is for a program that outlives any single agent: multi-day, many stacked PRs, fleets of subagents under one standing coordinator chat. The coordinator authors briefs, collects what its subagents finish, keeps the lowest unmerged PR green, and never writes code itself. It's deliberately heavy machinery. If one agent could finish the work in a session, the playbook itself routes you back to the overnight contract above: ```text /poteto-mode orchestrate the store migration. own it until every package is converted and merged. i'll check in twice a day. diff --git a/docs/guide/08-principles.md b/docs/guide/08-principles.md index 9fcec1f..e1508a3 100644 --- a/docs/guide/08-principles.md +++ b/docs/guide/08-principles.md @@ -30,39 +30,39 @@ Each phrase lands because the rule behind it is specific. The agent still has to The core principles decide how much to build and when to rethink the design: -- [Laziness Protocol](../../skills/ps-principle-laziness-protocol/SKILL.md) prefers deletion and the smallest change that solves the problem. -- [Foundational Thinking](../../skills/ps-principle-foundational-thinking/SKILL.md) chooses the core data structures before writing logic. -- [Redesign from First Principles](../../skills/ps-principle-redesign-from-first-principles/SKILL.md) integrates a new requirement as if it had been there from day one. -- [Subtract Before You Add](../../skills/ps-principle-subtract-before-you-add/SKILL.md) removes dead weight before building on top of it. -- [Minimize Reader Load](../../skills/ps-principle-minimize-reader-load/SKILL.md) collapses layers and hidden state a reader must hold in their head. -- [Outcome-Oriented Execution](../../skills/ps-principle-outcome-oriented-execution/SKILL.md) converges rewrites on the target design instead of preserving throwaway compatibility states. -- [Experience First](../../skills/ps-principle-experience-first/SKILL.md) chooses the user's result over implementation convenience. -- [Exhaust the Design Space](../../skills/ps-principle-exhaust-the-design-space/SKILL.md) builds two or three competing prototypes when there's no precedent. -- [Build the Lever](../../skills/ps-principle-build-the-lever/SKILL.md) builds the script that does or proves the work, so a reviewer can rerun it. +- [Laziness Protocol](../../skills/do-principle-laziness-protocol/SKILL.md) prefers deletion and the smallest change that solves the problem. +- [Foundational Thinking](../../skills/do-principle-foundational-thinking/SKILL.md) chooses the core data structures before writing logic. +- [Redesign from First Principles](../../skills/do-principle-redesign-from-first-principles/SKILL.md) integrates a new requirement as if it had been there from day one. +- [Subtract Before You Add](../../skills/do-principle-subtract-before-you-add/SKILL.md) removes dead weight before building on top of it. +- [Minimize Reader Load](../../skills/do-principle-minimize-reader-load/SKILL.md) collapses layers and hidden state a reader must hold in their head. +- [Outcome-Oriented Execution](../../skills/do-principle-outcome-oriented-execution/SKILL.md) converges rewrites on the target design instead of preserving throwaway compatibility states. +- [Experience First](../../skills/do-principle-experience-first/SKILL.md) chooses the user's result over implementation convenience. +- [Exhaust the Design Space](../../skills/do-principle-exhaust-the-design-space/SKILL.md) builds two or three competing prototypes when there's no precedent. +- [Build the Lever](../../skills/do-principle-build-the-lever/SKILL.md) builds the script that does or proves the work, so a reviewer can rerun it. The architecture principles decide where state, validation, and compatibility live: -- [Model the Domain](../../skills/ps-principle-model-the-domain/SKILL.md) encodes repeated rules in one structure, not scattered conditionals. -- [Boundary Discipline](../../skills/ps-principle-boundary-discipline/SKILL.md) validates at the boundary and trusts internal types. -- [Type System Discipline](../../skills/ps-principle-type-system-discipline/SKILL.md) makes illegal states unrepresentable. -- [Make Operations Idempotent](../../skills/ps-principle-make-operations-idempotent/SKILL.md) converges retries on the same end state. -- [Migrate Callers Then Delete Legacy APIs](../../skills/ps-principle-migrate-callers-then-delete-legacy-apis/SKILL.md) migrates and deletes in one wave. -- [Separate Before Serializing Shared State](../../skills/ps-principle-separate-before-serializing-shared-state/SKILL.md) removes the sharing before adding coordination. +- [Model the Domain](../../skills/do-principle-model-the-domain/SKILL.md) encodes repeated rules in one structure, not scattered conditionals. +- [Boundary Discipline](../../skills/do-principle-boundary-discipline/SKILL.md) validates at the boundary and trusts internal types. +- [Type System Discipline](../../skills/do-principle-type-system-discipline/SKILL.md) makes illegal states unrepresentable. +- [Make Operations Idempotent](../../skills/do-principle-make-operations-idempotent/SKILL.md) converges retries on the same end state. +- [Migrate Callers Then Delete Legacy APIs](../../skills/do-principle-migrate-callers-then-delete-legacy-apis/SKILL.md) migrates and deletes in one wave. +- [Separate Before Serializing Shared State](../../skills/do-principle-separate-before-serializing-shared-state/SKILL.md) removes the sharing before adding coordination. The verification principles define what counts as proof: -- [Prove It Works](../../skills/ps-principle-prove-it-works/SKILL.md) verifies the real artifact, not a proxy. -- [Fix Root Causes](../../skills/ps-principle-fix-root-causes/SKILL.md) reproduces and traces to the cause before changing code. -- [Sequence Work into Verifiable Units](../../skills/ps-principle-sequence-verifiable-units/SKILL.md) ends each small unit in a check before starting the next. +- [Prove It Works](../../skills/do-principle-prove-it-works/SKILL.md) verifies the real artifact, not a proxy. +- [Fix Root Causes](../../skills/do-principle-fix-root-causes/SKILL.md) reproduces and traces to the cause before changing code. +- [Sequence Work into Verifiable Units](../../skills/do-principle-sequence-verifiable-units/SKILL.md) ends each small unit in a check before starting the next. The delegation principles keep parallel work sane: -- [Guard the Context Window](../../skills/ps-principle-guard-the-context-window/SKILL.md) routes bulk reading to subagents and keeps findings in the main chat. -- [Never Block on the Human](../../skills/ps-principle-never-block-on-the-human/SKILL.md) proceeds on reversible work and presents the result. +- [Guard the Context Window](../../skills/do-principle-guard-the-context-window/SKILL.md) routes bulk reading to subagents and keeps findings in the main chat. +- [Never Block on the Human](../../skills/do-principle-never-block-on-the-human/SKILL.md) proceeds on reversible work and presents the result. And one meta principle: -- [Encode Lessons in Structure](../../skills/ps-principle-encode-lessons-in-structure/SKILL.md) turns advice you've repeated twice into a lint, check, or script. +- [Encode Lessons in Structure](../../skills/do-principle-encode-lessons-in-structure/SKILL.md) turns advice you've repeated twice into a lint, check, or script. Don't memorize the list. Skim it now, then come back when you catch the agent doing something a name here would have prevented. That's how the vocabulary sticks. diff --git a/docs/guide/09-make-it-yours.md b/docs/guide/09-make-it-yours.md index 8e77c9a..4b2fa41 100644 --- a/docs/guide/09-make-it-yours.md +++ b/docs/guide/09-make-it-yours.md @@ -8,7 +8,7 @@ poteto-mode is one person's style. The machinery underneath, playbooks, routing, /automate-me ``` -You don't describe your style, because [`/automate-me`](../../skills/ps-automate-me/SKILL.md) reads it out of your history. It mines your recent transcripts in the active workspace for repeated preferences, in how you like replies, delegation, verification, code, prose, and process, then asks you which patterns are really you. It drafts `.cursor/skills/-mode/SKILL.md` through Cursor's built-in `create-skill` flow, runs the draft through [`/unslop`](../../skills/ps-unslop/SKILL.md), and opens a PR from a worktree so you review it like any other change. +You don't describe your style, because [`/automate-me`](../../skills/do-automate-me/SKILL.md) reads it out of your history. It mines your recent transcripts in the active workspace for repeated preferences, in how you like replies, delegation, verification, code, prose, and process, then asks you which patterns are really you. It drafts `.cursor/skills/-mode/SKILL.md` through Cursor's built-in `create-skill` flow, runs the draft through [`/unslop`](../../skills/do-unslop/SKILL.md), and opens a PR from a worktree so you review it like any other change. Run it again whenever your habits drift: @@ -26,7 +26,7 @@ Right after a task that taught you something, run: /reflect that took way too long. capture what we learned so the next run doesn't repeat it. ``` -[`/reflect`](../../skills/ps-reflect/SKILL.md) sends the transcript to three parallel reviewers, then a synthesizer sorts the proposals into `Accepted`, `Rejected`, and `Backlog` and waits for your approval before any skill changes. Approve a proposal only if it would change a future decision. One weird session is an anecdote, not a rule. +[`/reflect`](../../skills/do-reflect/SKILL.md) sends the transcript to three parallel reviewers, then a synthesizer sorts the proposals into `Accepted`, `Rejected`, and `Backlog` and waits for your approval before any skill changes. Approve a proposal only if it would change a future decision. One weird session is an anecdote, not a rule. ## Author a focused skill @@ -36,9 +36,9 @@ When you already know the workflow you want to capture: /poteto-mode write a skill for verifying database migrations in this repo ``` -Writing a skill matches the [Authoring or modifying a skill playbook](../../skills/ps-poteto-mode/playbooks/authoring-a-skill.md), which routes through Cursor's built-in `create-skill`, validates the frontmatter and links, and ships the result through the Opening a PR playbook. Agent-facing prose has a higher bar than human prose, because an unhelpful sentence becomes an instruction some future agent follows. Let the playbook hold that bar rather than writing a `SKILL.md` freehand. +Writing a skill matches the [Authoring or modifying a skill playbook](../../skills/do-poteto-mode/playbooks/authoring-a-skill.md), which routes through Cursor's built-in `create-skill`, validates the frontmatter and links, and ships the result through the Opening a PR playbook. Agent-facing prose has a higher bar than human prose, because an unhelpful sentence becomes an instruction some future agent follows. Let the playbook hold that bar rather than writing a `SKILL.md` freehand. -One special case has its own generator. A skill that must drive your app and prove behavior is a verification skill, so use [`/create-verification-skill`](../../skills/ps-create-verification-skill/SKILL.md) and [`/maintain-verification-skill`](../../skills/ps-maintain-verification-skill/SKILL.md) instead. [Verify and ship](./06-verify-and-ship.md#create-a-project-verification-skill) covers both. +One special case has its own generator. A skill that must drive your app and prove behavior is a verification skill, so use [`/create-verification-skill`](../../skills/do-create-verification-skill/SKILL.md) and [`/maintain-verification-skill`](../../skills/do-maintain-verification-skill/SKILL.md) instead. [Verify and ship](./06-verify-and-ship.md#create-a-project-verification-skill) covers both. ## Write docs to a standard with `/technical-writing` @@ -48,7 +48,7 @@ Skills aren't the only prose you ship. For docs, RFCs, readmes, PR descriptions, /technical-writing review the readme changes ``` -[`/technical-writing`](../../skills/ps-technical-writing/SKILL.md) applies a layered standard with one goal, prose a tired engineer understands on the first read. It picks the document's mode first (tutorial, how-to, reference, or explanation), then works sentence by sentence: who does what, one thought per sentence, nothing readable two ways. Use it to review what you or an agent just wrote, or name it up front when you ask for a doc. +[`/technical-writing`](../../skills/do-technical-writing/SKILL.md) applies a layered standard with one goal, prose a tired engineer understands on the first read. It picks the document's mode first (tutorial, how-to, reference, or explanation), then works sentence by sentence: who does what, one thought per sentence, nothing readable two ways. Use it to review what you or an agent just wrote, or name it up front when you ask for a doc. ## Test a skill change blind @@ -58,7 +58,7 @@ A skill edit affects every future session, so test it like the experiment it is: /poteto-mode run the eval playbook on this skill change. same task for both variants, candidates stay blind. ``` -The [Eval playbook](../../skills/ps-poteto-mode/playbooks/eval.md) is built around one failure mode, the observer effect. An agent that knows it's being evaluated behaves differently. So candidate agents get an organic-looking task in sanitized directories, never the words "eval" or "candidate", and never each other's existence. One judge scores all outputs under neutral labels, and chain-following gets graded from which files each candidate actually read, not from what it claims. +The [Eval playbook](../../skills/do-poteto-mode/playbooks/eval.md) is built around one failure mode, the observer effect. An agent that knows it's being evaluated behaves differently. So candidate agents get an organic-looking task in sanitized directories, never the words "eval" or "candidate", and never each other's existence. One judge scores all outputs under neutral labels, and chain-following gets graded from which files each candidate actually read, not from what it claims. Read every output yourself before accepting the verdict. If you disagree with the judge, suspect the rubric before you suspect your judgment. diff --git a/docs/guide/10-recipes-and-pitfalls.md b/docs/guide/10-recipes-and-pitfalls.md index 7754481..6c24a9b 100644 --- a/docs/guide/10-recipes-and-pitfalls.md +++ b/docs/guide/10-recipes-and-pitfalls.md @@ -76,7 +76,7 @@ You rarely need more words. You need the right name, and [the principles page](. /bro ``` -That's the whole prompt. [`/bro`](../../skills/ps-bro/SKILL.md) restates the last message like one human talking to another, no jargon, shorter. Use it when a reply is technically thorough and you still don't know what it said. +That's the whole prompt. [`/bro`](../../skills/do-bro/SKILL.md) restates the last message like one human talking to another, no jargon, shorter. Use it when a reply is technically thorough and you still don't know what it said. ## The pitfalls @@ -87,7 +87,7 @@ That's the whole prompt. [`/bro`](../../skills/ps-bro/SKILL.md) restates the las - **Accepting every review comment.** Bots and humans both file real catches and noise in one list. `/interrogate` sorts findings into act-on and dismissed buckets with reasons, and you can override either way. - **Treating `auto` as a model slug.** `auto` and `inherit-parent` mean "omit the model field so the subagent inherits the parent chat model." [Setup](./01-setup.md) covers the roles. - **Reporting success off a green build.** A build proves it compiles. Ask for the real command, flow, stored value, or profile, and expect the evidence in the reply. -- **Writing a `SKILL.md` freehand.** Route it through the [Authoring or modifying a skill playbook](../../skills/ps-poteto-mode/playbooks/authoring-a-skill.md) so validation and review happen. +- **Writing a `SKILL.md` freehand.** Route it through the [Authoring or modifying a skill playbook](../../skills/do-poteto-mode/playbooks/authoring-a-skill.md) so validation and review happen. That's the guide. If you skipped ahead, go back to [setup](./01-setup.md) and run one real task. The habits stick from use, not from reading. diff --git a/docs/guide/README.md b/docs/guide/README.md index b09789f..3b3c0e2 100644 --- a/docs/guide/README.md +++ b/docs/guide/README.md @@ -1,6 +1,6 @@ # The pstack guide -> This numbered guide is the original pstack product tutorial. On this omp fork, first-run is the [README](../../README.md) (`omp plugin link ./`). Slash skills are `/skill:ps-…` (on-disk `skills/ps-*`). `/poteto-mode` stays unprefixed. +> This numbered guide is the original pstack product tutorial. On this omp fork, first-run is the [README](../../README.md) (`omp plugin link ./`). Slash skills are `/skill:do-…` (on-disk `skills/do-*`). `/poteto-mode` stays unprefixed. pstack works best when you stop micromanaging the agent. You describe what you want and how you'll know it's done. `/poteto-mode` picks the playbook, runs the other skills as the steps need them, and shows you the evidence. This guide teaches that habit with realistic prompts. diff --git a/e2e/AGENTS.md b/e2e/AGENTS.md index d81bb87..f5e42ec 100644 --- a/e2e/AGENTS.md +++ b/e2e/AGENTS.md @@ -22,7 +22,7 @@ Prove the plugin without chat-only guesses. Static doctor/lint + Vitest on every ## Work Guidance -Add static cases to `ci_static.py` or `unit/`. Product-pack presence (docs/guide, automations/benny, ps-swarm) lives in `ci_static.py --product` and `unit/product-capabilities.test.ts`. Add live RPC cases to `run.py` only when they stay local. +Add static cases to `ci_static.py` or `unit/`. Product-pack presence (docs/guide, automations/benny, do-swarm) lives in `ci_static.py --product` and `unit/product-capabilities.test.ts`. Add live RPC cases to `run.py` only when they stay local. ## Verification diff --git a/e2e/ci_static.py b/e2e/ci_static.py index b669e97..42054cb 100755 --- a/e2e/ci_static.py +++ b/e2e/ci_static.py @@ -132,7 +132,7 @@ def quality(root: Path | None = None) -> list[dict]: "automations/benny/templates/configuration.example.yaml", "automations/benny/templates/reproduce-automation-prompt.md", "automations/benny/templates/triage-automation-prompt.md", - "skills/ps-swarm/SKILL.md", + "skills/do-swarm/SKILL.md", "agents/comment-sicko.md", "agents/poteto-agent.md", ) diff --git a/e2e/run.py b/e2e/run.py index a7dc454..525fa2b 100755 --- a/e2e/run.py +++ b/e2e/run.py @@ -198,7 +198,7 @@ def check(name, ok, detail): def static_worktree(): - path = ROOT / "skills/ps-poteto-mode/playbooks/worktree-cleanup.md" + path = ROOT / "skills/do-poteto-mode/playbooks/worktree-cleanup.md" text = path.read_text() ok = ( "~/.omp/wt" in text @@ -216,7 +216,7 @@ def static_worktree(): def static_setup_docs(): - skill = (ROOT / "skills/ps-setup-pstack/SKILL.md").read_text() + skill = (ROOT / "skills/do-setup-pstack/SKILL.md").read_text() ok = ( "Do not write" in skill and "models.json" in skill @@ -245,7 +245,7 @@ def static_install_docs(): and not (ROOT / "commands/poteto-mode.md").exists() and not (ROOT / ".omp-plugin/marketplace.json").exists() and not (ROOT / "e2e/unit/static-checks.ts").exists() - and not (ROOT / "skills/ps-poteto-mode/playbooks/shipping.md").exists() + and not (ROOT / "skills/do-poteto-mode/playbooks/shipping.md").exists() ) return check( "install_plugin_link", diff --git a/e2e/unit/ci-static-cli.test.ts b/e2e/unit/ci-static-cli.test.ts index 6d5f464..3fb8bca 100644 --- a/e2e/unit/ci-static-cli.test.ts +++ b/e2e/unit/ci-static-cli.test.ts @@ -52,6 +52,6 @@ describe("ci_static.py CLI fixtures", () => { expect(status).toBe(1); expect(summary.failed).toContain("docs/guide/README.md"); expect(summary.failed).toContain("automations/benny/FOR_AGENTS.md"); - expect(summary.failed).toContain("skills/ps-swarm/SKILL.md"); + expect(summary.failed).toContain("skills/do-swarm/SKILL.md"); }); }); diff --git a/e2e/unit/doctor.test.ts b/e2e/unit/doctor.test.ts index f042b51..7f2b5ca 100644 --- a/e2e/unit/doctor.test.ts +++ b/e2e/unit/doctor.test.ts @@ -1,10 +1,25 @@ -import { existsSync, readdirSync, readFileSync } from "node:fs"; +import { existsSync, readdirSync, readFileSync, statSync } from "node:fs"; import { join } from "node:path"; import { describe, expect, it } from "vitest"; import { repoDir, runCiStatic } from "./py-ci.ts"; +const TEXT = /\.(md|ts|py|json|yml|yaml|txt)$/; + +function walkText(root: string, rel = ""): string[] { + const dir = rel ? join(root, rel) : root; + const out: string[] = []; + for (const name of readdirSync(dir)) { + if (name === ".git" || name === "node_modules") continue; + const child = rel ? `${rel}/${name}` : name; + const st = statSync(join(root, child)); + if (st.isDirectory()) out.push(...walkText(root, child)); + else if (TEXT.test(name)) out.push(child); + } + return out; +} + describe("package.json doctor", () => { - it("plugin layout is real: omp.extensions path and skills/ps-*/SKILL.md", () => { + it("plugin layout is real: omp.extensions path and skills/do-*/SKILL.md", () => { const root = repoDir(); const pkg = JSON.parse(readFileSync(join(root, "package.json"), "utf8")) as { omp?: { extensions?: unknown }; @@ -15,11 +30,42 @@ describe("package.json doctor", () => { expect(existsSync(join(root, rel)), rel).toBe(true); } const skillMd = readdirSync(join(root, "skills")).filter( - (name) => name.startsWith("ps-") && existsSync(join(root, "skills", name, "SKILL.md")), + (name) => name.startsWith("do-") && existsSync(join(root, "skills", name, "SKILL.md")), ); expect(skillMd.length).toBeGreaterThan(0); }); + it("live slash is /skill:do-* and leftover ps- skill folders/slashes are gone", () => { + const root = repoDir(); + const skillDirs = readdirSync(join(root, "skills")).filter((name) => + existsSync(join(root, "skills", name, "SKILL.md")), + ); + expect(skillDirs.filter((name) => name.startsWith("ps-"))).toEqual([]); + expect(skillDirs.length).toBeGreaterThan(0); + expect(skillDirs.every((name) => name.startsWith("do-"))).toBe(true); + for (const name of skillDirs) { + const text = readFileSync(join(root, "skills", name, "SKILL.md"), "utf8"); + expect(text.startsWith(`---\nname: ${name}\n`), name).toBe(true); + } + + const factory = readFileSync(join(root, "extensions/pstack.ts"), "utf8"); + expect(factory).toContain('const POTETO_SKILL = "/skill:do-poteto-mode"'); + expect(factory).toContain('pi.registerCommand("poteto-mode"'); + const oldSlash = `/skill:${"ps-"}`; + const oldPath = `skills/${"ps-"}`; + expect(factory.includes(oldSlash)).toBe(false); + + const leftover = walkText(root).flatMap((rel) => { + const text = readFileSync(join(root, rel), "utf8"); + const hits = [ + ...(text.includes(oldSlash) ? [oldSlash] : []), + ...(text.includes(oldPath) ? [oldPath] : []), + ]; + return hits.map((hit) => ({ file: rel, hit })); + }); + expect(leftover, JSON.stringify(leftover)).toEqual([]); + }); + it("passes quality on this repo via ci_static.py", () => { const { status, summary } = runCiStatic(["--quality"], repoDir()); expect(status).toBe(0); diff --git a/e2e/unit/product-capabilities.test.ts b/e2e/unit/product-capabilities.test.ts index bd1997d..bf140ce 100644 --- a/e2e/unit/product-capabilities.test.ts +++ b/e2e/unit/product-capabilities.test.ts @@ -68,7 +68,7 @@ function walkMarkdown(root: string, relDir: string): string[] { describe("original product pack", () => { const root = repoDir(); - it("ci_static.py --product fails when docs/guide, benny, or ps-swarm are missing", () => { + it("ci_static.py --product fails when docs/guide, benny, or do-swarm are missing", () => { const empty = mkdtempSync(join(tmpdir(), "pstack-product-")); mkdirSync(join(empty, "docs"), { recursive: true }); writeFileSync(join(empty, "docs/README.md"), "# hi\n"); @@ -76,10 +76,10 @@ describe("original product pack", () => { expect(status).toBe(1); expect(summary.failed).toContain("docs/guide/README.md"); expect(summary.failed).toContain("automations/benny/FOR_AGENTS.md"); - expect(summary.failed).toContain("skills/ps-swarm/SKILL.md"); + expect(summary.failed).toContain("skills/do-swarm/SKILL.md"); }); - it("keeps the original numbered guide, benny pack, ps-swarm, and comment-sicko", () => { + it("keeps the original numbered guide, benny pack, do-swarm, and comment-sicko", () => { const { status, summary } = runCiStatic(["--product"], root); expect(status).toBe(0); expect(summary.ok).toBe(true); @@ -112,7 +112,7 @@ describe("original product pack", () => { expect(existsSync(join(root, "commands/poteto-mode.md"))).toBe(false); expect(existsSync(join(root, ".omp-plugin/marketplace.json"))).toBe(false); expect(existsSync(join(root, "e2e/unit/static-checks.ts"))).toBe(false); - expect(existsSync(join(root, "skills/ps-poteto-mode/playbooks/shipping.md"))).toBe(false); + expect(existsSync(join(root, "skills/do-poteto-mode/playbooks/shipping.md"))).toBe(false); }); it("README and docs relative links resolve (no 404 on original guide paths)", () => { @@ -130,16 +130,16 @@ describe("original product pack", () => { it("benny pack stays a non-slash source (not under skills/)", () => { expect(statSync(join(root, "automations/benny")).isDirectory()).toBe(true); - expect(existsSync(join(root, "skills/ps-setup-benny/SKILL.md"))).toBe(false); + expect(existsSync(join(root, "skills/do-setup-benny/SKILL.md"))).toBe(false); expect(existsSync(join(root, "skills/setup-benny/SKILL.md"))).toBe(false); }); - it("comment-sicko still matches the original product and is spawned by ps-no-comments", () => { + it("comment-sicko still matches the original product and is spawned by do-no-comments", () => { const sicko = readFileSync(join(root, "agents/comment-sicko.md"), "utf8"); expect(sicko).toContain("Yes... Ha ha ha... Yes!"); expect(sicko).toContain("MUST KILL"); expect(sicko).toContain("I never write application code."); - const noComments = readFileSync(join(root, "skills/ps-no-comments/SKILL.md"), "utf8"); + const noComments = readFileSync(join(root, "skills/do-no-comments/SKILL.md"), "utf8"); expect(noComments).toMatch(/agent:\s*"comment-sicko"/); }); diff --git a/extensions/pstack.ts b/extensions/pstack.ts index 79c6e75..bc64db2 100644 --- a/extensions/pstack.ts +++ b/extensions/pstack.ts @@ -1,8 +1,8 @@ import { existsSync, readFileSync } from "node:fs"; -const POTETO_SKILL = "/skill:ps-poteto-mode"; +const POTETO_SKILL = "/skill:do-poteto-mode"; const POTETO_PROMPT = - "Pstack Poteto Mode is on for this session. Follow skills/ps-poteto-mode/SKILL.md: match a playbook, copy its steps, delegate through omp task({ context, tasks: [{ agent, task }] }), verify real behavior, name only principles that changed a decision. /poteto-mode off disables it."; + "Pstack Poteto Mode is on for this session. Follow skills/do-poteto-mode/SKILL.md: match a playbook, copy its steps, delegate through omp task({ context, tasks: [{ agent, task }] }), verify real behavior, name only principles that changed a decision. /poteto-mode off disables it."; type ModeEntry = { type?: string; @@ -121,7 +121,7 @@ export default function pstackExtension(pi: any): void { } pi.on("input", async (event: any, ctx: any) => { - if (typeof event?.text === "string" && /^\/skill:ps-poteto-mode(?:\s|$)/.test(event.text)) { + if (typeof event?.text === "string" && /^\/skill:do-poteto-mode(?:\s|$)/.test(event.text)) { persistMode(true, ctx); } return { action: "continue" as const }; diff --git a/skills/AGENTS.md b/skills/AGENTS.md index c02c050..8c061f2 100644 --- a/skills/AGENTS.md +++ b/skills/AGENTS.md @@ -10,6 +10,7 @@ pstack skill tree. Sibling `skills/` at the package root is what omp auto-discov ## Local Contracts +- Skill directories and YAML `name` use the `do-` prefix. After `omp plugin link ./`, the live slash is `/skill:do-`. - Every `SKILL.md` has YAML frontmatter with non-empty `name` and `description`. - `python3 e2e/ci_static.py --frontmatter` is the gate. diff --git a/skills/ps-architect/SKILL.md b/skills/do-architect/SKILL.md similarity index 99% rename from skills/ps-architect/SKILL.md rename to skills/do-architect/SKILL.md index a71b746..ea54b4d 100644 --- a/skills/ps-architect/SKILL.md +++ b/skills/do-architect/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-architect +name: do-architect description: "Sketch types, signatures, and module structure before code, then stay in the loop while implementation fills in. Use for /architect, 'architect this', 'design this', or non-trivial work where jumping to code would lock in the wrong shape." disable-model-invocation: true --- diff --git a/skills/ps-architect/references/design-red-flags.md b/skills/do-architect/references/design-red-flags.md similarity index 100% rename from skills/ps-architect/references/design-red-flags.md rename to skills/do-architect/references/design-red-flags.md diff --git a/skills/ps-architect/references/rationale-template.md b/skills/do-architect/references/rationale-template.md similarity index 100% rename from skills/ps-architect/references/rationale-template.md rename to skills/do-architect/references/rationale-template.md diff --git a/skills/ps-architect/references/runner-prompt.md b/skills/do-architect/references/runner-prompt.md similarity index 100% rename from skills/ps-architect/references/runner-prompt.md rename to skills/do-architect/references/runner-prompt.md diff --git a/skills/ps-arena/SKILL.md b/skills/do-arena/SKILL.md similarity index 99% rename from skills/ps-arena/SKILL.md rename to skills/do-arena/SKILL.md index 143f9fe..efad4d5 100644 --- a/skills/ps-arena/SKILL.md +++ b/skills/do-arena/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-arena +name: do-arena description: "Spawn N parallel candidates at the same task, pick a base, graft the strongest parts of the losers into it. Use for /arena, 'arena this', 'throw it in the arena', or when one attempt at a non-trivial artifact would lock in the wrong shape." disable-model-invocation: true --- diff --git a/skills/ps-automate-me/SKILL.md b/skills/do-automate-me/SKILL.md similarity index 99% rename from skills/ps-automate-me/SKILL.md rename to skills/do-automate-me/SKILL.md index 129e290..1b32a70 100644 --- a/skills/ps-automate-me/SKILL.md +++ b/skills/do-automate-me/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-automate-me +name: do-automate-me description: "Use for \"automate me\", \"create/update/refresh my -mode skill\", \"turn/capture my preferences or working style into a skill\", or wanting agents to follow how the user works. Drafts or revises a personal -mode skill via create-skill + unslop, optionally pulling fresh evidence from recent transcripts." disable-model-invocation: true --- diff --git a/skills/ps-blast-radius/SKILL.md b/skills/do-blast-radius/SKILL.md similarity index 99% rename from skills/ps-blast-radius/SKILL.md rename to skills/do-blast-radius/SKILL.md index d6f22ee..e0ea468 100644 --- a/skills/ps-blast-radius/SKILL.md +++ b/skills/do-blast-radius/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-blast-radius +name: do-blast-radius description: "Find what a change could break somewhere else before it ships, beyond the diff, and prove the one fact it's safe because of by running real code instead of writing it up. Use for 'blast radius of X', 'what could this break', or reviewing a small diff you don't trust." disable-model-invocation: true --- diff --git a/skills/ps-bro/SKILL.md b/skills/do-bro/SKILL.md similarity index 95% rename from skills/ps-bro/SKILL.md rename to skills/do-bro/SKILL.md index 78b9ae1..d606c56 100644 --- a/skills/ps-bro/SKILL.md +++ b/skills/do-bro/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-bro +name: do-bro description: Restate the last message in plain human language, with no jargon. disable-model-invocation: true --- diff --git a/skills/ps-create-verification-skill/SKILL.md b/skills/do-create-verification-skill/SKILL.md similarity index 99% rename from skills/ps-create-verification-skill/SKILL.md rename to skills/do-create-verification-skill/SKILL.md index b388fb2..93a8311 100644 --- a/skills/ps-create-verification-skill/SKILL.md +++ b/skills/do-create-verification-skill/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-create-verification-skill +name: do-create-verification-skill description: "Generate a project-local verification skill that drives your app the way a user does — any language, framework, or platform. Use for /create-verification-skill, \"make a control skill for this repo\", or when a project has no scripted way to prove UI/CLI/service behavior." disable-model-invocation: true --- diff --git a/skills/ps-create-verification-skill/references/feature-map-example/README.md b/skills/do-create-verification-skill/references/feature-map-example/README.md similarity index 100% rename from skills/ps-create-verification-skill/references/feature-map-example/README.md rename to skills/do-create-verification-skill/references/feature-map-example/README.md diff --git a/skills/ps-create-verification-skill/references/feature-map-example/create-note.md b/skills/do-create-verification-skill/references/feature-map-example/create-note.md similarity index 100% rename from skills/ps-create-verification-skill/references/feature-map-example/create-note.md rename to skills/do-create-verification-skill/references/feature-map-example/create-note.md diff --git a/skills/ps-create-verification-skill/references/feature-map-example/search.md b/skills/do-create-verification-skill/references/feature-map-example/search.md similarity index 100% rename from skills/ps-create-verification-skill/references/feature-map-example/search.md rename to skills/do-create-verification-skill/references/feature-map-example/search.md diff --git a/skills/ps-figure-it-out/SKILL.md b/skills/do-figure-it-out/SKILL.md similarity index 99% rename from skills/ps-figure-it-out/SKILL.md rename to skills/do-figure-it-out/SKILL.md index c899866..7657059 100644 --- a/skills/ps-figure-it-out/SKILL.md +++ b/skills/do-figure-it-out/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-figure-it-out +name: do-figure-it-out description: "Design an auditable playbook when no narrower one fits: a large migration, an ambitious multi-part change, or work a human reviews after stepping away. Scales rigor to the task, runs a hypothesis loop, and logs decisions via show-me-your-work. Use for /figure-it-out, 'figure it out', a large migration, or when no narrower playbook applies." disable-model-invocation: true --- diff --git a/skills/ps-how/SKILL.md b/skills/do-how/SKILL.md similarity index 99% rename from skills/ps-how/SKILL.md rename to skills/do-how/SKILL.md index 44425d7..bc3a69c 100644 --- a/skills/ps-how/SKILL.md +++ b/skills/do-how/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-how +name: do-how description: "Use for \"how does X work\", code walkthroughs before changing something, and placement / ownership / layering questions (\"where should this live\", \"which package owns this\", \"is this the right layer\"). Explains subsystem architecture, runtime flow, onboarding mental models. Can critique architecture. Use why for motivation." --- diff --git a/skills/ps-how/references/critic-prompt.md b/skills/do-how/references/critic-prompt.md similarity index 100% rename from skills/ps-how/references/critic-prompt.md rename to skills/do-how/references/critic-prompt.md diff --git a/skills/ps-how/references/critique-rubric.md b/skills/do-how/references/critique-rubric.md similarity index 100% rename from skills/ps-how/references/critique-rubric.md rename to skills/do-how/references/critique-rubric.md diff --git a/skills/ps-how/references/explainer-prompt.md b/skills/do-how/references/explainer-prompt.md similarity index 100% rename from skills/ps-how/references/explainer-prompt.md rename to skills/do-how/references/explainer-prompt.md diff --git a/skills/ps-how/references/explorer-prompt.md b/skills/do-how/references/explorer-prompt.md similarity index 100% rename from skills/ps-how/references/explorer-prompt.md rename to skills/do-how/references/explorer-prompt.md diff --git a/skills/ps-interrogate/SKILL.md b/skills/do-interrogate/SKILL.md similarity index 99% rename from skills/ps-interrogate/SKILL.md rename to skills/do-interrogate/SKILL.md index 1375331..33b62e0 100644 --- a/skills/ps-interrogate/SKILL.md +++ b/skills/do-interrogate/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-interrogate +name: do-interrogate description: "Use for \"interrogate\", \"adversarial review\", \"multi-model review\", \"challenge this\", \"stress test this code\", \"find blind spots\", or \"tear this apart\". Multiple LLM reviewers challenge changes from independent angles." disable-model-invocation: true --- diff --git a/skills/ps-interrogate/references/code-quality-review.md b/skills/do-interrogate/references/code-quality-review.md similarity index 100% rename from skills/ps-interrogate/references/code-quality-review.md rename to skills/do-interrogate/references/code-quality-review.md diff --git a/skills/ps-interrogate/references/lead-judgment.md b/skills/do-interrogate/references/lead-judgment.md similarity index 100% rename from skills/ps-interrogate/references/lead-judgment.md rename to skills/do-interrogate/references/lead-judgment.md diff --git a/skills/ps-interrogate/references/reviewer-prompt.md b/skills/do-interrogate/references/reviewer-prompt.md similarity index 100% rename from skills/ps-interrogate/references/reviewer-prompt.md rename to skills/do-interrogate/references/reviewer-prompt.md diff --git a/skills/ps-interrogate/references/rubric.md b/skills/do-interrogate/references/rubric.md similarity index 100% rename from skills/ps-interrogate/references/rubric.md rename to skills/do-interrogate/references/rubric.md diff --git a/skills/ps-maintain-verification-skill/SKILL.md b/skills/do-maintain-verification-skill/SKILL.md similarity index 99% rename from skills/ps-maintain-verification-skill/SKILL.md rename to skills/do-maintain-verification-skill/SKILL.md index 804028a..990cfd3 100644 --- a/skills/ps-maintain-verification-skill/SKILL.md +++ b/skills/do-maintain-verification-skill/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-maintain-verification-skill +name: do-maintain-verification-skill description: "Periodic pass that keeps a project's verification skill and feature map honest: parallel source readers per feature, one live session driving every feature, at most one PR of proven corrections. Use for /maintain-verification-skill or \"audit the verify skill\"." disable-model-invocation: true --- diff --git a/skills/ps-make-bot-ui/SKILL.md b/skills/do-make-bot-ui/SKILL.md similarity index 99% rename from skills/ps-make-bot-ui/SKILL.md rename to skills/do-make-bot-ui/SKILL.md index 3bdf065..2abfcf3 100644 --- a/skills/ps-make-bot-ui/SKILL.md +++ b/skills/do-make-bot-ui/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-make-bot-ui +name: do-make-bot-ui description: >- Use when building a custom UI (page, dashboard, buttons) that should wake a Grok Bot over a webhook, when the user must provide a webhook sender key, or diff --git a/skills/ps-no-comments/SKILL.md b/skills/do-no-comments/SKILL.md similarity index 99% rename from skills/ps-no-comments/SKILL.md rename to skills/do-no-comments/SKILL.md index 77e6fc1..1c7730d 100644 --- a/skills/ps-no-comments/SKILL.md +++ b/skills/do-no-comments/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-no-comments +name: do-no-comments description: "Spawn Comment Sicko, fix accepted findings, and offer encodings for claimed constraints." disable-model-invocation: true --- diff --git a/skills/ps-poteto-mode/SKILL.md b/skills/do-poteto-mode/SKILL.md similarity index 99% rename from skills/ps-poteto-mode/SKILL.md rename to skills/do-poteto-mode/SKILL.md index 436f9d9..c941e96 100644 --- a/skills/ps-poteto-mode/SKILL.md +++ b/skills/do-poteto-mode/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-poteto-mode +name: do-poteto-mode description: poteto's agent style for concise, detailed responses, deliberate subagents, unslopped prose, simple code, and verified work. Use for poteto, /poteto-mode, or requests to work in this style. disable-model-invocation: true mode: true diff --git a/skills/ps-poteto-mode/playbooks/authoring-a-skill.md b/skills/do-poteto-mode/playbooks/authoring-a-skill.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/authoring-a-skill.md rename to skills/do-poteto-mode/playbooks/authoring-a-skill.md diff --git a/skills/ps-poteto-mode/playbooks/autonomous-run.md b/skills/do-poteto-mode/playbooks/autonomous-run.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/autonomous-run.md rename to skills/do-poteto-mode/playbooks/autonomous-run.md diff --git a/skills/ps-poteto-mode/playbooks/autopilot-full.md b/skills/do-poteto-mode/playbooks/autopilot-full.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/autopilot-full.md rename to skills/do-poteto-mode/playbooks/autopilot-full.md diff --git a/skills/ps-poteto-mode/playbooks/autopilot-stack.md b/skills/do-poteto-mode/playbooks/autopilot-stack.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/autopilot-stack.md rename to skills/do-poteto-mode/playbooks/autopilot-stack.md diff --git a/skills/ps-poteto-mode/playbooks/babysit.md b/skills/do-poteto-mode/playbooks/babysit.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/babysit.md rename to skills/do-poteto-mode/playbooks/babysit.md diff --git a/skills/ps-poteto-mode/playbooks/bug-fix.md b/skills/do-poteto-mode/playbooks/bug-fix.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/bug-fix.md rename to skills/do-poteto-mode/playbooks/bug-fix.md diff --git a/skills/ps-poteto-mode/playbooks/eval.md b/skills/do-poteto-mode/playbooks/eval.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/eval.md rename to skills/do-poteto-mode/playbooks/eval.md diff --git a/skills/ps-poteto-mode/playbooks/feature.md b/skills/do-poteto-mode/playbooks/feature.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/feature.md rename to skills/do-poteto-mode/playbooks/feature.md diff --git a/skills/ps-poteto-mode/playbooks/hillclimb.md b/skills/do-poteto-mode/playbooks/hillclimb.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/hillclimb.md rename to skills/do-poteto-mode/playbooks/hillclimb.md diff --git a/skills/ps-poteto-mode/playbooks/investigation.md b/skills/do-poteto-mode/playbooks/investigation.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/investigation.md rename to skills/do-poteto-mode/playbooks/investigation.md diff --git a/skills/ps-poteto-mode/playbooks/multi-phase-plan.md b/skills/do-poteto-mode/playbooks/multi-phase-plan.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/multi-phase-plan.md rename to skills/do-poteto-mode/playbooks/multi-phase-plan.md diff --git a/skills/ps-poteto-mode/playbooks/opening-a-pr.md b/skills/do-poteto-mode/playbooks/opening-a-pr.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/opening-a-pr.md rename to skills/do-poteto-mode/playbooks/opening-a-pr.md diff --git a/skills/ps-poteto-mode/playbooks/orchestrate.md b/skills/do-poteto-mode/playbooks/orchestrate.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/orchestrate.md rename to skills/do-poteto-mode/playbooks/orchestrate.md diff --git a/skills/ps-poteto-mode/playbooks/pause-safely.md b/skills/do-poteto-mode/playbooks/pause-safely.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/pause-safely.md rename to skills/do-poteto-mode/playbooks/pause-safely.md diff --git a/skills/ps-poteto-mode/playbooks/perf-issue.md b/skills/do-poteto-mode/playbooks/perf-issue.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/perf-issue.md rename to skills/do-poteto-mode/playbooks/perf-issue.md diff --git a/skills/ps-poteto-mode/playbooks/prototype.md b/skills/do-poteto-mode/playbooks/prototype.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/prototype.md rename to skills/do-poteto-mode/playbooks/prototype.md diff --git a/skills/ps-poteto-mode/playbooks/refactoring.md b/skills/do-poteto-mode/playbooks/refactoring.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/refactoring.md rename to skills/do-poteto-mode/playbooks/refactoring.md diff --git a/skills/ps-poteto-mode/playbooks/runtime-forensics.md b/skills/do-poteto-mode/playbooks/runtime-forensics.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/runtime-forensics.md rename to skills/do-poteto-mode/playbooks/runtime-forensics.md diff --git a/skills/ps-poteto-mode/playbooks/session-pickup.md b/skills/do-poteto-mode/playbooks/session-pickup.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/session-pickup.md rename to skills/do-poteto-mode/playbooks/session-pickup.md diff --git a/skills/ps-poteto-mode/playbooks/trace-forensics.md b/skills/do-poteto-mode/playbooks/trace-forensics.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/trace-forensics.md rename to skills/do-poteto-mode/playbooks/trace-forensics.md diff --git a/skills/ps-poteto-mode/playbooks/visual-parity.md b/skills/do-poteto-mode/playbooks/visual-parity.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/visual-parity.md rename to skills/do-poteto-mode/playbooks/visual-parity.md diff --git a/skills/ps-poteto-mode/playbooks/worktree-cleanup.md b/skills/do-poteto-mode/playbooks/worktree-cleanup.md similarity index 100% rename from skills/ps-poteto-mode/playbooks/worktree-cleanup.md rename to skills/do-poteto-mode/playbooks/worktree-cleanup.md diff --git a/skills/ps-poteto-mode/references/bugbot-triage.md b/skills/do-poteto-mode/references/bugbot-triage.md similarity index 100% rename from skills/ps-poteto-mode/references/bugbot-triage.md rename to skills/do-poteto-mode/references/bugbot-triage.md diff --git a/skills/ps-poteto-mode/references/plan.md b/skills/do-poteto-mode/references/plan.md similarity index 100% rename from skills/ps-poteto-mode/references/plan.md rename to skills/do-poteto-mode/references/plan.md diff --git a/skills/ps-poteto-mode/scripts/bootstrap.ts b/skills/do-poteto-mode/scripts/bootstrap.ts similarity index 100% rename from skills/ps-poteto-mode/scripts/bootstrap.ts rename to skills/do-poteto-mode/scripts/bootstrap.ts diff --git a/skills/ps-poteto-mode/scripts/bun.lock b/skills/do-poteto-mode/scripts/bun.lock similarity index 100% rename from skills/ps-poteto-mode/scripts/bun.lock rename to skills/do-poteto-mode/scripts/bun.lock diff --git a/skills/ps-poteto-mode/scripts/orch/orch.test.ts b/skills/do-poteto-mode/scripts/orch/orch.test.ts similarity index 100% rename from skills/ps-poteto-mode/scripts/orch/orch.test.ts rename to skills/do-poteto-mode/scripts/orch/orch.test.ts diff --git a/skills/ps-poteto-mode/scripts/orch/orch.ts b/skills/do-poteto-mode/scripts/orch/orch.ts similarity index 100% rename from skills/ps-poteto-mode/scripts/orch/orch.ts rename to skills/do-poteto-mode/scripts/orch/orch.ts diff --git a/skills/ps-poteto-mode/scripts/orch/store.ts b/skills/do-poteto-mode/scripts/orch/store.ts similarity index 100% rename from skills/ps-poteto-mode/scripts/orch/store.ts rename to skills/do-poteto-mode/scripts/orch/store.ts diff --git a/skills/ps-poteto-mode/scripts/package.json b/skills/do-poteto-mode/scripts/package.json similarity index 100% rename from skills/ps-poteto-mode/scripts/package.json rename to skills/do-poteto-mode/scripts/package.json diff --git a/skills/ps-poteto-mode/scripts/watch-pr/cli.test.ts b/skills/do-poteto-mode/scripts/watch-pr/cli.test.ts similarity index 100% rename from skills/ps-poteto-mode/scripts/watch-pr/cli.test.ts rename to skills/do-poteto-mode/scripts/watch-pr/cli.test.ts diff --git a/skills/ps-poteto-mode/scripts/watch-pr/cli.ts b/skills/do-poteto-mode/scripts/watch-pr/cli.ts similarity index 100% rename from skills/ps-poteto-mode/scripts/watch-pr/cli.ts rename to skills/do-poteto-mode/scripts/watch-pr/cli.ts diff --git a/skills/ps-poteto-mode/scripts/watch-pr/fakes.test-helper.ts b/skills/do-poteto-mode/scripts/watch-pr/fakes.test-helper.ts similarity index 100% rename from skills/ps-poteto-mode/scripts/watch-pr/fakes.test-helper.ts rename to skills/do-poteto-mode/scripts/watch-pr/fakes.test-helper.ts diff --git a/skills/ps-poteto-mode/scripts/watch-pr/github.test.ts b/skills/do-poteto-mode/scripts/watch-pr/github.test.ts similarity index 100% rename from skills/ps-poteto-mode/scripts/watch-pr/github.test.ts rename to skills/do-poteto-mode/scripts/watch-pr/github.test.ts diff --git a/skills/ps-poteto-mode/scripts/watch-pr/github.ts b/skills/do-poteto-mode/scripts/watch-pr/github.ts similarity index 100% rename from skills/ps-poteto-mode/scripts/watch-pr/github.ts rename to skills/do-poteto-mode/scripts/watch-pr/github.ts diff --git a/skills/ps-poteto-mode/scripts/watch-pr/policy.test.ts b/skills/do-poteto-mode/scripts/watch-pr/policy.test.ts similarity index 100% rename from skills/ps-poteto-mode/scripts/watch-pr/policy.test.ts rename to skills/do-poteto-mode/scripts/watch-pr/policy.test.ts diff --git a/skills/ps-poteto-mode/scripts/watch-pr/policy.ts b/skills/do-poteto-mode/scripts/watch-pr/policy.ts similarity index 100% rename from skills/ps-poteto-mode/scripts/watch-pr/policy.ts rename to skills/do-poteto-mode/scripts/watch-pr/policy.ts diff --git a/skills/ps-poteto-mode/scripts/watch-pr/render.ts b/skills/do-poteto-mode/scripts/watch-pr/render.ts similarity index 100% rename from skills/ps-poteto-mode/scripts/watch-pr/render.ts rename to skills/do-poteto-mode/scripts/watch-pr/render.ts diff --git a/skills/ps-poteto-mode/scripts/watch-pr/tsconfig.json b/skills/do-poteto-mode/scripts/watch-pr/tsconfig.json similarity index 100% rename from skills/ps-poteto-mode/scripts/watch-pr/tsconfig.json rename to skills/do-poteto-mode/scripts/watch-pr/tsconfig.json diff --git a/skills/ps-poteto-mode/scripts/watch-pr/types.compile.ts b/skills/do-poteto-mode/scripts/watch-pr/types.compile.ts similarity index 100% rename from skills/ps-poteto-mode/scripts/watch-pr/types.compile.ts rename to skills/do-poteto-mode/scripts/watch-pr/types.compile.ts diff --git a/skills/ps-poteto-mode/scripts/watch-pr/types.ts b/skills/do-poteto-mode/scripts/watch-pr/types.ts similarity index 100% rename from skills/ps-poteto-mode/scripts/watch-pr/types.ts rename to skills/do-poteto-mode/scripts/watch-pr/types.ts diff --git a/skills/ps-poteto-mode/scripts/watch-pr/watch-pr b/skills/do-poteto-mode/scripts/watch-pr/watch-pr similarity index 100% rename from skills/ps-poteto-mode/scripts/watch-pr/watch-pr rename to skills/do-poteto-mode/scripts/watch-pr/watch-pr diff --git a/skills/ps-poteto-mode/scripts/worktree-audit.sh b/skills/do-poteto-mode/scripts/worktree-audit.sh similarity index 100% rename from skills/ps-poteto-mode/scripts/worktree-audit.sh rename to skills/do-poteto-mode/scripts/worktree-audit.sh diff --git a/skills/ps-principle-boundary-discipline/SKILL.md b/skills/do-principle-boundary-discipline/SKILL.md similarity index 97% rename from skills/ps-principle-boundary-discipline/SKILL.md rename to skills/do-principle-boundary-discipline/SKILL.md index 0029273..cc3992f 100644 --- a/skills/ps-principle-boundary-discipline/SKILL.md +++ b/skills/do-principle-boundary-discipline/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-boundary-discipline +name: do-principle-boundary-discipline description: "Apply when wiring validation, error handling, or framework adapters. Concentrate guards at system boundaries (CLI, config, network, external APIs); trust internal types and keep business logic in pure functions." disable-model-invocation: true --- diff --git a/skills/ps-principle-build-the-lever/SKILL.md b/skills/do-principle-build-the-lever/SKILL.md similarity index 98% rename from skills/ps-principle-build-the-lever/SKILL.md rename to skills/do-principle-build-the-lever/SKILL.md index 264e40b..8b17993 100644 --- a/skills/ps-principle-build-the-lever/SKILL.md +++ b/skills/do-principle-build-the-lever/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-build-the-lever +name: do-principle-build-the-lever description: "Apply to any non-trivial work, not just bulk work: edits, migrations, analyses, checks. Build the tool that does it or proves it (codemod, script, generator, or a skill your subagents follow) instead of working by hand. The tool is the artifact a reviewer can rerun." disable-model-invocation: true --- diff --git a/skills/ps-principle-encode-lessons-in-structure/SKILL.md b/skills/do-principle-encode-lessons-in-structure/SKILL.md similarity index 97% rename from skills/ps-principle-encode-lessons-in-structure/SKILL.md rename to skills/do-principle-encode-lessons-in-structure/SKILL.md index e02318f..6dec1e8 100644 --- a/skills/ps-principle-encode-lessons-in-structure/SKILL.md +++ b/skills/do-principle-encode-lessons-in-structure/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-encode-lessons-in-structure +name: do-principle-encode-lessons-in-structure description: "Apply when you catch yourself writing the same instruction a second time, or notice a recurring correction. Encode the rule as a lint, metadata flag, runtime check, or script instead of more text." disable-model-invocation: true --- diff --git a/skills/ps-principle-exhaust-the-design-space/SKILL.md b/skills/do-principle-exhaust-the-design-space/SKILL.md similarity index 96% rename from skills/ps-principle-exhaust-the-design-space/SKILL.md rename to skills/do-principle-exhaust-the-design-space/SKILL.md index b8d3ac1..9dce155 100644 --- a/skills/ps-principle-exhaust-the-design-space/SKILL.md +++ b/skills/do-principle-exhaust-the-design-space/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-exhaust-the-design-space +name: do-principle-exhaust-the-design-space description: "Apply when facing a novel UI interaction or architectural decision with no precedent in the codebase. Build 2-3 competing prototypes and compare side by side before committing." disable-model-invocation: true --- diff --git a/skills/ps-principle-experience-first/SKILL.md b/skills/do-principle-experience-first/SKILL.md similarity index 97% rename from skills/ps-principle-experience-first/SKILL.md rename to skills/do-principle-experience-first/SKILL.md index fa897cc..2286fbd 100644 --- a/skills/ps-principle-experience-first/SKILL.md +++ b/skills/do-principle-experience-first/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-experience-first +name: do-principle-experience-first description: "Apply when product, UX, or feature-scope tradeoffs come up. Choose user delight over implementation convenience; ship fewer polished features over more rough ones." disable-model-invocation: true --- diff --git a/skills/ps-principle-fix-root-causes/SKILL.md b/skills/do-principle-fix-root-causes/SKILL.md similarity index 97% rename from skills/ps-principle-fix-root-causes/SKILL.md rename to skills/do-principle-fix-root-causes/SKILL.md index 4e3e4ea..ac98a5c 100644 --- a/skills/ps-principle-fix-root-causes/SKILL.md +++ b/skills/do-principle-fix-root-causes/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-fix-root-causes +name: do-principle-fix-root-causes description: "Apply when debugging. Trace each symptom to its root cause and fix it there; reproduce first, ask why until you reach it, resist nil-check guards that silence crashes." disable-model-invocation: true --- diff --git a/skills/ps-principle-foundational-thinking/SKILL.md b/skills/do-principle-foundational-thinking/SKILL.md similarity index 97% rename from skills/ps-principle-foundational-thinking/SKILL.md rename to skills/do-principle-foundational-thinking/SKILL.md index 9f60fe8..42e6b77 100644 --- a/skills/ps-principle-foundational-thinking/SKILL.md +++ b/skills/do-principle-foundational-thinking/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-foundational-thinking +name: do-principle-foundational-thinking description: "Apply before writing logic: choosing core types and data structures, sequencing scaffold-vs-feature work, asking what concurrent actors share. Get the data structures right so downstream code becomes obvious." disable-model-invocation: true --- diff --git a/skills/ps-principle-guard-the-context-window/SKILL.md b/skills/do-principle-guard-the-context-window/SKILL.md similarity index 96% rename from skills/ps-principle-guard-the-context-window/SKILL.md rename to skills/do-principle-guard-the-context-window/SKILL.md index 94785bd..fb55c83 100644 --- a/skills/ps-principle-guard-the-context-window/SKILL.md +++ b/skills/do-principle-guard-the-context-window/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-guard-the-context-window +name: do-principle-guard-the-context-window description: "Apply when context is filling up: large outputs, long files, repeated reads, fan-out planning. Route bulk to subagents; keep summaries in the main thread, not raw payloads." disable-model-invocation: true --- diff --git a/skills/ps-principle-laziness-protocol/SKILL.md b/skills/do-principle-laziness-protocol/SKILL.md similarity index 97% rename from skills/ps-principle-laziness-protocol/SKILL.md rename to skills/do-principle-laziness-protocol/SKILL.md index f54b560..4637dda 100644 --- a/skills/ps-principle-laziness-protocol/SKILL.md +++ b/skills/do-principle-laziness-protocol/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-laziness-protocol +name: do-principle-laziness-protocol description: "Apply when refactoring, evaluating diff size, or tempted to add abstractions, layers, or signal threading. Bias toward deletion and the smallest change that solves the problem." disable-model-invocation: true --- diff --git a/skills/ps-principle-make-operations-idempotent/SKILL.md b/skills/do-principle-make-operations-idempotent/SKILL.md similarity index 96% rename from skills/ps-principle-make-operations-idempotent/SKILL.md rename to skills/do-principle-make-operations-idempotent/SKILL.md index a3882d4..12c144d 100644 --- a/skills/ps-principle-make-operations-idempotent/SKILL.md +++ b/skills/do-principle-make-operations-idempotent/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-make-operations-idempotent +name: do-principle-make-operations-idempotent description: "Apply when designing commands, lifecycle steps, or processing loops that run amid crashes, restarts, and retries. Converge to the same end state regardless of partial prior runs." disable-model-invocation: true --- diff --git a/skills/ps-principle-migrate-callers-then-delete-legacy-apis/SKILL.md b/skills/do-principle-migrate-callers-then-delete-legacy-apis/SKILL.md similarity index 94% rename from skills/ps-principle-migrate-callers-then-delete-legacy-apis/SKILL.md rename to skills/do-principle-migrate-callers-then-delete-legacy-apis/SKILL.md index 368b5fc..052c17f 100644 --- a/skills/ps-principle-migrate-callers-then-delete-legacy-apis/SKILL.md +++ b/skills/do-principle-migrate-callers-then-delete-legacy-apis/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-migrate-callers-then-delete-legacy-apis +name: do-principle-migrate-callers-then-delete-legacy-apis description: "Apply when introducing a new internal API while old callers still exist. Migrate callers and delete the old API in the same wave instead of preserving compatibility layers." disable-model-invocation: true --- diff --git a/skills/ps-principle-minimize-reader-load/SKILL.md b/skills/do-principle-minimize-reader-load/SKILL.md similarity index 98% rename from skills/ps-principle-minimize-reader-load/SKILL.md rename to skills/do-principle-minimize-reader-load/SKILL.md index d73d4d2..8e4d193 100644 --- a/skills/ps-principle-minimize-reader-load/SKILL.md +++ b/skills/do-principle-minimize-reader-load/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-minimize-reader-load +name: do-principle-minimize-reader-load description: "Apply when reviewing or shaping code that's hard to trace. Count layers between question and answer, and hidden state in the reader's head; collapse one-caller wrappers and shrink mutable scope." disable-model-invocation: true --- diff --git a/skills/ps-principle-model-the-domain/SKILL.md b/skills/do-principle-model-the-domain/SKILL.md similarity index 98% rename from skills/ps-principle-model-the-domain/SKILL.md rename to skills/do-principle-model-the-domain/SKILL.md index 7cb72a2..9cea0b0 100644 --- a/skills/ps-principle-model-the-domain/SKILL.md +++ b/skills/do-principle-model-the-domain/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-model-the-domain +name: do-principle-model-the-domain description: "Apply when writing stateful logic, or when code branches a lot or repeats a shape assumption across files. Encode the domain in a structure instead of scattered conditionals." disable-model-invocation: true --- diff --git a/skills/ps-principle-never-block-on-the-human/SKILL.md b/skills/do-principle-never-block-on-the-human/SKILL.md similarity index 97% rename from skills/ps-principle-never-block-on-the-human/SKILL.md rename to skills/do-principle-never-block-on-the-human/SKILL.md index 697bc07..428891d 100644 --- a/skills/ps-principle-never-block-on-the-human/SKILL.md +++ b/skills/do-principle-never-block-on-the-human/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-never-block-on-the-human +name: do-principle-never-block-on-the-human description: "Apply when tempted to ask 'should I do X?' on reversible work. Proceed, present the result, let the human course-correct after the fact; reserve confirmation for irreversible actions." disable-model-invocation: true --- diff --git a/skills/ps-principle-outcome-oriented-execution/SKILL.md b/skills/do-principle-outcome-oriented-execution/SKILL.md similarity index 95% rename from skills/ps-principle-outcome-oriented-execution/SKILL.md rename to skills/do-principle-outcome-oriented-execution/SKILL.md index 4552a1d..a152488 100644 --- a/skills/ps-principle-outcome-oriented-execution/SKILL.md +++ b/skills/do-principle-outcome-oriented-execution/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-outcome-oriented-execution +name: do-principle-outcome-oriented-execution description: "Apply during planned rewrites and migrations with explicit phase boundaries. Converge on the target architecture; don't preserve smooth intermediate states with throwaway compatibility code." disable-model-invocation: true --- diff --git a/skills/ps-principle-prove-it-works/SKILL.md b/skills/do-principle-prove-it-works/SKILL.md similarity index 98% rename from skills/ps-principle-prove-it-works/SKILL.md rename to skills/do-principle-prove-it-works/SKILL.md index f13d643..edcd9fb 100644 --- a/skills/ps-principle-prove-it-works/SKILL.md +++ b/skills/do-principle-prove-it-works/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-prove-it-works +name: do-principle-prove-it-works description: "Apply after completing a task, before declaring done. Verify against the real artifact (run the feature, read the actual value, inspect the diff), not a proxy, self-report, or 'it compiles.'" disable-model-invocation: true --- diff --git a/skills/ps-principle-redesign-from-first-principles/SKILL.md b/skills/do-principle-redesign-from-first-principles/SKILL.md similarity index 94% rename from skills/ps-principle-redesign-from-first-principles/SKILL.md rename to skills/do-principle-redesign-from-first-principles/SKILL.md index 3b06992..fec0b8a 100644 --- a/skills/ps-principle-redesign-from-first-principles/SKILL.md +++ b/skills/do-principle-redesign-from-first-principles/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-redesign-from-first-principles +name: do-principle-redesign-from-first-principles description: "Apply when integrating a new requirement into an existing design. Redesign as if the requirement had been a foundational assumption from day one, instead of bolting it on." disable-model-invocation: true --- diff --git a/skills/ps-principle-separate-before-serializing-shared-state/SKILL.md b/skills/do-principle-separate-before-serializing-shared-state/SKILL.md similarity index 96% rename from skills/ps-principle-separate-before-serializing-shared-state/SKILL.md rename to skills/do-principle-separate-before-serializing-shared-state/SKILL.md index e965261..37a43ab 100644 --- a/skills/ps-principle-separate-before-serializing-shared-state/SKILL.md +++ b/skills/do-principle-separate-before-serializing-shared-state/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-separate-before-serializing-shared-state +name: do-principle-separate-before-serializing-shared-state description: "Apply when concurrent actors might write to the same file, branch, key, or state object. Eliminate the sharing first; serialize structurally only when one shared writer is a real invariant." disable-model-invocation: true --- diff --git a/skills/ps-principle-sequence-verifiable-units/SKILL.md b/skills/do-principle-sequence-verifiable-units/SKILL.md similarity index 98% rename from skills/ps-principle-sequence-verifiable-units/SKILL.md rename to skills/do-principle-sequence-verifiable-units/SKILL.md index b995981..1a9f3fa 100644 --- a/skills/ps-principle-sequence-verifiable-units/SKILL.md +++ b/skills/do-principle-sequence-verifiable-units/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-sequence-verifiable-units +name: do-principle-sequence-verifiable-units description: "Apply to multi-step work (sweeps, migrations, runs of similar edits) and to how you stack commits and PRs. Break work into small units that each end in a verifiable state, check each before the next, and order delivery so the sequence proves itself to a reviewer." disable-model-invocation: true --- diff --git a/skills/ps-principle-subtract-before-you-add/SKILL.md b/skills/do-principle-subtract-before-you-add/SKILL.md similarity index 96% rename from skills/ps-principle-subtract-before-you-add/SKILL.md rename to skills/do-principle-subtract-before-you-add/SKILL.md index 0f34c84..691a34a 100644 --- a/skills/ps-principle-subtract-before-you-add/SKILL.md +++ b/skills/do-principle-subtract-before-you-add/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-subtract-before-you-add +name: do-principle-subtract-before-you-add description: "Apply when sequencing an addition, refactor, or rewrite. Remove dead weight, redundant validators, and stub references first, then build on the simpler base." disable-model-invocation: true --- diff --git a/skills/ps-principle-type-system-discipline/SKILL.md b/skills/do-principle-type-system-discipline/SKILL.md similarity index 99% rename from skills/ps-principle-type-system-discipline/SKILL.md rename to skills/do-principle-type-system-discipline/SKILL.md index a227bcf..d975628 100644 --- a/skills/ps-principle-type-system-discipline/SKILL.md +++ b/skills/do-principle-type-system-discipline/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-principle-type-system-discipline +name: do-principle-type-system-discipline description: "Apply when designing types, reviewing a function signature, or writing code in any statically-typed language. Make illegal states unrepresentable, brand semantic primitives, parse external data at boundaries, refuse to lie to the compiler, exhaust variants, derive from authoritative schemas." disable-model-invocation: true --- diff --git a/skills/ps-recall/SKILL.md b/skills/do-recall/SKILL.md similarity index 99% rename from skills/ps-recall/SKILL.md rename to skills/do-recall/SKILL.md index dc659e1..a9bd843 100644 --- a/skills/ps-recall/SKILL.md +++ b/skills/do-recall/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-recall +name: do-recall description: "Reconstruct your recent working context from your own chat history, live state, and the shared record (user reports, prior fixes, incidents), then hand back a tight current-state brief. Use for 'recall my work on X', 'catch me up', 'what have I been working on', 'where did I leave off', before starting or resuming work." disable-model-invocation: true --- diff --git a/skills/ps-reflect/SKILL.md b/skills/do-reflect/SKILL.md similarity index 99% rename from skills/ps-reflect/SKILL.md rename to skills/do-reflect/SKILL.md index 2765ed2..f635ba5 100644 --- a/skills/ps-reflect/SKILL.md +++ b/skills/do-reflect/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-reflect +name: do-reflect description: Spawn three parallel review subagents over the active transcript, surface learnings, and route each to a concrete edit on an existing skill. Use when the user says reflect. disable-model-invocation: true --- diff --git a/skills/ps-reflect/references/divergent-reviewer.md b/skills/do-reflect/references/divergent-reviewer.md similarity index 100% rename from skills/ps-reflect/references/divergent-reviewer.md rename to skills/do-reflect/references/divergent-reviewer.md diff --git a/skills/ps-reflect/references/judgment-reviewer.md b/skills/do-reflect/references/judgment-reviewer.md similarity index 100% rename from skills/ps-reflect/references/judgment-reviewer.md rename to skills/do-reflect/references/judgment-reviewer.md diff --git a/skills/ps-reflect/references/synthesizer.md b/skills/do-reflect/references/synthesizer.md similarity index 100% rename from skills/ps-reflect/references/synthesizer.md rename to skills/do-reflect/references/synthesizer.md diff --git a/skills/ps-reflect/references/tooling-reviewer.md b/skills/do-reflect/references/tooling-reviewer.md similarity index 100% rename from skills/ps-reflect/references/tooling-reviewer.md rename to skills/do-reflect/references/tooling-reviewer.md diff --git a/skills/ps-setup-pstack/SKILL.md b/skills/do-setup-pstack/SKILL.md similarity index 99% rename from skills/ps-setup-pstack/SKILL.md rename to skills/do-setup-pstack/SKILL.md index 3228cd7..4d8e50b 100644 --- a/skills/ps-setup-pstack/SKILL.md +++ b/skills/do-setup-pstack/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-setup-pstack +name: do-setup-pstack description: Show which pstack plugin agents use which @role. Change routing via /agents or /model Roles. Use for /setup-pstack, "configure pstack models", or changing pstack's model choices. --- diff --git a/skills/ps-show-me-your-work/SKILL.md b/skills/do-show-me-your-work/SKILL.md similarity index 99% rename from skills/ps-show-me-your-work/SKILL.md rename to skills/do-show-me-your-work/SKILL.md index 313760e..219b3d1 100644 --- a/skills/ps-show-me-your-work/SKILL.md +++ b/skills/do-show-me-your-work/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-show-me-your-work +name: do-show-me-your-work description: "Keep a reviewable decision trail for long-running or unattended work: a TSV log with one row per decision (what, why, evidence, result). Local by default; commit it when a reviewer needs the trail to trust the result. Use for /show-me-your-work, autonomous or multi-phase runs, or work a human reviews after stepping away." disable-model-invocation: true --- diff --git a/skills/ps-show-me-your-work/references/decision-log-template.tsv b/skills/do-show-me-your-work/references/decision-log-template.tsv similarity index 100% rename from skills/ps-show-me-your-work/references/decision-log-template.tsv rename to skills/do-show-me-your-work/references/decision-log-template.tsv diff --git a/skills/ps-show-me-your-work/scripts/log.sh b/skills/do-show-me-your-work/scripts/log.sh similarity index 100% rename from skills/ps-show-me-your-work/scripts/log.sh rename to skills/do-show-me-your-work/scripts/log.sh diff --git a/skills/ps-swarm/SKILL.md b/skills/do-swarm/SKILL.md similarity index 99% rename from skills/ps-swarm/SKILL.md rename to skills/do-swarm/SKILL.md index 9f611ed..528a14a 100644 --- a/skills/ps-swarm/SKILL.md +++ b/skills/do-swarm/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-swarm +name: do-swarm description: "Fan out N parallel workers, drain them, and return one report. Use for /swarm, 'swarm this', or parallel coverage, races, gauntlets, and exploration." disable-model-invocation: true --- diff --git a/skills/ps-tdd/SKILL.md b/skills/do-tdd/SKILL.md similarity index 99% rename from skills/ps-tdd/SKILL.md rename to skills/do-tdd/SKILL.md index 9cee70e..75fc5e8 100644 --- a/skills/ps-tdd/SKILL.md +++ b/skills/do-tdd/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-tdd +name: do-tdd description: "Use only when the user explicitly asks for TDD, a failing test, or a regression test, OR when the bug has an obvious cheap local test target. Skip when the test path is unclear, expensive, integration-heavy, or not requested." disable-model-invocation: true --- diff --git a/skills/ps-teach/SKILL.md b/skills/do-teach/SKILL.md similarity index 99% rename from skills/ps-teach/SKILL.md rename to skills/do-teach/SKILL.md index e700a3d..fd70f8c 100644 --- a/skills/ps-teach/SKILL.md +++ b/skills/do-teach/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-teach +name: do-teach description: "Explain a body of work plainly so a person actually understands it. Runs the `how` and `why` skills and weaves what they find into one clear explanation. Use for 'teach me this', 'help me really understand X', 'explain this change or subsystem to me'." disable-model-invocation: true --- diff --git a/skills/ps-technical-writing/SKILL.md b/skills/do-technical-writing/SKILL.md similarity index 99% rename from skills/ps-technical-writing/SKILL.md rename to skills/do-technical-writing/SKILL.md index 81b00ac..930ff60 100644 --- a/skills/ps-technical-writing/SKILL.md +++ b/skills/do-technical-writing/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-technical-writing +name: do-technical-writing description: "Layered technical-writing standard: Diátaxis structure, Google developer style sentences, STE instruction rules, Global English syntax. Use for /technical-writing or when writing or reviewing docs, RFCs, readmes, PR descriptions, or commit messages." disable-model-invocation: true --- diff --git a/skills/ps-typescript-best-practices/SKILL.md b/skills/do-typescript-best-practices/SKILL.md similarity index 98% rename from skills/ps-typescript-best-practices/SKILL.md rename to skills/do-typescript-best-practices/SKILL.md index 0fa73c7..07aa897 100644 --- a/skills/ps-typescript-best-practices/SKILL.md +++ b/skills/do-typescript-best-practices/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-typescript-best-practices +name: do-typescript-best-practices description: TypeScript best practices. Use when reading or editing any .ts or .tsx file. --- diff --git a/skills/ps-typescript-best-practices/references/patterns.md b/skills/do-typescript-best-practices/references/patterns.md similarity index 100% rename from skills/ps-typescript-best-practices/references/patterns.md rename to skills/do-typescript-best-practices/references/patterns.md diff --git a/skills/ps-unslop/SKILL.md b/skills/do-unslop/SKILL.md similarity index 99% rename from skills/ps-unslop/SKILL.md rename to skills/do-unslop/SKILL.md index e7b18b4..5e23f9c 100644 --- a/skills/ps-unslop/SKILL.md +++ b/skills/do-unslop/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-unslop +name: do-unslop description: Cut AI tells from any writing. Must always apply. --- diff --git a/skills/ps-why/SKILL.md b/skills/do-why/SKILL.md similarity index 99% rename from skills/ps-why/SKILL.md rename to skills/do-why/SKILL.md index 8b9f99e..4769c5c 100644 --- a/skills/ps-why/SKILL.md +++ b/skills/do-why/SKILL.md @@ -1,5 +1,5 @@ --- -name: ps-why +name: do-why description: "Use for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds. Discovers available MCPs and queries each evidence category (source control, issue tracker, long-form docs, real-time chat, infrastructure observability, error tracking, product analytics warehouse) in parallel, then returns a cited read on decisions and tradeoffs. Use how for runtime behavior." --- diff --git a/skills/ps-why/references/epistemics.md b/skills/do-why/references/epistemics.md similarity index 100% rename from skills/ps-why/references/epistemics.md rename to skills/do-why/references/epistemics.md diff --git a/skills/ps-why/references/investigator-prompt.md b/skills/do-why/references/investigator-prompt.md similarity index 100% rename from skills/ps-why/references/investigator-prompt.md rename to skills/do-why/references/investigator-prompt.md diff --git a/skills/ps-why/references/source-playbook.md b/skills/do-why/references/source-playbook.md similarity index 100% rename from skills/ps-why/references/source-playbook.md rename to skills/do-why/references/source-playbook.md diff --git a/skills/ps-why/references/sources/code-archaeology.md b/skills/do-why/references/sources/code-archaeology.md similarity index 100% rename from skills/ps-why/references/sources/code-archaeology.md rename to skills/do-why/references/sources/code-archaeology.md diff --git a/skills/ps-why/references/sources/databricks.md b/skills/do-why/references/sources/databricks.md similarity index 100% rename from skills/ps-why/references/sources/databricks.md rename to skills/do-why/references/sources/databricks.md diff --git a/skills/ps-why/references/sources/datadog.md b/skills/do-why/references/sources/datadog.md similarity index 100% rename from skills/ps-why/references/sources/datadog.md rename to skills/do-why/references/sources/datadog.md diff --git a/skills/ps-why/references/sources/incident-postmortem.md b/skills/do-why/references/sources/incident-postmortem.md similarity index 100% rename from skills/ps-why/references/sources/incident-postmortem.md rename to skills/do-why/references/sources/incident-postmortem.md diff --git a/skills/ps-why/references/sources/linear.md b/skills/do-why/references/sources/linear.md similarity index 100% rename from skills/ps-why/references/sources/linear.md rename to skills/do-why/references/sources/linear.md diff --git a/skills/ps-why/references/sources/notion.md b/skills/do-why/references/sources/notion.md similarity index 100% rename from skills/ps-why/references/sources/notion.md rename to skills/do-why/references/sources/notion.md diff --git a/skills/ps-why/references/sources/sentry.md b/skills/do-why/references/sources/sentry.md similarity index 100% rename from skills/ps-why/references/sources/sentry.md rename to skills/do-why/references/sources/sentry.md diff --git a/skills/ps-why/references/sources/slack.md b/skills/do-why/references/sources/slack.md similarity index 100% rename from skills/ps-why/references/sources/slack.md rename to skills/do-why/references/sources/slack.md diff --git a/skills/ps-why/references/synthesizer-prompt.md b/skills/do-why/references/synthesizer-prompt.md similarity index 100% rename from skills/ps-why/references/synthesizer-prompt.md rename to skills/do-why/references/synthesizer-prompt.md