Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .idea/AICommit.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion skills/diagnose/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ metadata:

A discipline for hard bugs. Skip phases only when explicitly justified.

When exploring the codebase, use the project's domain glossary to get a clear mental model of the relevant modules, and check ADRs in the area you're touching.
When exploring the codebase, use the project's domain glossary to get a clear mental model of the relevant modules, and check OpenSpec specs and ADRs in the area you're touching.

## Phase 1 — Build a feedback loop

Expand Down
2 changes: 2 additions & 0 deletions skills/grill-with-docs/ADR-FORMAT.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

ADRs live in `docs/adr/` and use sequential numbering: `0001-slug.md`, `0002-slug.md`, etc.

**Note**: For feature requirements and specifications, this project primarily uses **OpenSpec specs** in `openspec/specs/`. Use ADRs for cross-cutting architectural decisions or recording rejected alternatives that don't fit into a specific feature spec.

Create the `docs/adr/` directory lazily — only when the first ADR is needed.

## Template
Expand Down
4 changes: 2 additions & 2 deletions skills/grill-with-docs/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: grill-with-docs
description: Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.
description: Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, OpenSpec specs, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.
metadata:
internal: true
---
Expand Down Expand Up @@ -48,7 +48,7 @@ metadata:
│ └── docs/adr/
```

Create files lazily — only when you have something to write. If no `CONTEXT.md` exists, create one when the first term is resolved. If no `docs/adr/` exists, create it when the first ADR is needed.
Create files lazily — only when you have something to write. If no `CONTEXT.md` exists, create one when the first term is resolved. If no `openspec/specs/` or `docs/adr/` exists, create it when the first spec or ADR is needed.

## During the session

Expand Down
10 changes: 5 additions & 5 deletions skills/improve-codebase-architecture/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: improve-codebase-architecture
description: Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.
description: Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md, feature requirements in openspec/specs/, and decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.
metadata:
internal: true
---
Expand Down Expand Up @@ -28,13 +28,13 @@ Key principles (see [LANGUAGE.md](LANGUAGE.md) for the full list):
- **The interface is the test surface.**
- **One adapter = hypothetical seam. Two adapters = real seam.**

This skill is *informed* by the project's domain model. The domain language gives names to good seams; ADRs record decisions the skill should not re-litigate.
This skill is *informed* by the project's domain model. The domain language gives names to good seams; OpenSpec specs and ADRs record requirements and decisions the skill should not re-litigate.

## Process

### 1. Explore

Read the project's domain glossary and any ADRs in the area you're touching first.
Read the project's domain glossary, relevant OpenSpec specs, and any ADRs in the area you're touching first.

Then use the Agent tool with `subagent_type=Explore` to walk the codebase. Don't follow rigid heuristics — explore organically and note where you experience friction:

Expand All @@ -57,7 +57,7 @@ Present a numbered list of deepening opportunities. For each candidate:

**Use CONTEXT.md vocabulary for the domain, and [LANGUAGE.md](LANGUAGE.md) vocabulary for the architecture.** If `CONTEXT.md` defines "Order," talk about "the Order intake module" — not "the FooBarHandler," and not "the Order service."

**ADR conflicts**: if a candidate contradicts an existing ADR, only surface it when the friction is real enough to warrant revisiting the ADR. Mark it clearly (e.g. *"contradicts ADR-0007 — but worth reopening because…"*). Don't list every theoretical refactor an ADR forbids.
**Spec or ADR conflicts**: if a candidate contradicts an existing OpenSpec spec or ADR, only surface it when the friction is real enough to warrant revisiting it. Mark it clearly (e.g. *"contradicts ADR-0007 — but worth reopening because…"*). Don't list every theoretical refactor an ADR or spec forbids.

Do NOT propose interfaces yet. Ask the user: "Which of these would you like to explore?"

Expand All @@ -69,5 +69,5 @@ Side effects happen inline as decisions crystallize:

- **Naming a deepened module after a concept not in `CONTEXT.md`?** Add the term to `CONTEXT.md` — same discipline as `/grill-with-docs` (see [CONTEXT-FORMAT.md](../grill-with-docs/CONTEXT-FORMAT.md)). Create the file lazily if it doesn't exist.
- **Sharpening a fuzzy term during the conversation?** Update `CONTEXT.md` right there.
- **User rejects the candidate with a load-bearing reason?** Offer an ADR, framed as: *"Want me to record this as an ADR so future architecture reviews don't re-suggest it?"* Only offer when the reason would actually be needed by a future explorer to avoid re-suggesting the same thing — skip ephemeral reasons ("not worth it right now") and self-evident ones. See [ADR-FORMAT.md](../grill-with-docs/ADR-FORMAT.md).
- **User rejects the candidate with a load-bearing reason?** Offer an ADR (for architectural decisions) or an OpenSpec spec update (for feature requirements), framed as: *"Want me to record this as an ADR so future architecture reviews don't re-suggest it?"* Only offer when the reason would actually be needed by a future explorer to avoid re-suggesting the same thing — skip ephemeral reasons ("not worth it right now") and self-evident ones. See [ADR-FORMAT.md](../grill-with-docs/ADR-FORMAT.md).
- **Want to explore alternative interfaces for the deepened module?** See [INTERFACE-DESIGN.md](INTERFACE-DESIGN.md).
9 changes: 5 additions & 4 deletions skills/setup-matt-pocock-skills/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Scaffold the per-repo configuration that the engineering skills assume:

- **Issue tracker** — where issues live (GitHub by default; local markdown is also supported out of the box)
- **Triage labels** — the strings used for the five canonical triage roles
- **Domain docs** — where `CONTEXT.md` and ADRs live, and the consumer rules for reading them
- **Domain docs** — where `CONTEXT.md`, OpenSpec specs, and ADRs live, and the consumer rules for reading them

This is a prompt-driven skill, not a deterministic script. Explore, present what you found, confirm with the user, then write.

Expand All @@ -25,6 +25,7 @@ Look at the current repo to understand its starting state. Read whatever exists;
- `git remote -v` and `.git/config` — is this a GitHub repo? Which one?
- `AGENTS.md` and `CLAUDE.md` at the repo root — does either exist? Is there already an `## Agent skills` section in either?
- `CONTEXT.md` and `CONTEXT-MAP.md` at the repo root
- `openspec/specs/` directory
- `docs/adr/` and any `src/*/docs/adr/` directories
- `.agent/docs/` — does this skill's prior output already exist?
- `.scratch/` — sign that a local-markdown issue tracker convention is already in use
Expand Down Expand Up @@ -62,11 +63,11 @@ Default: each role's string equals its name. Ask the user if they want to overri

