Skip to content

Commit fc21e15

Browse files
committed
docs: restore the agent artifacts to the setup skill's templates
Brings this repo's agent artifacts back to the setup skill's seed templates. They had drifted — sections renamed and reordered, wording rephrased, and in places an older copy of the template than the skill now ships (for example `issue-tracker.md` predates the wayfinding section). Template-owned wording is restored verbatim. Anything the template has no slot for is kept: sections this repo added are carried over unchanged, and repo-specific facts inside template sections are preserved rather than reset away. `AGENTS.md` moves from a bulleted variant to the block the skill writes: one `###` sub-block per artifact, each a one-line summary and a pointer.
1 parent e164843 commit fc21e15

4 files changed

Lines changed: 41 additions & 40 deletions

File tree

‎AGENTS.md‎

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,14 @@ description, and PyPI does not rewrite relative links, so a relative one 404s on
8383

8484
## Agent skills
8585

86-
- **Issues and specs** — GitHub Issues on `modern-python/httpware`, via `gh`:
87-
[`docs/agents/issue-tracker.md`](docs/agents/issue-tracker.md)
88-
- **Triage labels** — the five canonical roles: [`docs/agents/triage-labels.md`](docs/agents/triage-labels.md)
89-
- **Domain docs** — single-context, `CONTEXT.md` + `docs/adr/`: [`docs/agents/domain.md`](docs/agents/domain.md)
86+
### Issue tracker
87+
88+
GitHub issues on `modern-python/httpware`, via `gh`. See `docs/agents/issue-tracker.md`.
89+
90+
### Triage labels
91+
92+
The five canonical roles, each label string equal to its name. See `docs/agents/triage-labels.md`.
93+
94+
### Domain docs
95+
96+
Single-context: `CONTEXT.md` and `docs/adr/` at the repo root. See `docs/agents/domain.md`.

‎docs/agents/domain.md‎

Lines changed: 15 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,38 @@
11
# Domain Docs
22

3-
How the engineering skills should consume this repo's domain documentation when exploring the
4-
codebase. This repo is **single-context**.
3+
How the engineering skills should consume this repo's domain documentation when exploring the codebase.
54

65
## Before exploring, read these
76

8-
- **`CONTEXT.md`** at the repo root: what this repo is, and the glossary.
9-
- **`docs/adr/`**: read the decision records that touch the area you're about to work in.
7+
- **`CONTEXT.md`** at the repo root.
8+
- **`docs/adr/`**: read ADRs that touch the area you're about to work in.
109

11-
If any of these files don't exist, **proceed silently**. Don't flag their absence; don't suggest
12-
creating them upfront. The `/domain-modeling` skill creates them lazily when terms or decisions
13-
actually get resolved.
10+
If any of these files don't exist, **proceed silently**. Don't flag their absence; don't suggest creating them upfront. The `/domain-modeling` skill (reached via `/grill-with-docs` and `/improve-codebase-architecture`) creates them lazily when terms or decisions actually get resolved.
1411

1512
## File structure
1613

14+
Single-context repo:
15+
1716
```
1817
/
1918
├── CONTEXT.md
2019
├── docs/adr/
21-
│ ├── 0001-….md
22-
│ └── 0002-….md
23-
├── src/httpware/
24-
└── tests/
20+
│ ├── 0001-no-opentelemetry-middleware.md
21+
│ └── 0002-sync-async-parity-is-hand-maintained.md
22+
└── src/
2523
```
2624

27-
There is no `CONTEXT-MAP.md` and no per-package `CONTEXT.md`: one package, one context. There is
28-
also no `architecture/` and no `planning/` — the present is the source, and what must stay true is
29-
a test whose docstring opens `INVARIANT:`.
30-
3125
## Use the glossary's vocabulary
3226

33-
When your output names a domain concept (in an issue title, a refactor proposal, a hypothesis, a
34-
test name), use the term as defined in `CONTEXT.md`. Don't drift to synonyms the glossary explicitly
35-
avoids: write `middleware` and not `hook`, `terminal` and not `transport`, `decoder` and not
36-
`adapter`, `cap` and not `limit`.
27+
When your output names a domain concept (in an issue title, a refactor proposal, a hypothesis, a test name), use the term as defined in `CONTEXT.md`. Don't drift to synonyms the glossary explicitly avoids.
3728

38-
If the concept you need isn't in the glossary yet, that's a signal: either you're inventing language
39-
the project doesn't use (reconsider) or there's a real gap (note it for `/domain-modeling`).
29+
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 `/domain-modeling`).
30+
31+
## Flag ADR conflicts
4032

41-
## Where a new fact goes
33+
If your output contradicts an existing ADR, surface it explicitly rather than silently overriding:
4234

43-
Run the admission check in `AGENTS.md` before writing anything down.
35+
> _Contradicts ADR-0001 (no opentelemetry middleware), but worth reopening because…_
4436
4537
## Link style inside `docs/`
4638

@@ -52,10 +44,3 @@ working in both renderings:
5244
- **Never link from a file inside `docs/` to a path outside it.** It cannot resolve in both
5345
renderings: MkDocs emits `links.not_found` and ships the link verbatim, so it 404s on the site.
5446
Cite `src/httpware/...`, `tests/...`, and root files as inline code, never as links.
55-
56-
## Flag ADR conflicts
57-
58-
If your output contradicts an existing decision record, surface it explicitly rather than silently
59-
overriding:
60-
61-
> _Contradicts ADR-NNNN (its title), but worth reopening because…_

