mirror of
https://github.com/prdlk/dotfiles.git
synced 2026-11-02 11:32:42 +00:00
chs: re-add drifted files
This commit is contained in:
1 parent
fbbaf2897d
commit
fc4837392a
16 files changed
+81
-48
No files matched your search
@@ -275,36 +275,36 @@
|
||||
"sourceType": "github",
|
||||
"sourceUrl": "https://github.com/mattpocock/skills.git",
|
||||
"skillPath": "skills/productivity/grill-me/SKILL.md",
|
||||
"skillFolderHash": "c817f6f36acd483294144694a935a76d3e3eb101",
|
||||
"skillFolderHash": "3df14e2d3a89459bf300614be9247e3ce74798f8",
|
||||
"installedAt": "2026-05-11T17:38:14.403Z",
|
||||
"updatedAt": "2026-08-11T19:45:02.711Z"
|
||||
"updatedAt": "2026-08-16T19:29:30.954Z"
|
||||
},
|
||||
"grill-with-docs": {
|
||||
"source": "mattpocock/skills",
|
||||
"sourceType": "github",
|
||||
"sourceUrl": "https://github.com/mattpocock/skills.git",
|
||||
"skillPath": "skills/engineering/grill-with-docs/SKILL.md",
|
||||
"skillFolderHash": "5fdcdeedf2d0c73b3ecb1da0a464dd885590f8d6",
|
||||
"skillFolderHash": "eedaf2562c83155115e9c649fa3ecaac2e10e81d",
|
||||
"installedAt": "2026-05-11T17:38:14.403Z",
|
||||
"updatedAt": "2026-08-11T19:45:03.213Z"
|
||||
"updatedAt": "2026-08-16T19:29:31.536Z"
|
||||
},
|
||||
"handoff": {
|
||||
"source": "mattpocock/skills",
|
||||
"sourceType": "github",
|
||||
"sourceUrl": "https://github.com/mattpocock/skills.git",
|
||||
"skillPath": "skills/productivity/handoff/SKILL.md",
|
||||
"skillFolderHash": "184d485ae68a2132893a94239b2b85d253e6152b",
|
||||
"skillFolderHash": "2242e8f05424b8c2ae94194a90d97b88d16108ec",
|
||||
"installedAt": "2026-05-11T17:38:14.404Z",
|
||||
"updatedAt": "2026-08-11T19:45:03.725Z"
|
||||
"updatedAt": "2026-08-16T19:29:31.964Z"
|
||||
},
|
||||
"improve-codebase-architecture": {
|
||||
"source": "mattpocock/skills",
|
||||
"sourceType": "github",
|
||||
"sourceUrl": "https://github.com/mattpocock/skills.git",
|
||||
"skillPath": "skills/engineering/improve-codebase-architecture/SKILL.md",
|
||||
"skillFolderHash": "6a971d1f5b109ac817e18c0f0419c2a32d60f26a",
|
||||
"skillFolderHash": "db546af0f3419a8bd261a83708d4cb33d2a915cd",
|
||||
"installedAt": "2026-05-11T17:38:14.404Z",
|
||||
"updatedAt": "2026-08-11T19:45:04.210Z"
|
||||
"updatedAt": "2026-08-16T19:29:32.588Z"
|
||||
},
|
||||
"prototype": {
|
||||
"source": "mattpocock/skills",
|
||||
@@ -329,18 +329,18 @@
|
||||
"sourceType": "github",
|
||||
"sourceUrl": "https://github.com/mattpocock/skills.git",
|
||||
"skillPath": "skills/engineering/tdd/SKILL.md",
|
||||
"skillFolderHash": "423f3cc2bccf3b0ed426fb35eeb4b38d9188a343",
|
||||
"skillFolderHash": "8c098cfbaf956292d413d1140f5ee68f70dcc9ee",
|
||||
"installedAt": "2026-05-11T17:38:14.405Z",
|
||||
"updatedAt": "2026-08-11T19:45:06.040Z"
|
||||
"updatedAt": "2026-08-16T19:29:33.104Z"
|
||||
},
|
||||
"triage": {
|
||||
"source": "mattpocock/skills",
|
||||
"sourceType": "github",
|
||||
"sourceUrl": "https://github.com/mattpocock/skills.git",
|
||||
"skillPath": "skills/engineering/triage/SKILL.md",
|
||||
"skillFolderHash": "b20940845332f540e3f17b0cb32d45fd8c2298bf",
|
||||
"skillFolderHash": "6e908c1423a1b409e85066a6efbbbbc63b063e2b",
|
||||
"installedAt": "2026-05-11T17:38:14.406Z",
|
||||
"updatedAt": "2026-08-11T19:45:06.505Z"
|
||||
"updatedAt": "2026-08-16T19:29:33.706Z"
|
||||
},
|
||||
"remix": {
|
||||
"source": "remix-run/remix",
|
||||
@@ -491,9 +491,9 @@
|
||||
"sourceType": "github",
|
||||
"sourceUrl": "https://github.com/mattpocock/skills.git",
|
||||
"skillPath": "skills/engineering/diagnosing-bugs/SKILL.md",
|
||||
"skillFolderHash": "463c81def888fefa77b894837d301d9ed70e0994",
|
||||
"skillFolderHash": "8599c0f6e2bfce70b85973d3be6707426bc8e83f",
|
||||
"installedAt": "2026-06-27T19:37:25.603Z",
|
||||
"updatedAt": "2026-08-11T19:45:07.440Z"
|
||||
"updatedAt": "2026-08-16T19:29:34.352Z"
|
||||
},
|
||||
"domain-modeling": {
|
||||
"source": "mattpocock/skills",
|
||||
@@ -509,9 +509,9 @@
|
||||
"sourceType": "github",
|
||||
"sourceUrl": "https://github.com/mattpocock/skills.git",
|
||||
"skillPath": "skills/productivity/grilling/SKILL.md",
|
||||
"skillFolderHash": "fd99bcbb818f7ef766b83656fb5fac0b58e223ad",
|
||||
"skillFolderHash": "0d40d978f1a588971a11ea7ae85b208e78102dc3",
|
||||
"installedAt": "2026-06-27T19:37:25.605Z",
|
||||
"updatedAt": "2026-08-11T19:45:08.290Z"
|
||||
"updatedAt": "2026-08-16T19:29:34.786Z"
|
||||
},
|
||||
"teach": {
|
||||
"source": "mattpocock/skills",
|
||||
|
||||
@@ -127,7 +127,7 @@ If a correct seam exists:
|
||||
4. Watch it pass.
|
||||
5. Re-run the Phase 1 feedback loop against the original (un-minimised) scenario.
|
||||
|
||||
## Phase 6 — Cleanup + post-mortem
|
||||
## Phase 6 — Cleanup
|
||||
|
||||
Required before declaring done:
|
||||
|
||||
@@ -136,5 +136,3 @@ Required before declaring done:
|
||||
- [ ] All `[DEBUG-...]` instrumentation removed (`grep` the prefix)
|
||||
- [ ] Throwaway prototypes deleted (or moved to a clearly-marked debug location)
|
||||
- [ ] The hypothesis that turned out correct is stated in the commit / PR message — so the next debugger learns
|
||||
|
||||
**Then ask: what would have prevented this bug?** If the answer involves architectural change (no good test seam, tangled callers, hidden coupling) hand off to the `/improve-codebase-architecture` skill with the specifics. Make the recommendation **after** the fix is in, not before — you have more information now than when you started.
|
||||
@@ -4,4 +4,4 @@ description: A relentless interview to sharpen a plan or design.
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
Run a `/grilling` session.
|
||||
Call the Skill tool with "grilling".
|
||||
@@ -4,4 +4,4 @@ description: A relentless interview to sharpen a plan or design, which also crea
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
Run a `/grilling` session, using the `/domain-modeling` skill.
|
||||
Call the Skill tool twice, for "grilling" and "domain-modeling".
|
||||
@@ -5,7 +5,7 @@ description: Grill the user relentlessly about a plan, decision, or idea. Use wh
|
||||
|
||||
Interview the user relentlessly until you reach a shared understanding. Map this as a **design tree**: every decision branches into the decisions that hang off it.
|
||||
|
||||
Work the tree in **rounds**. The **frontier** is every decision whose prerequisites are already settled — the questions you can ask _now_ without guessing at answers you haven't heard yet. Ask the whole frontier in one round: number each question and give your recommended answer. Then wait for the user's answers before the next round.
|
||||
Work the tree in **rounds**. The **frontier** is every decision whose prerequisites are already settled: the questions you can ask _now_ without guessing at answers you haven't heard yet. Ask the whole frontier in one round: number each question and give your recommended answer. Then wait for the user's answers before the next round.
|
||||
|
||||
Each question should be formatted like so:
|
||||
|
||||
@@ -15,8 +15,8 @@ Each question should be formatted like so:
|
||||
➡️ <your recommended answer>
|
||||
```
|
||||
|
||||
Each round the user answers reshapes the tree — settled decisions push the frontier outward and unblock questions that depended on them. Recompute the frontier and ask the next round. A question whose answer depends on another question still open in this round belongs to a _later_ round, not this one.
|
||||
Each round the user answers reshapes the tree: settled decisions push the frontier outward and unblock questions that depended on them. Recompute the frontier and ask the next round. A question whose answer depends on another question still open in this round belongs to a _later_ round, not this one.
|
||||
|
||||
Finding _facts_ is your job, never the user's. When a frontier question needs a fact from the environment (filesystem, tools, etc.), dispatch a sub-agent to find it — don't ask the user for anything you could look up yourself. Don't block on it: a running exploration is an unsettled prerequisite, so only the questions downstream of it wait for the sub-agent to report — ask the rest of the frontier now. The _decisions_ are the user's — put each to them and wait.
|
||||
Finding _facts_ is your job, never the user's. When a frontier question needs a fact from the environment (filesystem, tools, etc.), dispatch a sub-agent to find it; don't ask the user for anything you could look up yourself. Don't block on it: a running exploration is an unsettled prerequisite, so only the questions downstream of it wait for the sub-agent to report; ask the rest of the frontier now. The _decisions_ are the user's: put each to them and wait.
|
||||
|
||||
The session is done when the frontier is empty: every branch of the design tree visited, nothing left silently assumed. Do not act on it until the user confirms you have reached a shared understanding.
|
||||
@@ -7,7 +7,7 @@ disable-model-invocation: true
|
||||
|
||||
Write a handoff document summarising the current conversation so a fresh agent can continue the work. Save to the temporary directory of the user's OS - not the current workspace.
|
||||
|
||||
Include a "suggested skills" section in the document, which suggests skills that the agent should invoke.
|
||||
Include a "suggested skills" section in the document, naming which skills the next agent should call the Skill tool for.
|
||||
|
||||
Do not duplicate content already captured in other artifacts (specs, plans, ADRs, issues, commits, diffs). Reference them by path or URL instead.
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Surface architectural friction and propose **deepening opportunities** — refac
|
||||
|
||||
This command is _informed_ by the project's domain model and built on a shared design vocabulary:
|
||||
|
||||
- Run the `/codebase-design` skill for the architecture vocabulary (**module**, **interface**, **depth**, **seam**, **adapter**, **leverage**, **locality**) and its principles (the deletion test, "the interface is the test surface", "one adapter = hypothetical seam, two = real"). Use these terms exactly in every suggestion — don't drift into "component," "service," "API," or "boundary."
|
||||
- Call the Skill tool with "codebase-design" for the architecture vocabulary (**module**, **interface**, **depth**, **seam**, **adapter**, **leverage**, **locality**) and its principles (the deletion test, "the interface is the test surface", "one adapter = hypothetical seam, two = real"). Use these terms exactly in every suggestion — don't drift into "component," "service," "API," or "boundary."
|
||||
- The domain language in `CONTEXT.md` gives names to good seams; ADRs in `docs/adr/` record decisions this command should not re-litigate.
|
||||
|
||||
## Process
|
||||
@@ -61,11 +61,11 @@ Do NOT propose interfaces yet. After the file is written, ask the user: "Which o
|
||||
|
||||
### 3. Grilling loop
|
||||
|
||||
Once the user picks a candidate, run the `/grilling` skill to walk the decision tree with them — constraints, dependencies, the shape of the deepened module, what sits behind the seam, what tests survive.
|
||||
Once the user picks a candidate, call the Skill tool with "grilling" to walk the decision tree with them — constraints, dependencies, the shape of the deepened module, what sits behind the seam, what tests survive.
|
||||
|
||||
Side effects happen inline as decisions crystallize — run the `/domain-modeling` skill to keep the domain model current as you go:
|
||||
Side effects happen inline as decisions crystallize — call the Skill tool with "domain-modeling" to keep the domain model current as you go:
|
||||
|
||||
- **Naming a deepened module after a concept not in `CONTEXT.md`?** Add the term to `CONTEXT.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.
|
||||
- **Want to explore alternative interfaces for the deepened module?** Run the `/codebase-design` skill and use its design-it-twice parallel sub-agent pattern.
|
||||
- **Want to explore alternative interfaces for the deepened module?** Call the Skill tool with "codebase-design" and use its design-it-twice parallel sub-agent pattern.
|
||||
@@ -23,7 +23,7 @@ A **seam** is the public boundary you test at: the interface where you observe b
|
||||
|
||||
Ask: "What's the public interface, and which seams should we test?"
|
||||
|
||||
When the shape of that interface is itself in question — how deep the module is, where the seam belongs, what the interface should expose — use the `/codebase-design` skill for the vocabulary. It is the shared source of the module, interface, depth, seam, adapter, leverage and locality terms, and it is a reference to consult, not a session to run.
|
||||
When the shape of that interface is itself in question — how deep the module is, where the seam belongs, what the interface should expose — call the Skill tool with "codebase-design" for the vocabulary. It is the shared source of the module, interface, depth, seam, adapter, leverage and locality terms, and it is a reference to consult, not a session to run.
|
||||
|
||||
## Anti-patterns
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ For a PR, the same states read against the attached code: `ready-for-agent` mean
|
||||
|
||||
Every triaged issue should carry exactly one category role and one state role. If state roles conflict, flag it and ask the maintainer before doing anything else.
|
||||
|
||||
These are canonical role names — the actual label strings used in the issue tracker may differ. The mapping should have been provided to you - run `/setup-matt-pocock-skills` if not.
|
||||
These are canonical role names — the actual label strings used in the issue tracker may differ. The mapping should have been provided to you. If not, tell the user to run `/setup-matt-pocock-skills`.
|
||||
|
||||
State transitions: an unlabeled issue normally goes to `needs-triage` first; from there it moves to `needs-info`, `ready-for-agent`, `ready-for-human`, or `wontfix`. `needs-info` returns to `needs-triage` once the reporter replies. The maintainer can override at any time — flag transitions that look unusual and ask before proceeding.
|
||||
|
||||
@@ -73,7 +73,7 @@ Show counts and a one-line summary per item. Let the maintainer pick.
|
||||
|
||||
3. **Verify the claim.** Before any grilling, check that the claim holds up. For a bug, reproduce it from the reporter's steps. For a PR, confirm the diff does what it claims — check it out, run the relevant tests or commands. Report what happened: confirmed (with code path), failed, or insufficient detail (a strong `needs-info` signal). A confirmed verification makes a much stronger agent brief.
|
||||
|
||||
4. **Grill (if needed).** If the request needs fleshing out, run the `/grilling` and `/domain-modeling` skills together — grill it into shape a round of questions at a time, sharpening domain terms and updating `CONTEXT.md`/ADRs inline as decisions land.
|
||||
4. **Grill (if needed).** If the request needs fleshing out, call the Skill tool twice, for "grilling" and "domain-modeling" — grill it into shape a round of questions at a time, sharpening domain terms and updating `CONTEXT.md`/ADRs inline as decisions land.
|
||||
|
||||
5. **Apply the outcome:**
|
||||
- `ready-for-agent` — post an agent brief comment ([AGENT-BRIEF.md](AGENT-BRIEF.md)).
|
||||
|
||||
@@ -235,7 +235,8 @@
|
||||
"solidity-language-server@claude-code-lsps": true,
|
||||
"understand-anything@understand-anything": true,
|
||||
"vtsls@claude-code-lsps": true,
|
||||
"yaml-lsp@zircote-lsp": true
|
||||
"yaml-lsp@zircote-lsp": true,
|
||||
"diagram-design@diagram-design": true
|
||||
},
|
||||
"extraKnownMarketplaces": {
|
||||
"caveman": {
|
||||
@@ -297,10 +298,44 @@
|
||||
"source": "github",
|
||||
"repo": "zircote/lsp-marketplace"
|
||||
}
|
||||
},
|
||||
"diagram-design": {
|
||||
"source": {
|
||||
"source": "github",
|
||||
"repo": "cathrynlavery/diagram-design"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tui": "fullscreen",
|
||||
"skipDangerousModePermissionPrompt": true,
|
||||
"agentPushNotifEnabled": true,
|
||||
"skipAutoPermissionPrompt": true
|
||||
"skipAutoPermissionPrompt": true,
|
||||
"autoMode": {
|
||||
"environment": [
|
||||
"### Org-wide",
|
||||
"**Organization**: None configured",
|
||||
"**Cloud provider(s)**: None configured",
|
||||
"**Repository visibility**: Private — prdlk/leetcode (github.com)",
|
||||
"**Internal sharing / snippet hosting**: None configured — treat public paste/gist services as outside the trust boundary",
|
||||
"**Secrets management**: None configured",
|
||||
"**Default / protected branches**: Default branch `main`; no protected branches listed (rulesets not queryable here)",
|
||||
"**CI/CD deploy targets**: None configured",
|
||||
"**Network posture**: None configured",
|
||||
"**Source control**: The trusted repo (prdlk/leetcode on github.com) and its remote(s) only — no additional orgs configured",
|
||||
"**Trusted internal domains**: None configured",
|
||||
"**Trusted cloud buckets**: None configured",
|
||||
"**Key internal services**: None configured",
|
||||
"**Internal package registry**: None configured",
|
||||
"**Sensitive data locations & audiences**: any file or store holding personal data, confidential business data, credentials, regulated data, or similarly sensitive material; preserve exact handles when known and share only with audiences cleared at the [named+specifics] bar. Note: `.env*` patterns are gitignored in this repo (`.env`, `.env.local`, `.env.development.local`, `.env.test.local`, `.env.production.local`) — treat matching files as sensitive.",
|
||||
"**Data retention / declassification**: None configured",
|
||||
"**Sensitive remote targets**: any namespace, host, or container whose name carries `prod` or `production` as a whole word or name segment (hyphen/underscore/dot-delimited — e.g. matches `prod-db`, not `producer`)",
|
||||
"**Protected deployment namespaces / environments**: None configured — fall back to the Sensitive remote targets heuristic",
|
||||
"**Protected IaC scopes**: IAM, RBAC, networking, quota, and node-pool resources; anything whose name or tag carries `prod` or `production` as a whole word or name segment",
|
||||
"### User-specific",
|
||||
"**Primary use of Claude Code**: software development (personal — Leetcode solutions/notes repo)",
|
||||
"**Trusted repo**: prdlk/leetcode (github.com), private — the working directory the agent started in and its configured remote `origin`. As a private repo, confidential material may be committed here, but secrets/credentials are never cleared into it by visibility alone.",
|
||||
"**Org-specific CLIs**: None configured",
|
||||
"routine actions under `prdlk/leetcode` (this repo) treated as low-risk personal-project work"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
# prefix byte is the shift variant (\x02N == prefix+shift+n).
|
||||
|
||||
# ── base / appearance ──
|
||||
font_size 12
|
||||
font_size 13
|
||||
font_family VictorMono Nerd Font
|
||||
bold_italic_font auto
|
||||
window_padding_width 8
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# ── base.conf · shared ──
|
||||
font_size 12
|
||||
font_size 13
|
||||
font_family VictorMono Nerd Font
|
||||
bold_italic_font auto
|
||||
window_padding_width 8
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
# Launched from the default config with ctrl+shift+t.
|
||||
|
||||
# ── base / appearance (kitty.conf parity) ──
|
||||
font_size 12
|
||||
font_size 13
|
||||
font_family VictorMono Nerd Font
|
||||
bold_italic_font auto
|
||||
window_padding_width 8
|
||||
|
||||
@@ -92,9 +92,15 @@ window-rule {
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match app-id="kitty"
|
||||
match app-id="zed"
|
||||
match app-id="obsidian"
|
||||
match app-id="gemini-desktop"
|
||||
match app-id="com-fastmail-fastmail"
|
||||
match app-id="Beeper"
|
||||
match app-id="todoist"
|
||||
match app-id="com.anthropic.Claude"
|
||||
match app-id="Hermes"
|
||||
match app-id="chromium"
|
||||
|
||||
open-on-output "Apple Computer Inc StudioDisplay 0x984262A7"
|
||||
}
|
||||
@@ -104,13 +110,7 @@ window-rule {
|
||||
match title="Sticky Notes"
|
||||
match app-id="vacuumtube"
|
||||
match app-id="Fladder"
|
||||
match app-id="gemini-desktop"
|
||||
match app-id="com-fastmail-fastmail"
|
||||
match app-id="Beeper"
|
||||
match app-id="todoist"
|
||||
match app-id="com.anthropic.Claude"
|
||||
match app-id="Hermes"
|
||||
match app-id="chromium"
|
||||
match app-id="kitty"
|
||||
match app-id="kitty-herdr"
|
||||
match app-id="kitty-tmux"
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
// Apple Display
|
||||
output "Apple Computer Inc StudioDisplay 0x984262A7" {
|
||||
scale 1.5
|
||||
scale 1.75
|
||||
layout {
|
||||
center-focused-column "never"
|
||||
always-center-single-column true
|
||||
|
||||
@@ -45,8 +45,8 @@ hash = "4f73595837992eeefcb525c0a95b92ba"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "WhoSowSee/mdv-previewer"
|
||||
rev = "d487f90"
|
||||
hash = "2b9699810478c6de60f609092fc9bfc9"
|
||||
rev = "ea4732b"
|
||||
hash = "fb830053557fbb323c609cb97099a8aa"
|
||||
|
||||
[flavor]
|
||||
deps = []
|
||||
Reference in new issue
Block a user