**Section C — Domain docs.**

> Explainer: Some skills (`improve-codebase-architecture`, `diagnose`, `tdd`) read a `CONTEXT.md` file to learn the project's domain language, and `docs/adr/` for past architectural decisions. They need to know whether the repo has one global context or multiple (e.g. a monorepo with separate frontend/backend contexts) so they look in the right place.
> Explainer: Some skills (`improve-codebase-architecture`, `diagnose`, `tdd`) read a `CONTEXT.md` file to learn the project's domain language, `openspec/specs/` for feature requirements, and `docs/adr/` for past architectural decisions. They need to know whether the repo has one global context or multiple (e.g. a monorepo with separate frontend/backend contexts) so they look in the right place.

Confirm the layout:

- **Single-context** — one `CONTEXT.md` + `docs/adr/` at the repo root. Most repos are this.
- **Single-context** — one `CONTEXT.md` + `openspec/specs/` + `docs/adr/` at the repo root. Most repos are this.
- **Multi-context** — `CONTEXT-MAP.md` at the root pointing to per-context `CONTEXT.md` files (typically a monorepo).

### 3. Confirm and edit
Expand Down Expand Up @@ -114,7 +115,7 @@ Then write the three docs files using the seed templates in this skill folder as
- [issue-tracker-gitlab.md](./issue-tracker-gitlab.md) — GitLab issue tracker
- [issue-tracker-local.md](./issue-tracker-local.md) — local-markdown issue tracker
- [triage-labels.md](./triage-labels.md) — label mapping
- [domain.md](./domain.md) — domain doc consumer rules + layout
- [domain.md](./domain.md) — domain doc consumer rules + layout (including OpenSpec specs and ADRs)