‎docs/agents/issue-tracker.md‎

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Issue tracker: GitHub
22

3-
Issues and PRDs for this repo live as GitHub issues. Use the `gh` CLI for all operations.
3+
Issues and specs for this repo live as GitHub issues. Use the `gh` CLI for all operations.
44

55
## Conventions
66

@@ -11,7 +11,7 @@ Issues and PRDs for this repo live as GitHub issues. Use the `gh` CLI for all op
1111
- **Apply / remove labels**: `gh issue edit <number> --add-label "..."` / `--remove-label "..."`
1212
- **Close**: `gh issue close <number> --comment "..."`
1313

14-
Infer the repo from `git remote -v` — `gh` does this automatically when run inside a clone. This repo's remote is `modern-python/httpware`.
14+
Infer the repo from `git remote -v`; `gh` does this automatically when run inside a clone.
1515

1616
## Pull requests as a triage surface
1717

@@ -23,7 +23,7 @@ When set to `yes`, PRs run through the same labels and states as issues, using t
2323
- **List external PRs for triage**: `gh pr list --state open --json number,title,body,labels,author,authorAssociation,comments` then keep only `authorAssociation` of `CONTRIBUTOR`, `FIRST_TIME_CONTRIBUTOR`, or `NONE` (drop `OWNER`/`MEMBER`/`COLLABORATOR`).
2424
- **Comment / label / close**: `gh pr comment`, `gh pr edit --add-label`/`--remove-label`, `gh pr close`.
2525

26-
GitHub shares one number space across issues and PRs, so a bare `#42` may be either — resolve with `gh pr view 42` and fall back to `gh issue view 42`.
26+
GitHub shares one number space across issues and PRs, so a bare `#42` may be either: resolve with `gh pr view 42` and fall back to `gh issue view 42`.
2727

2828
## When a skill says "publish to the issue tracker"
2929

@@ -32,3 +32,14 @@ Create a GitHub issue.
3232
## When a skill says "fetch the relevant ticket"
3333

3434
Run `gh issue view <number> --comments`.
35+
36+
## Wayfinding operations
37+
38+
Used by `/wayfinder`. The **map** is a single issue with **child** issues as tickets.
39+
40+
- **Map**: a single issue labelled `wayfinder:map`, holding the Notes / Decisions-so-far / Fog body. `gh issue create --label wayfinder:map`.
41+
- **Child ticket**: an issue linked to the map as a GitHub sub-issue (`gh api` on the sub-issues endpoint). Where sub-issues aren't enabled, add the child to a task list in the map body and put `Part of #<map>` at the top of the child body. Labels: `wayfinder:<type>` (`research`/`prototype`/`grilling`/`task`). Once claimed, the ticket is assigned to the driving dev.
42+
- **Blocking**: GitHub's **native issue dependencies**, the canonical, UI-visible representation. Add an edge with `gh api --method POST repos/<owner>/<repo>/issues/<child>/dependencies/blocked_by -F issue_id=<blocker-db-id>`, where `<blocker-db-id>` is the blocker's numeric **database id** (`gh api repos/<owner>/<repo>/issues/<n> --jq .id`, _not_ the `#number` or `node_id`). GitHub reports `issue_dependencies_summary.blocked_by` (open blockers only, the live gate). Where dependencies aren't available, fall back to a `Blocked by: #<n>, #<n>` line at the top of the child body. A ticket is unblocked when every blocker is closed.
43+
- **Frontier query**: list the map's open children (`gh issue list --state open`, scoped to the map's sub-issues / task list), drop any with an open blocker (`issue_dependencies_summary.blocked_by > 0`, or an open issue in the `Blocked by` line) or an assignee; first in map order wins.
44+
- **Claim**: `gh issue edit <n> --add-assignee @me`, the session's first write.
45+
- **Resolve**: `gh issue comment <n> --body "<answer>"`, then `gh issue close <n>`, then append a context pointer (gist + link) to the map's Decisions-so-far.

‎docs/agents/triage-labels.md‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@
22

33
The skills speak in terms of five canonical triage roles. This file maps those roles to the actual label strings used in this repo's issue tracker.
44

5-
| Canonical role | Label in our tracker | Meaning |
5+
| Label in mattpocock/skills | Label in our tracker | Meaning |
66
| -------------------------- | -------------------- | ---------------------------------------- |
77
| `needs-triage` | `needs-triage` | Maintainer needs to evaluate this issue |
88
| `needs-info` | `needs-info` | Waiting on reporter for more information |
99
| `ready-for-agent` | `ready-for-agent` | Fully specified, ready for an AFK agent |
1010
| `ready-for-human` | `ready-for-human` | Requires human implementation |
1111
| `wontfix` | `wontfix` | Will not be actioned |
1212

13-
`wontfix` already exists in this repo's GitHub labels. The other four are created on first use by `/triage` (`gh label create <name>`).
14-
1513
When a skill mentions a role (e.g. "apply the AFK-ready triage label"), use the corresponding label string from this table.
1614

1715
Edit the right-hand column to match whatever vocabulary you actually use.

0 commit comments

Comments
 (0)