docs: refresh project context and fix agent docs typos

- Update .agent/project-context.md with new paths, structure, edit boundaries
- Fix typo in issue-tracker.md: tea comments -> tea comment
- Fix jq syntax: select(.state = "open") -> select(.state == "open")
- Clean up triage-labels.md table formatting
This commit is contained in:
2026-07-19 10:10:51 -04:00
parent 0daa11851d
commit fa7619bfde
3 changed files with 53 additions and 41 deletions
+37 -25
View File
@@ -1,26 +1,31 @@
# Project Context Pack # Project Context Pack
Generated: 2026-06-25 Generated: 2026-07-16
Root: /home/sjb/Documents/ai-workflows/skills Root: /home/sjb/Projects/personal/ws-sjb-skills/wt-master
Working directory: . Working directory: .
Status: fresh Status: fresh
## Purpose ## Purpose
A collection of agent skills (slash commands and behaviors) loaded into Steve Beaulac's AI coding agents. Each skill is a SKILL.md file that teaches the agent how to handle a specific task — from codebase design and TDD to Obsidian PKM workflows and forge interaction.
A collection of agent skills (slash commands and behaviors) loaded into Steve Beaulac's AI coding agents. Each skill is a SKILL.md file that teaches the agent how to handle a specific task — from codebase design and TDD to Obsidian PKM workflows and tmux agent launching.
## Project type ## Project type
- **Agent skill repository** — markdown-defined agent instructions - **Agent skill repository** — markdown-defined agent instructions
- Languages: Markdown (100%) - Languages: Markdown (100%), one Bash script (detect-agent), one shell script (tmux-open)
- Package managers: none - Package managers: none
- Build/test tools: none - Build/test tools: none
- Agent guidance: `AGENTS.md` at root, `docs/invocation.md` for invocation conventions, `docs/agents/` for issue tracker / triage labels / ADR wiki / domain docs - Agent guidance: `AGENTS.md` at root, `docs/invocation.md` for invocation conventions, `docs/agents/` for issue tracker / triage labels / ADR wiki / domain docs
## Structure ## Structure
``` ```
. .
├── AGENTS.md # Top-level agent instructions for this repo ├── AGENTS.md # Top-level agent instructions for this repo
├── README.md # Project overview, lists user-invoked and model-invoked skills ├── README.md # Project overview, lists user-invoked and model-invoked skills
├── .gitignore # Excludes docs/adr/ ├── .gitignore # Excludes docs/adr/
├── .agent/
│ └── project-context.md # This file
├── docs/ ├── docs/
│ ├── invocation.md # Model-invoked vs user-invoked definitions │ ├── invocation.md # Model-invoked vs user-invoked definitions
│ ├── agents/ │ ├── agents/
@@ -31,36 +36,39 @@ A collection of agent skills (slash commands and behaviors) loaded into Steve Be
│ └── adr/ # ADR wiki clone (gitignored) │ └── adr/ # ADR wiki clone (gitignored)
└── common/ └── common/
├── README.md # Lists all common skills by invocation type ├── README.md # Lists all common skills by invocation type
├── engineering/ # Model-invoked: forge-interaction, project-context-pack; also sub-skills for codebase-design, domain-modeling, tdd, triage, etc. ├── engineering/ # Model-invoked: lsp-code-analysis, pkm-curation; User-invoked: commit-staged, implement-issue, project-context-pack, setup-skills
├── productivity/ # User-invoked: grill-me, handoff, writing-great-skills; Model-invoked: grilling ├── productivity/ # (currently only README.md)
├── pkm/ # User-invoked: conversation-summary, crit, knowledge-gardener, research-vault ├── pkm/ # User-invoked: conversation-summary, crit, research-vault, youtube-video-capture; Model-invoked: pkm-curation
├── personal/ # User-invoked: pkm-curation; Model-invoked: forge-preferences ├── personal/ # (currently only README.md)
└── deprecated/ # Deprecated skills (audio-production-dispatcher, dsp-research-dispatcher, forge-*) ├── misc/ # User-invoked: tmux-launch-agent
├── in-progress/ # User-invoked: agent-handoff, knowledge-gardener
└── deprecated/ # Deprecated forge-* and dsp-* skills
``` ```
## Important files ## Important files
- `AGENTS.md` — Agent entry point that describes structure, categories, and references docs - `AGENTS.md` — Agent entry point that describes structure, categories, and references docs
- `README.md` — Index of all skills divided into user-invoked and model-invoked (recently updated to fix broken links, add missing skills, correct invocation classification) - `README.md` — Index of all skills divided into user-invoked and model-invoked
- `docs/invocation.md` — Defines the invocation model (disable-model-invocation frontmatter key, human vs model reachability, dependency rules) - `docs/invocation.md` — Defines the invocation model (disable-model-invocation frontmatter key, human vs model reachability, dependency rules)
- `docs/agents/` — Agent documentation for issue tracker, triage labels, ADR wiki, domain docs - `docs/agents/` — Agent documentation for issue tracker, triage labels, ADR wiki, domain docs
- `common/engineering/project-context-pack/SKILL.md` — The currently running skill - `common/engineering/project-context-pack/SKILL.md` — The skill that generated this file
- `common/engineering/codebase-design/SKILL.md` — Deep module design vocabulary (referenced by other skills) - `common/misc/tmux-launch-agent/SKILL.md` — Fork agent CLI into new tmux window (user-invoked)
- `common/engineering/domain-modeling/SKILL.md` — Domain modeling with ADRs and CONTEXT files - `common/misc/tmux-launch-agent/tmux-open` — Reusable script that opens a command in a new tmux window/session
- `common/engineering/tdd/SKILL.md` — Test-driven development discipline
- `common/productivity/grilling/SKILL.md` — Relentless plan/design interview (model-invoked, triggers)
- `common/productivity/writing-great-skills/SKILL.md` — Reference for writing/editing skills
## Commands ## Commands
- Build: none - Build: none
- Test: none - Test: none
- Lint/typecheck: none - Lint/typecheck: none
- Run/dev: skills are invoked by AI agents — no server or dev command - Run/dev: skills are invoked by AI agents — no server or dev command
## Entry points ## Entry points
- `AGENTS.md` — loaded by the AI agent as project instructions (referred to in pi's agent config) - `AGENTS.md` — loaded by the AI agent as project instructions (referred to in pi's agent config)
- Each `SKILL.md` under `common/` — referenced by agents via slash commands or auto-invocation - Each `SKILL.md` under `common/` — referenced by agents via slash commands or auto-invocation
## Search and symbol notes ## Search and symbol notes
- All skills are `SKILL.md` files — search with `fd SKILL.md` - All skills are `SKILL.md` files — search with `fd SKILL.md`
- Bucket READMEs: `fd README.md common/` - Bucket READMEs: `fd README.md common/`
- Skills are classified as **user-invoked** (`disable-model-invocation: true` in frontmatter) or **model-invoked** (default, no frontmatter flag) - Skills are classified as **user-invoked** (`disable-model-invocation: true` in frontmatter) or **model-invoked** (default, no frontmatter flag)
@@ -68,25 +76,25 @@ A collection of agent skills (slash commands and behaviors) loaded into Steve Be
- Shared reference docs live inside the owning skill's directory; other skills reach that material by invoking the skill - Shared reference docs live inside the owning skill's directory; other skills reach that material by invoking the skill
## Files inspected ## Files inspected
- `AGENTS.md` — root agent instructions — fresh - `AGENTS.md` — root agent instructions — fresh
- `README.md` — project overview — updated (all links fixed, missing skills added, invocation corrected) - `README.md` — project overview and skill index — fresh
- `docs/invocation.md` — invocation model definitions — fresh - `docs/invocation.md` — invocation model definitions — fresh
- `.gitignore` — excludes docs/adr/ — fresh - `.gitignore` — excludes docs/adr/ — fresh
- `common/engineering/README.md` — engineering bucket index — updated (all engineering skills added, misclassified skills corrected) - `common/README.md` — common bucket index — fresh
- `common/README.md` — common bucket index — updated (links fixed, missing skills added) - `common/misc/README.md` — misc bucket index — fresh
- `common/productivity/README.md` — productivity bucket index — fresh (was already correct) - `.agent/project-context.md` — this file (refreshed from stale 2026-06-25 version)
- `common/pkm/README.md` — pkm bucket index — updated (pkm-curation added)
- `common/personal/README.md` — personal bucket index — updated (noted both skills moved elsewhere)
- `common/deprecated/README.md` — deprecated bucket index — updated (all forge skills added)
- All `SKILL.md` files — frontmatter checked for invocation status
## Exclusions ## Exclusions
- `.git/` — VCS data - `.git/` — VCS data
- `docs/adr/` — gitignored ADR wiki clone - `docs/adr/` — gitignored ADR wiki clone
- `node_modules/`, `dist/`, `build/`, `target/`, `.venv/`, `__pycache__/`, `vendor/`, `coverage/` — not present, but excluded by policy - `node_modules/`, `dist/`, `build/`, `target/`, `.venv/`, `__pycache__/`, `vendor/`, `coverage/` — not present, but excluded by policy
- `/home/sjb/.agents/skills/` — global install, NOT the source of truth for this repo
- Binary files, large artifacts, credentials, secrets, personal data - Binary files, large artifacts, credentials, secrets, personal data
## Navigation rules for future agents ## Navigation rules for future agents
- Start with `fd SKILL.md` to find all skills, then narrow by `fd SKILL.md common/<category>/` - Start with `fd SKILL.md` to find all skills, then narrow by `fd SKILL.md common/<category>/`
- To understand a skill's purpose, read its `SKILL.md` and the bucket `README.md` that indexes it - To understand a skill's purpose, read its `SKILL.md` and the bucket `README.md` that indexes it
- For invocation rules (user-invoked vs model-invoked), read `docs/invocation.md` - For invocation rules (user-invoked vs model-invoked), read `docs/invocation.md`
@@ -95,9 +103,13 @@ A collection of agent skills (slash commands and behaviors) loaded into Steve Be
- Track every inspected file in this cache - Track every inspected file in this cache
- Re-read a file only when it changed, the cache is stale, or exact details are needed - Re-read a file only when it changed, the cache is stale, or exact details are needed
## Edit boundaries
When cwd is inside this repo, all file edits MUST be scoped to paths under the repo root (`/home/sjb/Projects/personal/ws-sjb-skills/wt-master`). Do NOT touch files under `/home/sjb/.agents/skills/` or `/home/sjb/.pi/` — those are the installed/runtime copies, not the source of truth. The global install is synced separately; this repo is where source edits happen.
## Refresh notes ## Refresh notes
- This is a markdown-only repo with no build artifacts; refreshes are rarely needed unless skills are added or removed - This is a markdown-only repo with no build artifacts; refreshes are rarely needed unless skills are added or removed
- To refresh, re-run `tree -a -I '.git' -L 4` and re-read any changed bucket READMEs or SKILL.md files - To refresh, re-run `tree -a -I '.git' -L 4` and re-read any changed bucket READMEs or SKILL.md files
- The `docs/adr/` directory is gitignored — if ADR data is needed, check the Gitea wiki directly - The `docs/adr/` directory is gitignored — if ADR data is needed, check the Gitea wiki directly
- All README.md files were updated on 2026-06-25 to fix broken links, add missing skills, and correct invocation classification
- If a skill is moved between buckets, update all README.md files that reference it (root, common, source bucket, destination bucket) - If a skill is moved between buckets, update all README.md files that reference it (root, common, source bucket, destination bucket)
+5 -5
View File
@@ -15,12 +15,12 @@ Infer the repo from git remote -v — `tea` does this automatically when run ins
## Pull requests as a triage surface ## Pull requests as a triage surface
**PRs as a request surface: no.** **PRs as a request surface: no.** _(Set to `yes` if this repo treats external PRs as feature requests; `/triage` reads this flag.)_
When set to `yes`, PRs run through the same labels and states as issues, using the `tea pr` equivalents: When set to `yes`, PRs run through the same labels and states as issues, using the `tea pr` equivalents:
- **Read a PR**: `tea pr <number> --comments` and `tea api /repos/{owner}/{repo}/pulls/<number>.diff` for the diff. - **Read a PR**: `tea pr <number> --comments` and `tea api /repos/{owner}/{repo}/pulls/<number>.diff` for the diff.
- **List external PRs for triage**: `tea pr list --state open -o json` then keep only PRs whose author is not a project member/owner. - **List external PRs for triage**: `tea pr list --state open -o json` then keep only PRs whose author is not a project member/owner (a contributor's MR, not a maintainer's in-flight work).
- **Comment / label / close**: `tea comment <number> "..."`, `tea pr edit --add-label`/`--remove-label`, `tea pr close`. - **Comment / label / close**: `tea comment <number> "..."`, `tea pr edit --add-label`/`--remove-label`, `tea pr close`.
Gitea shares one number space across issues and PRs, so a bare `#42` may be either — resolve with `tea pr 42` and fall back to `tea issue 42`. Gitea shares one number space across issues and PRs, so a bare `#42` may be either — resolve with `tea pr 42` and fall back to `tea issue 42`.
@@ -39,7 +39,7 @@ Used by `/wayfinder`. The **map** is a single issue with **child** issues as tic
- **Map**: a single issue labelled `wayfinder:map`, holding the Notes / Decisions-so-far / Fog body. `tea issue create --label wayfinder:map`. - **Map**: a single issue labelled `wayfinder:map`, holding the Notes / Decisions-so-far / Fog body. `tea issue create --label wayfinder:map`.
- **Child ticket**: an issue linked to the map as a GitHub sub-issue (`tea 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. - **Child ticket**: an issue linked to the map as a GitHub sub-issue (`tea 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.
- **Blocking**: GitHub's **native issue dependencies** — the canonical, UI-visible representation. Add an edge with `tea api --method POST /repos/{owner}/{repo}/issues/<child>/dependencies -F index=<blocker-issue-number> -F repo=<blocker-repo-name> -F owner=<bocker-owner-name>`, where `<blocker-usse-number>` is the blocker's numeric **issue number** (`tea api repos/{owner}/{repo}/issues/<n> --jq ".number. .repository.name, .repository.owner"`, where `.number` is the `<blocker-issue-number>`, `.repository.name` is the `<blocker-repo-name>` and `.repository.owner` is the `<blocker-repo-owner>`. 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. - **Blocking**: GitHub's **native issue dependencies** — the canonical, UI-visible representation. Add an edge with `tea api --method POST /repos/{owner}/{repo}/issues/<child>/dependencies -F index=<blocker-issue-number> -F repo=<blocker-repo-name> -F owner=<bocker-owner-name>`, where `<blocker-issue-number>` is the blocker's numeric **issue number** (`tea api repos/{owner}/{repo}/issues/<n> --jq ".number. .repository.name, .repository.owner"`, where `.number` is the `<blocker-issue-number>`, `.repository.name` is the `<blocker-repo-name>` and `.repository.owner` is the `<blocker-repo-owner>`. 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.
- **Frontier query**: list the map's open dependencies (`tea api /repos/{owner}/{repo}/issues/<n>/dependencies | jq '.[] | select(.state = "open") .number'`, scoped to the map's sub-issues / task list), drop any with an open blocker (`list of dependencies is not empty`, or an open issue in the `Blocked by` line) or an assignee; first in map order wins. - **Frontier query**: list the map's open dependencies (`tea api /repos/{owner}/{repo}/issues/<n>/dependencies | jq '.[] | select(.state == "open") | .number'`, scoped to the map's sub-issues / task list), drop any with an open blocker (`list of dependencies is not empty`, or an open issue in the `Blocked by` line) or an assignee; first in map order wins.
- **Claim**: `tea issue edit <n> --add-assignees @me` — the session's first write. - **Claim**: `tea issue edit <n> --add-assignees @me` — the session's first write.
- **Resolve**: `tea comments <n> "<answer>"`, then `tea issue close <n>`, then append a context pointer (gist + link) to the map's Decisions-so-far. - **Resolve**: `tea comment <n> "<answer>"`, then `tea issue close <n>`, then append a context pointer (gist + link) to the map's Decisions-so-far.
+2 -2
View File
@@ -3,10 +3,10 @@
The skills speak in terms of seven canonical triage roles. This file maps those roles to the actual label strings used in this repo's issue tracker. The skills speak in terms of seven canonical triage roles. This file maps those roles to the actual label strings used in this repo's issue tracker.
| Label in skills | Label in our tracker | Meaning | | Label in skills | Label in our tracker | Meaning |
| -------------------------- | -------------------- | ---------------------------------------- | | ----------------- | -------------------- | ---------------------------------------- |
| `needs-triage` | `needs-triage` | Maintainer needs to evaluate this issue | | `needs-triage` | `needs-triage` | Maintainer needs to evaluate this issue |
| `needs-info` | `needs-info` | Waiting on reporter for more information | | `needs-info` | `needs-info` | Waiting on reporter for more information |
| `needs-review` | `needs-review` | Waiting for reviewed by a human | | `needs-review` | `needs-review` | Waiting for review by a human |
| `ready-for-agent` | `ready-for-agent` | Fully specified, ready for an AFK agent | | `ready-for-agent` | `ready-for-agent` | Fully specified, ready for an AFK agent |
| `ready-for-human` | `ready-for-human` | Requires human implementation | | `ready-for-human` | `ready-for-human` | Requires human implementation |
| `in-progress` | `in-progress` | Being actively worked on by a human or agents | | `in-progress` | `in-progress` | Being actively worked on by a human or agents |