For "other" issue trackers, write `.agent/docs/issue-tracker.md` from scratch using the user's description.

Expand Down
7 changes: 5 additions & 2 deletions skills/setup-matt-pocock-skills/domain.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ How the engineering skills should consume this repo's domain documentation when

- **`CONTEXT.md`** at the repo root, or
- **`CONTEXT-MAP.md`** at the repo root if it exists — it points at one `CONTEXT.md` per context. Read each one relevant to the topic.
- **`openspec/specs/`** — read the specs for the features you're touching. These are the primary source of truth for requirements and behavior.
- **`docs/adr/`** — read ADRs that touch the area you're about to work in. In multi-context repos, also check `src/<context>/docs/adr/` for context-scoped decisions.

If any of these files don't exist, **proceed silently**. Don't flag their absence; don't suggest creating them upfront. The producer skill (`/grill-with-docs`) creates them lazily when terms or decisions actually get resolved.
Expand All @@ -17,6 +18,7 @@ Single-context repo (most repos):
```text
/
├── CONTEXT.md
├── openspec/specs/ ← feature specifications
├── docs/adr/
│ ├── 0001-event-sourced-orders.md
│ └── 0002-postgres-for-write-model.md
Expand Down Expand Up @@ -44,8 +46,9 @@ When your output names a domain concept (in an issue title, a refactor proposal,

If the concept you need isn't in the glossary yet, that's a signal — either you're inventing language the project doesn't use (reconsider) or there's a real gap (note it for `/grill-with-docs`).

## Flag ADR conflicts
## Flag Spec or ADR conflicts

If your output contradicts an existing ADR, surface it explicitly rather than silently overriding:
If your output contradicts an existing OpenSpec spec or ADR, surface it explicitly rather than silently overriding:

> *Contradicts openspec/specs/coercion (Scenario: Boolean coercion) — but worth revisiting because…*
> *Contradicts ADR-0007 (event-sourced orders) — but worth reopening because…*
2 changes: 1 addition & 1 deletion skills/tdd/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ RIGHT (vertical):

### 1. Planning

When exploring the codebase, use the project's domain glossary so that test names and interface vocabulary match the project's language, and respect ADRs in the area you're touching.
When exploring the codebase, use the project's domain glossary so that test names and interface vocabulary match the project's language, and respect OpenSpec specs and ADRs in the area you're touching.

Before writing any code:

Expand Down
2 changes: 1 addition & 1 deletion skills/to-prd/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ The issue tracker and triage label vocabulary should have been provided to you

## Process

1. Explore the repo to understand the current state of the codebase, if you haven't already. Use the project's domain glossary vocabulary throughout the PRD, and respect any ADRs in the area you're touching.
1. Explore the repo to understand the current state of the codebase, if you haven't already. Use the project's domain glossary vocabulary throughout the PRD, and respect any OpenSpec specs and ADRs in the area you're touching.

2. Sketch out the major modules you will need to build or modify to complete the implementation. Actively look for opportunities to extract deep modules that can be tested in isolation.

Expand Down
2 changes: 1 addition & 1 deletion skills/triage/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ Show counts and a one-line summary per issue. Let the maintainer pick.

## Triage a specific issue

1. **Gather context.** Read the full issue (body, comments, labels, reporter, dates). Parse any prior triage notes so you don't re-ask resolved questions. Explore the codebase using the project's domain glossary, respecting ADRs in the area. Read `.out-of-scope/*.md` and surface any prior rejection that resembles this issue.
1. **Gather context.** Read the full issue (body, comments, labels, reporter, dates). Parse any prior triage notes so you don't re-ask resolved questions. Explore the codebase using the project's domain glossary, respecting OpenSpec specs and ADRs in the area. Read `.out-of-scope/*.md` and surface any prior rejection that resembles this issue.

2. **Recommend.** Tell the maintainer your category and state recommendation with reasoning, plus a brief codebase summary relevant to the issue. Wait for direction.

Expand Down
Loading