@allthingsclaude/blueprints 0.4.5 → 0.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/content/commands/a11y.md +5 -4
- package/content/commands/audit.md +1 -1
- package/content/commands/autopilot.md +195 -28
- package/content/commands/brainstorm.md +2 -2
- package/content/commands/brand.md +10 -10
- package/content/commands/challenge.md +1 -1
- package/content/commands/changelog.md +2 -2
- package/content/commands/cleanup.md +2 -2
- package/content/commands/commit.md +1 -1
- package/content/commands/copy.md +7 -7
- package/content/commands/critique.md +1 -1
- package/content/commands/debug.md +1 -1
- package/content/commands/design.md +4 -4
- package/content/commands/diagram.md +4 -4
- package/content/commands/docs.md +4 -3
- package/content/commands/dry.md +2 -2
- package/content/commands/email.md +6 -6
- package/content/commands/explain.md +2 -2
- package/content/commands/finalize.md +1 -1
- package/content/commands/handoff.md +1 -1
- package/content/commands/history.md +2 -2
- package/content/commands/i18n.md +4 -4
- package/content/commands/migrate.md +3 -3
- package/content/commands/og.md +8 -8
- package/content/commands/onboard.md +6 -5
- package/content/commands/pickup.md +1 -1
- package/content/commands/pitch.md +65 -50
- package/content/commands/refactor.md +1 -1
- package/content/commands/release.md +5 -5
- package/content/commands/research.md +1 -1
- package/content/commands/secure.md +2 -2
- package/content/commands/showcase.md +3 -3
- package/content/commands/standup.md +2 -2
- package/content/commands/test.md +1 -1
- package/content/commands/todo.md +4 -4
- package/content/commands/update.md +3 -3
- package/content/commands/verify.md +1 -1
- package/package.json +1 -1
package/content/commands/a11y.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Audit your frontend for accessibility issues
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: optional: file path, component name, or WCAG level like "AA" or "AAA"
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -15,13 +15,14 @@ I'll scan your frontend code for accessibility issues and provide actionable fix
|
|
|
15
15
|
**Working Directory**: !`pwd`
|
|
16
16
|
|
|
17
17
|
**Project**:
|
|
18
|
-
!`
|
|
18
|
+
!`head -10 package.json 2>/dev/null`
|
|
19
19
|
|
|
20
20
|
**Frontend Files**:
|
|
21
|
-
!`find src/ app/ pages/ components/ -name "*.tsx" -o -name "*.jsx" -o -name "*.vue" -o -name "*.svelte" -o -name "*.html" 2>/dev/null
|
|
21
|
+
!`find src/ app/ pages/ components/ -name "*.tsx" -o -name "*.jsx" -o -name "*.vue" -o -name "*.svelte" -o -name "*.html" 2>/dev/null || echo "No frontend files found in common locations"`
|
|
22
22
|
|
|
23
23
|
**Existing A11y Setup**:
|
|
24
|
-
!`ls .axerc* .pa11yci* .pa11yrc* a11y.config* 2>/dev/null
|
|
24
|
+
!`ls .axerc* .pa11yci* .pa11yrc* a11y.config* 2>/dev/null || echo "No a11y config files"`
|
|
25
|
+
!`grep -i "a11y\|axe\|pa11y\|accessibility\|jest-axe\|@axe-core\|eslint-plugin-jsx-a11y" package.json 2>/dev/null || echo "No a11y tooling detected"`
|
|
25
26
|
|
|
26
27
|
---
|
|
27
28
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Full autonomous development loop - from idea to committed code
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: --full feature description or plan name
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -12,10 +12,15 @@ Full autonomous development loop. I'll take it from idea to committed code on a
|
|
|
12
12
|
|
|
13
13
|
**Working Directory**: !`pwd`
|
|
14
14
|
|
|
15
|
-
**
|
|
15
|
+
**Is Git Repo**: !`git rev-parse --is-inside-work-tree 2>/dev/null || echo "no"`
|
|
16
|
+
|
|
17
|
+
**Branch**: !`git branch --show-current 2>/dev/null || echo "(not a repo — will scan children)"`
|
|
16
18
|
|
|
17
19
|
**Git Status**:
|
|
18
|
-
!`git status --short 2>/dev/null || echo "
|
|
20
|
+
!`git status --short 2>/dev/null || echo "(not a repo)"`
|
|
21
|
+
|
|
22
|
+
**Child Git Repos** (for multi-repo mode):
|
|
23
|
+
!`find . -mindepth 2 -maxdepth 2 -name .git -type d 2>/dev/null`
|
|
19
24
|
|
|
20
25
|
**Active Plan**:
|
|
21
26
|
!`cat {{STATE_FILE}} 2>/dev/null || echo "No active plan"`
|
|
@@ -24,7 +29,7 @@ Full autonomous development loop. I'll take it from idea to committed code on a
|
|
|
24
29
|
!`ls -1 {{PLANS_DIR}}/PLAN_*.md 2>/dev/null || echo "No plans found"`
|
|
25
30
|
|
|
26
31
|
**Project Detection**:
|
|
27
|
-
!`ls package.json tsconfig.json Cargo.toml go.mod pyproject.toml requirements.txt 2>/dev/null || echo "
|
|
32
|
+
!`ls package.json tsconfig.json Cargo.toml go.mod pyproject.toml requirements.txt 2>/dev/null || echo "(no root-level project files — multi-repo likely)"`
|
|
28
33
|
|
|
29
34
|
---
|
|
30
35
|
|
|
@@ -40,12 +45,13 @@ You are now in **AUTOPILOT MODE** — a full development loop that orchestrates
|
|
|
40
45
|
|
|
41
46
|
### Step 0: Parse Arguments
|
|
42
47
|
|
|
43
|
-
Parse `$ARGUMENTS` for:
|
|
48
|
+
Parse `$ARGUMENTS` for (in order):
|
|
44
49
|
- **`--full`** flag: If present, run the entire loop without stopping for confirmation — commit automatically, skip approval prompts, maximize autonomy. Remove this flag from the remaining arguments before further processing.
|
|
45
|
-
-
|
|
50
|
+
- **`--repos a,b,c`** flag: If present, overrides auto-detection for multi-repo mode. Value is a comma-separated list of child directory names that should be treated as "affected" regardless of what the plan references. Remove this flag and its value from the remaining arguments. Store as `REPOS_OVERRIDE`.
|
|
51
|
+
- **Plan name**: If the first remaining word matches an existing plan in `{{PLANS_DIR}}/PLAN_{NN}_{NAME}.md` (case-insensitive, matched by the `{NAME}` portion), treat it as a plan name to execute.
|
|
46
52
|
- **Feature description**: Otherwise, treat remaining arguments as a feature description for brainstorming.
|
|
47
53
|
|
|
48
|
-
Store the `--full`
|
|
54
|
+
Store the `--full` and `REPOS_OVERRIDE` preferences — you'll check them at commit checkpoints and in Step 3a respectively.
|
|
49
55
|
|
|
50
56
|
---
|
|
51
57
|
|
|
@@ -55,7 +61,14 @@ Follow this decision tree **in order**:
|
|
|
55
61
|
|
|
56
62
|
#### 1a. Check for Active Plan in STATE.md
|
|
57
63
|
|
|
58
|
-
|
|
64
|
+
Look for `{{STATE_FILE}}` in this search order (first match wins):
|
|
65
|
+
1. `./{{STATE_FILE}}` — cwd
|
|
66
|
+
2. `../{{STATE_FILE}}` — parent directory (useful when user accidentally ran from inside a child repo in a multi-repo setup)
|
|
67
|
+
|
|
68
|
+
If found in the parent, emit a notice: "Found {{TASKS_DIR}}/ in parent directory — treating parent as the working root. Suggest running `/autopilot` from `{parent_abspath}` in the future."
|
|
69
|
+
|
|
70
|
+
Then, if STATE.md contains an active plan (status is `In Progress` or `Paused`):
|
|
71
|
+
- If the resolved STATE.md is at `../`, **change working directory to the parent** before continuing. All subsequent steps (discovery, branching, commits) must operate relative to the parent.
|
|
59
72
|
- Load the plan file referenced in STATE.md
|
|
60
73
|
- Check which phase we're on and what tasks remain
|
|
61
74
|
- **If there are uncompleted tasks** → skip to **Step 3** (branch) then **Step 4** (execute)
|
|
@@ -134,26 +147,112 @@ Use the Task tool to launch the plan agent (`subagent_type="plan"`) with the fea
|
|
|
134
147
|
|
|
135
148
|
Wait for the plan agent to complete, then load and display a brief summary of the plan.
|
|
136
149
|
|
|
137
|
-
**COMMIT CHECKPOINT**: After plan is created, commit it
|
|
138
|
-
-
|
|
139
|
-
-
|
|
150
|
+
**COMMIT CHECKPOINT (conditional)**: After plan is created, commit it **only if cwd is a git repo**:
|
|
151
|
+
- Check: `git rev-parse --is-inside-work-tree 2>/dev/null`
|
|
152
|
+
- If cwd IS a git repo (single-repo or meta-repo case):
|
|
153
|
+
- Stage the plan file and STATE.md
|
|
154
|
+
- Use the Task tool to launch the commit agent (`subagent_type="commit"`) with context: "docs: add implementation plan for {NAME}"
|
|
155
|
+
- If cwd is NOT a git repo (parent-with-child-repos case):
|
|
156
|
+
- **Skip the commit** — the plan and STATE.md stay as uncommitted coordination artifacts at the parent level.
|
|
157
|
+
- Report: "Plan created at parent level (not a git repo) — left uncommitted as coordination artifact. To version it, init a meta-repo at the parent or commit in any workflow you choose."
|
|
140
158
|
|
|
141
159
|
---
|
|
142
160
|
|
|
143
|
-
### Step 3: Create Feature Branch
|
|
161
|
+
### Step 3: Detect Repositories & Create Feature Branch(es)
|
|
162
|
+
|
|
163
|
+
Before starting implementation, detect the repository topology and create feature branches.
|
|
164
|
+
|
|
165
|
+
#### 3a. Discover Repos & Determine Mode
|
|
166
|
+
|
|
167
|
+
Always perform both discoveries below before deciding mode. Mode is chosen based on **what the plan references**, not purely on whether cwd is a git repo. This correctly handles three distinct layouts: plain single-repo, parent-is-not-a-repo-but-children-are, and parent-is-a-meta-repo-with-child-repos.
|
|
168
|
+
|
|
169
|
+
**Discovery 1 — is cwd itself a git repo?**
|
|
170
|
+
```bash
|
|
171
|
+
git rev-parse --is-inside-work-tree 2>/dev/null
|
|
172
|
+
```
|
|
173
|
+
Store as `CWD_IS_REPO` (true/false).
|
|
174
|
+
|
|
175
|
+
**Discovery 2 — are there child git repos?**
|
|
176
|
+
```bash
|
|
177
|
+
find . -mindepth 2 -maxdepth 2 -name .git -type d 2>/dev/null
|
|
178
|
+
```
|
|
179
|
+
Store the list as `CHILD_REPOS`. (Avoid `for` / `while` loops in inline shell — some harnesses reject control-flow statements.)
|
|
180
|
+
|
|
181
|
+
**Discovery 3 — which repos does the plan reference?**
|
|
182
|
+
If there's an active plan file (`{{PLANS_DIR}}/PLAN_{NN}_{NAME}.md`), for each entry in `CHILD_REPOS`, grep the plan for its directory name:
|
|
183
|
+
```bash
|
|
184
|
+
grep -c "{child_repo_name}" {{PLANS_DIR}}/PLAN_{NN}_{NAME}.md
|
|
185
|
+
```
|
|
186
|
+
Any child with **> 0 mentions** goes into `AFFECTED_CHILDREN`.
|
|
187
|
+
|
|
188
|
+
**Mode decision** (evaluate in this order, first match wins):
|
|
189
|
+
|
|
190
|
+
| Condition | Mode | `AFFECTED_REPOS` | Notes |
|
|
191
|
+
|---|---|---|---|
|
|
192
|
+
| User passed `--repos a,b,...` | multi | `{a, b, ...}` | Explicit override wins over all auto-detection |
|
|
193
|
+
| `AFFECTED_CHILDREN` is non-empty | multi | `AFFECTED_CHILDREN` | Applies even if cwd is itself a git repo (meta-repo case). The parent repo, if any, is NOT branched — it stays where it is. |
|
|
194
|
+
| `CWD_IS_REPO` is true | single | `[.]` | No child repos mentioned in plan → plain single-repo |
|
|
195
|
+
| Otherwise | fail | — | "No git repo found here, and no child directories with `.git/` are referenced by the plan. Either cd into a repo, initialize one, or verify the plan references the correct repo directories." |
|
|
196
|
+
|
|
197
|
+
**Ambiguity warning**: If `CHILD_REPOS` is non-empty but `AFFECTED_CHILDREN` is empty AND `CWD_IS_REPO` is true (falling through to single-repo mode), this might indicate a plan authoring mistake. Emit a warning before proceeding:
|
|
198
|
+
|
|
199
|
+
> "Detected child git repos {list} but the plan does not reference any of them by directory name. Proceeding with single-repo mode (branching in cwd). If you intended multi-repo, either (a) update the plan's file paths to include the repo prefix (e.g., `{child_name}/src/...`), or (b) re-run with `--repos {child_name}` to force multi-repo mode."
|
|
200
|
+
|
|
201
|
+
Prompt the user to confirm before continuing (in `--full` mode, auto-continue with the warning still logged).
|
|
202
|
+
|
|
203
|
+
**Important — meta-repo case**: If cwd is a git repo AND there are affected children, we enter **multi-repo mode**. Branches are created only in the affected children. The parent (meta) repo is left alone — no branch, no commits, no state mutations. STATE.md changes at the parent level remain uncommitted coordination artifacts. If the user later wants to version those in the meta-repo, they can commit them manually via `/commit`.
|
|
204
|
+
|
|
205
|
+
Report the decision:
|
|
206
|
+
- Single-repo: "Branching in this repo."
|
|
207
|
+
- Multi-repo: "Plan touches {N} child repo(s): {list}. Will branch in each. Parent repo (if any) left untouched."
|
|
208
|
+
|
|
209
|
+
#### 3b. Pre-flight: Check for Dirty Working State
|
|
210
|
+
|
|
211
|
+
Before branching, guard against clobbering uncommitted work in any target repo.
|
|
212
|
+
|
|
213
|
+
For each repo in `AFFECTED_REPOS`:
|
|
214
|
+
1. `cd {repo}` (skip for single-repo mode where this is cwd)
|
|
215
|
+
2. Run: `git status --short`
|
|
216
|
+
3. If non-empty → mark this repo as "dirty" and collect the output.
|
|
217
|
+
4. `cd -`
|
|
218
|
+
|
|
219
|
+
If any repo is dirty:
|
|
220
|
+
- Report to the user: list each dirty repo and its `git status --short` output.
|
|
221
|
+
- Ask: "Uncommitted changes found in {N} repo(s). How should I proceed?
|
|
222
|
+
- **stash** — I'll stash the changes in each dirty repo before branching (`git stash push -u -m 'autopilot pre-branch'`). You can restore with `git stash pop` later.
|
|
223
|
+
- **abort** — stop autopilot so you can handle the changes manually.
|
|
224
|
+
- **continue** — proceed anyway; the uncommitted changes will carry onto the new branch (only safe if you want them there)."
|
|
225
|
+
- In `--full` mode, default to **abort** (never silently discard or carry unintended work).
|
|
226
|
+
- Wait for user decision before proceeding.
|
|
227
|
+
|
|
228
|
+
If all repos are clean (or user chose stash/continue), proceed to 3c.
|
|
229
|
+
|
|
230
|
+
#### 3c. Create Branches
|
|
144
231
|
|
|
145
|
-
|
|
232
|
+
Determine the branch name:
|
|
233
|
+
- Convert plan name to lowercase kebab-case
|
|
234
|
+
- Prefix with `feat/` (e.g., plan "USER_AUTH" → branch `feat/user-auth`)
|
|
146
235
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
- Prefix with `feat/` (e.g., plan "USER_AUTH" → branch `feat/user-auth`)
|
|
150
|
-
2. Check if the branch already exists:
|
|
151
|
-
- If yes and we're resuming → switch to it: `git checkout feat/{name}`
|
|
152
|
-
- If yes and NOT resuming → switch to it (it may have prior work)
|
|
153
|
-
- If no → create it: `git checkout -b feat/{name}`
|
|
154
|
-
3. Confirm the branch: `git branch --show-current`
|
|
236
|
+
**Single-repo mode**: run branching in cwd.
|
|
237
|
+
**Multi-repo mode**: run branching in each affected repo.
|
|
155
238
|
|
|
156
|
-
|
|
239
|
+
For each target repo, in order:
|
|
240
|
+
1. `cd {repo}` (or stay at cwd for single-repo)
|
|
241
|
+
2. Check current branch: `git branch --show-current`
|
|
242
|
+
3. Check if `feat/{name}` exists:
|
|
243
|
+
- Exists + we're resuming → switch to it: `git checkout feat/{name}`
|
|
244
|
+
- Exists + not resuming → switch to it (prior work)
|
|
245
|
+
- Does not exist → create it: `git checkout -b feat/{name}`
|
|
246
|
+
4. Confirm the branch.
|
|
247
|
+
5. `cd -` (return to parent)
|
|
248
|
+
|
|
249
|
+
**STATE UPDATE**: Add a `**Repos**:` line to STATE.md header listing the affected repos and the branch name:
|
|
250
|
+
```markdown
|
|
251
|
+
**Repos**: cli-shopnosis-shopper-app, cli-shopnosis-shopper-server
|
|
252
|
+
**Branch**: feat/{name}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
Report: "Working on branch `feat/{name}` in {N} repo(s): {list}"
|
|
157
256
|
|
|
158
257
|
---
|
|
159
258
|
|
|
@@ -181,10 +280,10 @@ Count the `- [ ]` uncompleted tasks in the current phase.
|
|
|
181
280
|
Use the Task tool to launch the showcase agent (`subagent_type="showcase"`) with the plan context and any reference files from `{{TASKS_DIR}}/references/`.
|
|
182
281
|
|
|
183
282
|
**For `/implement` mode:**
|
|
184
|
-
Use the Task tool to launch the implement agent (`subagent_type="implement"`) with the plan name and instruction to work on the current phase only (e.g., "Execute Phase 1 only, then stop").
|
|
283
|
+
Use the Task tool to launch the implement agent (`subagent_type="implement"`) with the plan name and instruction to work on the current phase only (e.g., "Execute Phase 1 only, then stop"). **Multi-repo mode**: include in the prompt the list of affected repos and their paths so the agent writes files into the correct sub-directories (file paths in the plan should already be prefixed with the repo name).
|
|
185
284
|
|
|
186
285
|
**For `/parallelize` mode:**
|
|
187
|
-
Use the Task tool to launch the parallelize orchestrator (`subagent_type="parallelize"`) with the plan name and instruction to work on the current phase only.
|
|
286
|
+
Use the Task tool to launch the parallelize orchestrator (`subagent_type="parallelize"`) with the plan name and instruction to work on the current phase only. **Multi-repo mode**: include the list of affected repos in the prompt.
|
|
188
287
|
|
|
189
288
|
Wait for the agent to complete. Review its summary.
|
|
190
289
|
|
|
@@ -194,11 +293,24 @@ Present the blockers to the user and ask how to proceed. Do NOT continue until b
|
|
|
194
293
|
#### 4c. Commit the Phase
|
|
195
294
|
|
|
196
295
|
**COMMIT CHECKPOINT**: After each phase completes:
|
|
296
|
+
|
|
297
|
+
**Single-repo mode**:
|
|
197
298
|
- Use the Task tool to launch the commit agent (`subagent_type="commit"`) with context describing what was accomplished in this phase
|
|
198
299
|
- The commit agent will determine the appropriate prefix (`feat:`, `fix:`, `refactor:`, `chore:`, etc.) based on the nature of the changes
|
|
199
300
|
- The commit message should reference the plan and phase (e.g., "feat: implement user authentication (PLAN_AUTH Phase 1)")
|
|
200
301
|
|
|
201
|
-
**
|
|
302
|
+
**Multi-repo mode**:
|
|
303
|
+
- Before the commit loop, capture the parent directory: `PARENT_DIR=$(pwd)`.
|
|
304
|
+
- For each repo in `AFFECTED_REPOS`:
|
|
305
|
+
1. `cd "$PARENT_DIR/{repo}"` (use the absolute path — never rely on `cd -` chains)
|
|
306
|
+
2. Check `git status --short` — if empty, skip this repo for this phase (no changes here).
|
|
307
|
+
3. If there are changes, launch the commit agent (`subagent_type="commit"`) with context including (a) what was accomplished in this phase, and (b) which repo this is. The commit runs inside the repo's working directory.
|
|
308
|
+
- After the loop, **unconditionally** return: `cd "$PARENT_DIR"`.
|
|
309
|
+
- Confirm cwd is the parent before the STATE.md update below (run `pwd` to verify).
|
|
310
|
+
- A single phase may produce commits in multiple repos; that's expected.
|
|
311
|
+
- Record the resulting commit hashes per repo for the final report.
|
|
312
|
+
|
|
313
|
+
**STATE UPDATE** (always from the parent dir — STATE.md lives at `$PARENT_DIR/{{STATE_FILE}}`): Read and update `{{STATE_FILE}}`:
|
|
202
314
|
- Increment `**Phase**` to the next phase number
|
|
203
315
|
- Keep `**Status**` as `🚧 In Progress`
|
|
204
316
|
- Update `**Updated**` timestamp
|
|
@@ -216,7 +328,9 @@ After committing and updating STATE.md, check if there are more phases remaining
|
|
|
216
328
|
|
|
217
329
|
### Step 5: Validate & Fix
|
|
218
330
|
|
|
219
|
-
After all phases are implemented and committed, run validation. Each step uses a subagent
|
|
331
|
+
After all phases are implemented and committed, run validation. Each step uses a subagent.
|
|
332
|
+
|
|
333
|
+
**Multi-repo mode**: every validation step below runs **once per affected repo**, with `cd {repo}` before launching the agent. Aggregate results per repo into the final report. A failure in one repo does not short-circuit the others — validate all, then report aggregated findings and decide together.
|
|
220
334
|
|
|
221
335
|
#### 5a. Audit
|
|
222
336
|
|
|
@@ -293,7 +407,9 @@ Review security report:
|
|
|
293
407
|
- Update `**Updated**` timestamp
|
|
294
408
|
- Update all task statuses in the task tables under `## Plans` to reflect final state
|
|
295
409
|
|
|
296
|
-
After everything is done (or stopped), provide a final summary
|
|
410
|
+
After everything is done (or stopped), provide a final summary.
|
|
411
|
+
|
|
412
|
+
**Single-repo mode**:
|
|
297
413
|
|
|
298
414
|
```markdown
|
|
299
415
|
**Autopilot Complete**
|
|
@@ -305,7 +421,6 @@ After everything is done (or stopped), provide a final summary:
|
|
|
305
421
|
**Commits Made**:
|
|
306
422
|
- `{hash}` {commit message 1}
|
|
307
423
|
- `{hash}` {commit message 2}
|
|
308
|
-
- `{hash}` {commit message 3}
|
|
309
424
|
|
|
310
425
|
**What Was Done**:
|
|
311
426
|
- [Phase 1 summary]
|
|
@@ -322,6 +437,45 @@ After everything is done (or stopped), provide a final summary:
|
|
|
322
437
|
- Or continue working: `/autopilot` (will resume from STATE.md)
|
|
323
438
|
```
|
|
324
439
|
|
|
440
|
+
**Multi-repo mode**:
|
|
441
|
+
|
|
442
|
+
```markdown
|
|
443
|
+
**Autopilot Complete (multi-repo)**
|
|
444
|
+
|
|
445
|
+
**Plan**: {NAME}
|
|
446
|
+
**Branch**: `feat/{name}` (same across all affected repos)
|
|
447
|
+
**Status**: {Complete / Partially Complete}
|
|
448
|
+
|
|
449
|
+
**Per-repo results**:
|
|
450
|
+
|
|
451
|
+
### {repo-name-1}
|
|
452
|
+
- Branch: `feat/{name}`
|
|
453
|
+
- Commits:
|
|
454
|
+
- `{hash}` {commit message}
|
|
455
|
+
- `{hash}` {commit message}
|
|
456
|
+
- Next: `cd {repo-name-1} && gh pr create`
|
|
457
|
+
|
|
458
|
+
### {repo-name-2}
|
|
459
|
+
- Branch: `feat/{name}`
|
|
460
|
+
- Commits:
|
|
461
|
+
- `{hash}` {commit message}
|
|
462
|
+
- Next: `cd {repo-name-2} && gh pr create`
|
|
463
|
+
|
|
464
|
+
**What Was Done**:
|
|
465
|
+
- [Phase 1 summary]
|
|
466
|
+
- [Phase 2 summary]
|
|
467
|
+
|
|
468
|
+
**Validation Results**:
|
|
469
|
+
- Audit: {result per repo}
|
|
470
|
+
- Tests: {result per repo}
|
|
471
|
+
- Security: {result per repo}
|
|
472
|
+
|
|
473
|
+
**Next Steps**:
|
|
474
|
+
- Review changes in each repo individually.
|
|
475
|
+
- Open one PR per repo (they can reference each other's branch name).
|
|
476
|
+
- Or resume: `/autopilot` will pick up from STATE.md.
|
|
477
|
+
```
|
|
478
|
+
|
|
325
479
|
---
|
|
326
480
|
|
|
327
481
|
## Commit Checkpoint Rules
|
|
@@ -352,6 +506,19 @@ Autopilot commits **early and often** using the commit agent (`subagent_type="co
|
|
|
352
506
|
- BUT always stop for: blockers and validation failures that can't be auto-fixed
|
|
353
507
|
- Never force-push, delete branches, or make destructive changes without asking
|
|
354
508
|
|
|
509
|
+
### Multi-Repo Mode
|
|
510
|
+
- **Trigger**: multi-repo mode activates whenever the plan references child directories that are git repos — regardless of whether the parent (cwd) is itself a git repo. The parent is never branched in this mode.
|
|
511
|
+
- Three scenarios it handles:
|
|
512
|
+
1. Parent is NOT a git repo + children are → multi-repo.
|
|
513
|
+
2. Parent IS a git repo (meta-repo) + children are + plan mentions them → multi-repo, meta-repo untouched.
|
|
514
|
+
3. Parent IS a git repo + no children mentioned in plan → single-repo (plain case).
|
|
515
|
+
- The same branch name (`feat/{name}`) is created in every "affected" child repo.
|
|
516
|
+
- Commits run per-repo: `cd {repo}`, check `git status`, launch commit agent, `cd -`.
|
|
517
|
+
- Validation (audit / test / security / a11y) runs per-repo. Failures in one repo don't short-circuit others — validate all, report together.
|
|
518
|
+
- STATE.md lives at the parent level and is NOT committed by autopilot; it's a coordination artifact. If the parent is itself a meta-repo and the user wants to version STATE.md/plan updates, they can do so manually via `/commit` in the parent — autopilot does not touch the parent.
|
|
519
|
+
- The plan document should prefix file paths with the repo directory name (e.g., `cli-shopnosis-shopper-server/src/models/...`) so the implement/parallelize agents write into the right sub-directory, and so the grep-for-mentions step correctly detects affected repos.
|
|
520
|
+
- If the user passes `--repos repoA,repoB`, override auto-detection with that explicit list.
|
|
521
|
+
|
|
355
522
|
### Compose Existing Agents
|
|
356
523
|
- Use the existing subagent types: `bootstrap`, `plan`, `implement`, `parallelize`, `showcase`, `audit`, `test`, `secure`, `a11y`, `commit`, `update`
|
|
357
524
|
- Do NOT try to do their jobs inline — delegate to specialists
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Enter brainstorming mode to explore ideas without implementation
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: topic or context
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -21,7 +21,7 @@ Before brainstorming, quickly assess the current project:
|
|
|
21
21
|
!`ls package.json tsconfig.json Cargo.toml go.mod pyproject.toml requirements.txt composer.json Gemfile pom.xml build.gradle mix.exs 2>/dev/null || echo "No recognized project files"`
|
|
22
22
|
|
|
23
23
|
**Source Files**:
|
|
24
|
-
!`find . -maxdepth 3 -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" -o -name "*.py" -o -name "*.rs" -o -name "*.go" -o -name "*.java" -o -name "*.rb" -o -name "*.ex" -o -name "*.php" \) 2>/dev/null
|
|
24
|
+
!`find . -maxdepth 3 -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" -o -name "*.py" -o -name "*.rs" -o -name "*.go" -o -name "*.java" -o -name "*.rb" -o -name "*.ex" -o -name "*.php" \) 2>/dev/null`
|
|
25
25
|
|
|
26
26
|
**Is this an empty/new project?** If there are fewer than 5 source files and no meaningful project configuration, this is likely a **new project**. In that case:
|
|
27
27
|
- Mention to the user that this looks like a new project and brainstorming is a great starting point
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Create or document a comprehensive brand identity system
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: brand description or leave empty for guided questionnaire
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -13,29 +13,29 @@ I'll create or document a comprehensive brand identity system — colors, typogr
|
|
|
13
13
|
**Working Directory**: !`pwd`
|
|
14
14
|
|
|
15
15
|
**Existing Brand Assets**:
|
|
16
|
-
!`ls tailwind.config.* src/app/globals.css src/styles/*.css styles/*.css public/images/*.svg public/*.svg 2>/dev/null
|
|
16
|
+
!`ls tailwind.config.* src/app/globals.css src/styles/*.css styles/*.css public/images/*.svg public/*.svg 2>/dev/null || echo "No brand files detected"`
|
|
17
17
|
|
|
18
18
|
**Design Directory**:
|
|
19
|
-
!`ls design/ 2>/dev/null
|
|
19
|
+
!`ls design/ 2>/dev/null || echo "No existing design directory"`
|
|
20
20
|
|
|
21
21
|
**Previous Brand Brief**:
|
|
22
|
-
!`
|
|
22
|
+
!`head -40 design/brand-brief.md 2>/dev/null || echo "No brand brief yet"`
|
|
23
23
|
|
|
24
24
|
**CSS / Tailwind Config**:
|
|
25
|
-
!`
|
|
25
|
+
!`head -40 tailwind.config.* 2>/dev/null || echo "No Tailwind config"`
|
|
26
26
|
|
|
27
27
|
**Font Imports**:
|
|
28
|
-
!`grep -rE "googleapis.com/css|next/font|@import.*font|@font-face|fontFamily" tailwind.config.* src/app/layout.tsx src/app/globals.css src/styles/*.css 2>/dev/null
|
|
28
|
+
!`grep -rE "googleapis.com/css|next/font|@import.*font|@font-face|fontFamily" tailwind.config.* src/app/layout.tsx src/app/globals.css src/styles/*.css 2>/dev/null || echo "No font declarations found"`
|
|
29
29
|
|
|
30
30
|
**Color Definitions**:
|
|
31
|
-
!`grep -rE "#[0-9A-Fa-f]{3,8}\b|--color-|rgba?\(|hsl" src/app/globals.css tailwind.config.* styles/*.css src/styles/*.css 2>/dev/null
|
|
31
|
+
!`grep -rE "#[0-9A-Fa-f]{3,8}\b|--color-|rgba?\(|hsl" src/app/globals.css tailwind.config.* styles/*.css src/styles/*.css 2>/dev/null || echo "No color definitions found"`
|
|
32
32
|
|
|
33
33
|
**Logo Files**:
|
|
34
|
-
!`ls public/images/logo* public/logo* public/images/icon* public/*.svg src/assets/*.svg 2>/dev/null
|
|
34
|
+
!`ls public/images/logo* public/logo* public/images/icon* public/*.svg src/assets/*.svg 2>/dev/null || echo "No logo files found"`
|
|
35
35
|
|
|
36
36
|
**README / Package Info**:
|
|
37
|
-
!`
|
|
38
|
-
!`
|
|
37
|
+
!`head -20 README.md 2>/dev/null || echo "No README"`
|
|
38
|
+
!`head -10 package.json 2>/dev/null || echo "No package.json"`
|
|
39
39
|
|
|
40
40
|
---
|
|
41
41
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Generate a changelog from git history
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: optional: version tag, date range, or "unreleased"
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -17,7 +17,7 @@ I'll analyze your git history and generate a well-structured changelog.
|
|
|
17
17
|
**Branch**: !`git branch --show-current 2>/dev/null || echo "Not a git repository"`
|
|
18
18
|
|
|
19
19
|
**Latest Tags**:
|
|
20
|
-
!`git tag --sort=-version:refname 2>/dev/null
|
|
20
|
+
!`git tag --sort=-version:refname -n5 2>/dev/null || echo "No tags found"`
|
|
21
21
|
|
|
22
22
|
**Recent Commits**:
|
|
23
23
|
!`git log --oneline -10 2>/dev/null`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Find and remove dead code, unused imports, and technical debt
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: optional: "imports" | "dead-code" | "types" | "todos" | focus area
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -17,7 +17,7 @@ I'll scan your codebase for dead code, unused imports, and technical debt.
|
|
|
17
17
|
**Branch**: !`git branch --show-current 2>/dev/null || echo "Not a git repository"`
|
|
18
18
|
|
|
19
19
|
**Files to Analyze**:
|
|
20
|
-
!`find . -maxdepth 5 -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" 2>/dev/null
|
|
20
|
+
!`find . -maxdepth 5 -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" -not -path "*/node_modules/*" 2>/dev/null` source files
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
package/content/commands/copy.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Write on-brand marketing copy for social media, ads, emails, and landing pages
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: copy brief or leave empty for guided questionnaire
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -13,22 +13,22 @@ I'll write on-brand marketing copy — social captions, ad copy, email subject l
|
|
|
13
13
|
**Working Directory**: !`pwd`
|
|
14
14
|
|
|
15
15
|
**Existing Brand Brief**:
|
|
16
|
-
!`
|
|
16
|
+
!`head -40 design/brand-brief.md 2>/dev/null || echo "No brand brief yet"`
|
|
17
17
|
|
|
18
18
|
**Project Identity**:
|
|
19
|
-
!`
|
|
19
|
+
!`head -30 README.md 2>/dev/null || echo "No README found"`
|
|
20
20
|
|
|
21
21
|
**Package Description**:
|
|
22
|
-
!`
|
|
22
|
+
!`head -10 package.json 2>/dev/null || echo "No package.json found"`
|
|
23
23
|
|
|
24
24
|
**Existing Copy & Messaging**:
|
|
25
|
-
!`grep -rh 'content=\|<title>\|<meta name=.description' src/app/layout.tsx src/app/page.tsx index.html 2>/dev/null
|
|
25
|
+
!`grep -rh 'content=\|<title>\|<meta name=.description' src/app/layout.tsx src/app/page.tsx index.html 2>/dev/null || echo "No meta/title tags detected"`
|
|
26
26
|
|
|
27
27
|
**Landing Page Copy**:
|
|
28
|
-
!`grep -rh "<h1\|<h2\|<p class.*hero\|<p class.*subtitle\|<p class.*tagline" src/app/page.tsx src/components/Hero.tsx src/components/Landing.tsx index.html 2>/dev/null
|
|
28
|
+
!`grep -rh "<h1\|<h2\|<p class.*hero\|<p class.*subtitle\|<p class.*tagline" src/app/page.tsx src/components/Hero.tsx src/components/Landing.tsx index.html 2>/dev/null || echo "No landing page copy detected"`
|
|
29
29
|
|
|
30
30
|
**Design Directory**:
|
|
31
|
-
!`ls design/ 2>/dev/null
|
|
31
|
+
!`ls design/ 2>/dev/null || echo "No existing design directory"`
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Create on-brand design and marketing assets (social media, banners, ads)
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: design brief or leave empty for guided questionnaire
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -13,13 +13,13 @@ I'll create on-brand design and marketing assets — social media banners, ad cr
|
|
|
13
13
|
**Working Directory**: !`pwd`
|
|
14
14
|
|
|
15
15
|
**Existing Brand Assets**:
|
|
16
|
-
!`ls tailwind.config.* src/app/globals.css src/styles/*.css public/images/*.svg 2>/dev/null
|
|
16
|
+
!`ls tailwind.config.* src/app/globals.css src/styles/*.css public/images/*.svg 2>/dev/null || echo "No brand files detected"`
|
|
17
17
|
|
|
18
18
|
**Design Directory**:
|
|
19
|
-
!`ls design/ 2>/dev/null
|
|
19
|
+
!`ls design/ 2>/dev/null || echo "No existing design directory"`
|
|
20
20
|
|
|
21
21
|
**Previous Brand Brief**:
|
|
22
|
-
!`
|
|
22
|
+
!`head -30 design/brand-brief.md 2>/dev/null || echo "No brand brief yet"`
|
|
23
23
|
|
|
24
24
|
**Image Generation APIs** (agent will check GEMINI_API_KEY and FAL_KEY availability at runtime):
|
|
25
25
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Generate Mermaid diagrams from your codebase
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: architecture | dependency | sequence | er | dataflow | component name or feature
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -15,13 +15,13 @@ I'll analyze your codebase and generate Mermaid diagrams that visualize architec
|
|
|
15
15
|
**Working Directory**: !`pwd`
|
|
16
16
|
|
|
17
17
|
**Project**:
|
|
18
|
-
!`
|
|
18
|
+
!`head -10 package.json 2>/dev/null`
|
|
19
19
|
|
|
20
20
|
**Structure**:
|
|
21
|
-
!`ls -la src/ 2>/dev/null
|
|
21
|
+
!`ls -la src/ 2>/dev/null`
|
|
22
22
|
|
|
23
23
|
**Existing Docs**:
|
|
24
|
-
!`ls docs/ 2>/dev/null
|
|
24
|
+
!`ls docs/ 2>/dev/null`
|
|
25
25
|
|
|
26
26
|
---
|
|
27
27
|
|
package/content/commands/docs.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Generate or update project documentation
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: readme | api | architecture | file path or component to document
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -15,10 +15,11 @@ I'll analyze your codebase and generate or update documentation.
|
|
|
15
15
|
**Working Directory**: !`pwd`
|
|
16
16
|
|
|
17
17
|
**Project**:
|
|
18
|
-
!`ls README* 2>/dev/null
|
|
18
|
+
!`ls README* 2>/dev/null || echo "No README found"`
|
|
19
|
+
!`ls docs/ 2>/dev/null || echo "No docs/ directory"`
|
|
19
20
|
|
|
20
21
|
**Existing Docs**:
|
|
21
|
-
!`find . -maxdepth 3 -name "*.md" -not -path "*/node_modules/*" -not -path "*/.git/*" 2>/dev/null
|
|
22
|
+
!`find . -maxdepth 3 -name "*.md" -not -path "*/node_modules/*" -not -path "*/.git/*" 2>/dev/null`
|
|
22
23
|
|
|
23
24
|
---
|
|
24
25
|
|
package/content/commands/dry.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Eliminate DRY violations without changing behavior
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: optional: file/folder path, "functions" | "components" | "hooks" | "types" | "constants"
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -20,7 +20,7 @@ I'll find and eliminate DRY violations across your codebase while guaranteeing i
|
|
|
20
20
|
!`git status --short`
|
|
21
21
|
|
|
22
22
|
**Files to Analyze**:
|
|
23
|
-
!`find . -maxdepth 5 -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" 2>/dev/null
|
|
23
|
+
!`find . -maxdepth 5 -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" -not -path "*/node_modules/*" 2>/dev/null` source files
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Create on-brand HTML email templates (newsletters, announcements, transactional)
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: email brief or leave empty for guided questionnaire
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -13,19 +13,19 @@ I'll create on-brand, email-client-compatible HTML templates — newsletters, pr
|
|
|
13
13
|
**Working Directory**: !`pwd`
|
|
14
14
|
|
|
15
15
|
**Existing Brand Assets**:
|
|
16
|
-
!`ls tailwind.config.* src/app/globals.css src/styles/*.css public/images/*.svg 2>/dev/null
|
|
16
|
+
!`ls tailwind.config.* src/app/globals.css src/styles/*.css public/images/*.svg 2>/dev/null || echo "No brand files detected"`
|
|
17
17
|
|
|
18
18
|
**Design Directory**:
|
|
19
|
-
!`ls design/ 2>/dev/null
|
|
19
|
+
!`ls design/ 2>/dev/null || echo "No existing design directory"`
|
|
20
20
|
|
|
21
21
|
**Previous Brand Brief**:
|
|
22
|
-
!`
|
|
22
|
+
!`head -30 design/brand-brief.md 2>/dev/null || echo "No brand brief yet"`
|
|
23
23
|
|
|
24
24
|
**Existing Email Templates**:
|
|
25
|
-
!`find . -maxdepth 4 -name "*.html" -path "*email*" -o -name "*.html" -path "*newsletter*" -o -name "*.html" -path "*template*" -path "*mail*" 2>/dev/null
|
|
25
|
+
!`find . -maxdepth 4 -name "*.html" -path "*email*" -o -name "*.html" -path "*newsletter*" -o -name "*.html" -path "*template*" -path "*mail*" 2>/dev/null || echo "No existing email templates found"`
|
|
26
26
|
|
|
27
27
|
**Mail-Related Dependencies**:
|
|
28
|
-
!`grep -E "nodemailer|sendgrid|mailgun|postmark|resend|ses|mailchimp|mjml|react-email" package.json 2>/dev/null
|
|
28
|
+
!`grep -E "nodemailer|sendgrid|mailgun|postmark|resend|ses|mailchimp|mjml|react-email" package.json 2>/dev/null || echo "No mail dependencies detected"`
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Generate detailed explanations of code, architecture, or features
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: file path, component name, feature, or concept to explain
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@ I'll provide a detailed, educational explanation of the code, architecture, or f
|
|
|
13
13
|
**Working Directory**: !`pwd`
|
|
14
14
|
|
|
15
15
|
**Project Structure**:
|
|
16
|
-
!`ls -la src/ 2>/dev/null
|
|
16
|
+
!`ls -la src/ 2>/dev/null`
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
@@ -27,13 +27,13 @@ Investigating the history of: **$ARGUMENTS**
|
|
|
27
27
|
!`git log --follow --diff-filter=A --format="%h %an (%ar): %s" -- "$ARGUMENTS" 2>/dev/null || echo "Unable to determine creation"`
|
|
28
28
|
|
|
29
29
|
**Contributors**:
|
|
30
|
-
!`git log --follow --format="%an" -- "$ARGUMENTS" 2>/dev/null
|
|
30
|
+
!`git log --follow --format="%an" -- "$ARGUMENTS" 2>/dev/null || echo "N/A"`
|
|
31
31
|
|
|
32
32
|
**Recent Activity (last 30 days)**:
|
|
33
33
|
!`git log --since="30 days ago" --follow --format="%h %s (%ar)" -- "$ARGUMENTS" 2>/dev/null || echo "No recent changes"`
|
|
34
34
|
|
|
35
35
|
**Change Frequency**:
|
|
36
|
-
!`git log --follow --oneline -- "$ARGUMENTS" 2>/dev/null
|
|
36
|
+
!`git log --follow --oneline -- "$ARGUMENTS" 2>/dev/null`
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
package/content/commands/i18n.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Audit and set up internationalization for your project
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: optional: audit | setup | extract | add-locale <locale> | file path or component
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -15,15 +15,15 @@ I'll audit your project's internationalization readiness, extract hardcoded stri
|
|
|
15
15
|
**Working Directory**: !`pwd`
|
|
16
16
|
|
|
17
17
|
**Project**:
|
|
18
|
-
!`
|
|
18
|
+
!`head -15 package.json 2>/dev/null`
|
|
19
19
|
|
|
20
20
|
**Existing i18n Setup**:
|
|
21
|
-
!`
|
|
21
|
+
!`grep -i "i18n\|intl\|locale\|next-intl\|react-intl\|react-i18next\|i18next\|vue-i18n\|@formatjs\|lingui\|messageformat\|rosetta\|typesafe-i18n\|paraglide" package.json 2>/dev/null || echo "No i18n dependencies detected"`
|
|
22
22
|
!`ls -d **/locales/ **/translations/ **/i18n/ **/lang/ **/messages/ src/i18n* src/locales* public/locales* 2>/dev/null || echo "No i18n directories found"`
|
|
23
23
|
!`ls i18n.config* i18next.config* next-i18next.config* lingui.config* 2>/dev/null || echo "No i18n config files found"`
|
|
24
24
|
|
|
25
25
|
**Frontend Files**:
|
|
26
|
-
!`find src/ app/ pages/ components/ -name "*.tsx" -o -name "*.jsx" -o -name "*.vue" -o -name "*.svelte" 2>/dev/null
|
|
26
|
+
!`find src/ app/ pages/ components/ -name "*.tsx" -o -name "*.jsx" -o -name "*.vue" -o -name "*.svelte" 2>/dev/null`
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Upgrade dependencies or migrate between framework versions
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: package@version, "all", or migration description
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -20,10 +20,10 @@ I'll help you upgrade dependencies or migrate between framework versions safely.
|
|
|
20
20
|
!`git status --short`
|
|
21
21
|
|
|
22
22
|
**Current Dependencies**:
|
|
23
|
-
!`
|
|
23
|
+
!`head -40 package.json 2>/dev/null`
|
|
24
24
|
|
|
25
25
|
**Lock File**:
|
|
26
|
-
!`ls pnpm-lock.yaml yarn.lock bun.lockb package-lock.json 2>/dev/null
|
|
26
|
+
!`ls pnpm-lock.yaml yarn.lock bun.lockb package-lock.json 2>/dev/null || echo "No lock file found"`
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
package/content/commands/og.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Auto-generate Open Graph images for all pages in your project
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: specific page or route or leave empty for all pages
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -16,25 +16,25 @@ I'll generate on-brand Open Graph images for your pages — each a self-containe
|
|
|
16
16
|
!`ls next.config.* nuxt.config.* astro.config.* remix.config.* svelte.config.* vite.config.* angular.json 2>/dev/null || echo "No framework config detected"`
|
|
17
17
|
|
|
18
18
|
**App Router Pages** (Next.js):
|
|
19
|
-
!`find src/app -name "page.tsx" -o -name "page.jsx" -o -name "page.ts" -o -name "page.js" 2>/dev/null
|
|
19
|
+
!`find src/app -name "page.tsx" -o -name "page.jsx" -o -name "page.ts" -o -name "page.js" 2>/dev/null || echo "No App Router pages"`
|
|
20
20
|
|
|
21
21
|
**Pages Router** (Next.js/Nuxt):
|
|
22
|
-
!`ls src/pages/*.tsx src/pages/**/*.tsx pages/*.tsx pages/**/*.tsx src/pages/*.vue pages/*.vue 2>/dev/null
|
|
22
|
+
!`ls src/pages/*.tsx src/pages/**/*.tsx pages/*.tsx pages/**/*.tsx src/pages/*.vue pages/*.vue 2>/dev/null || echo "No Pages Router files"`
|
|
23
23
|
|
|
24
24
|
**Astro Pages**:
|
|
25
|
-
!`find src/pages -name "*.astro" -o -name "*.md" -o -name "*.mdx" 2>/dev/null
|
|
25
|
+
!`find src/pages -name "*.astro" -o -name "*.md" -o -name "*.mdx" 2>/dev/null || echo "No Astro pages"`
|
|
26
26
|
|
|
27
27
|
**Static HTML**:
|
|
28
|
-
!`find . -maxdepth 3 -name "*.html" ! -path "./node_modules/*" ! -path "./design/*" ! -path "./public/og/*" ! -path "./.next/*" ! -path "./dist/*" 2>/dev/null
|
|
28
|
+
!`find . -maxdepth 3 -name "*.html" ! -path "./node_modules/*" ! -path "./design/*" ! -path "./public/og/*" ! -path "./.next/*" ! -path "./dist/*" 2>/dev/null || echo "No static HTML files"`
|
|
29
29
|
|
|
30
30
|
**Existing OG Images**:
|
|
31
|
-
!`ls public/og/ design/og-* 2>/dev/null
|
|
31
|
+
!`ls public/og/ design/og-* 2>/dev/null || echo "No existing OG images"`
|
|
32
32
|
|
|
33
33
|
**Brand Assets**:
|
|
34
|
-
!`
|
|
34
|
+
!`head -30 design/brand-brief.md 2>/dev/null || echo "No brand brief yet"`
|
|
35
35
|
|
|
36
36
|
**Metadata / SEO**:
|
|
37
|
-
!`grep -rn "openGraph\|og:image\|og:title\|og:description\|meta.*property.*og:" src/ pages/ app/ 2>/dev/null
|
|
37
|
+
!`grep -rn "openGraph\|og:image\|og:title\|og:description\|meta.*property.*og:" src/ pages/ app/ 2>/dev/null || echo "No existing OG meta tags found"`
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Generate a developer onboarding guide for this project
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: optional: focus area like "backend", "frontend", "api", or "contributing"
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -15,19 +15,20 @@ I'll analyze your project and generate a comprehensive onboarding guide for new
|
|
|
15
15
|
**Working Directory**: !`pwd`
|
|
16
16
|
|
|
17
17
|
**Project**:
|
|
18
|
-
!`
|
|
18
|
+
!`head -15 package.json 2>/dev/null`
|
|
19
19
|
|
|
20
20
|
**Structure**:
|
|
21
21
|
!`ls -la`
|
|
22
22
|
|
|
23
23
|
**Git Info**:
|
|
24
|
-
!`git log --oneline -5 2>/dev/null
|
|
24
|
+
!`git log --oneline -5 2>/dev/null`
|
|
25
|
+
!`git branch -a 2>/dev/null`
|
|
25
26
|
|
|
26
27
|
**Existing Docs**:
|
|
27
|
-
!`ls README* CONTRIBUTING* CLAUDE.md docs/ 2>/dev/null
|
|
28
|
+
!`ls README* CONTRIBUTING* CLAUDE.md docs/ 2>/dev/null`
|
|
28
29
|
|
|
29
30
|
**Dev Scripts**:
|
|
30
|
-
!`
|
|
31
|
+
!`grep -A 20 '"scripts"' package.json 2>/dev/null`
|
|
31
32
|
|
|
32
33
|
---
|
|
33
34
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Create an on-brand HTML presentation deck with speaker notes
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: pitch topic/audience or leave empty for guided questionnaire
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -13,19 +13,19 @@ I'll create an on-brand, self-contained HTML presentation deck with keyboard nav
|
|
|
13
13
|
**Working Directory**: !`pwd`
|
|
14
14
|
|
|
15
15
|
**Existing Brand Brief**:
|
|
16
|
-
!`
|
|
16
|
+
!`head -40 design/brand-brief.md 2>/dev/null || echo "No brand brief yet"`
|
|
17
17
|
|
|
18
18
|
**Project Identity**:
|
|
19
|
-
!`
|
|
19
|
+
!`head -30 README.md 2>/dev/null || echo "No README found"`
|
|
20
20
|
|
|
21
21
|
**Package Description**:
|
|
22
|
-
!`
|
|
22
|
+
!`head -10 package.json 2>/dev/null || echo "No package.json found"`
|
|
23
23
|
|
|
24
24
|
**Product Features & Stats**:
|
|
25
|
-
!`grep -rh "<h2\|<h3\|<strong\|features\|pricing\|stats\|metric" src/app/page.tsx src/components/*.tsx README.md 2>/dev/null
|
|
25
|
+
!`grep -rh "<h2\|<h3\|<strong\|features\|pricing\|stats\|metric" src/app/page.tsx src/components/*.tsx README.md 2>/dev/null || echo "No product features detected"`
|
|
26
26
|
|
|
27
27
|
**Design Directory**:
|
|
28
|
-
!`ls design/ 2>/dev/null
|
|
28
|
+
!`ls design/ 2>/dev/null || echo "No existing design directory"`
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
@@ -43,58 +43,73 @@ Parse the brief for: presentation type, audience, slide count, key points, and s
|
|
|
43
43
|
|
|
44
44
|
### If the brief is empty or vague:
|
|
45
45
|
|
|
46
|
-
Conduct a focused discovery
|
|
46
|
+
Conduct a focused discovery using the **AskUserQuestion tool** for interactive selection. The user should be able to click/select options rather than typing numbers. Adapt follow-up questions based on previous answers.
|
|
47
47
|
|
|
48
48
|
#### First, determine the repo context:
|
|
49
49
|
|
|
50
50
|
Check the "Existing Brand Brief", "Project Identity", "Package Description", and "Product Features & Stats" sections above. If meaningful product information was detected (README with clear positioning, product features, stats, metrics, or an existing `design/brand-brief.md`), this is a **brand-rich repo** — the codebase contains enough to derive brand identity, product messaging, and content automatically.
|
|
51
51
|
|
|
52
|
-
####
|
|
53
|
-
|
|
54
|
-
**Q1:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
|
|
78
|
-
####
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
**
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
52
|
+
#### Round 1 — Core questions (single AskUserQuestion call, 3 questions):
|
|
53
|
+
|
|
54
|
+
**Q1** (header: "Presentation type", multiSelect: false):
|
|
55
|
+
Question: "What's the presentation for?"
|
|
56
|
+
Options:
|
|
57
|
+
- label: "Product launch" / description: "Announce a new product, feature, or version"
|
|
58
|
+
- label: "Investor pitch" / description: "Fundraising deck — vision, traction, the ask"
|
|
59
|
+
- label: "Conference talk" / description: "Keynote or session for an audience of peers"
|
|
60
|
+
- label: "Sales demo" / description: "Walk a prospect through product value and pricing"
|
|
61
|
+
|
|
62
|
+
**Q2** (header: "Audience", multiSelect: false):
|
|
63
|
+
Question: "Who's the audience?"
|
|
64
|
+
Options:
|
|
65
|
+
- label: "Investors" / description: "VCs, angels, or strategic capital partners"
|
|
66
|
+
- label: "Developers" / description: "Technical practitioners and engineering teams"
|
|
67
|
+
- label: "Customers / prospects" / description: "Buyers, end users, or decision-makers"
|
|
68
|
+
- label: "Team / internal" / description: "Colleagues, executives, or cross-functional peers"
|
|
69
|
+
|
|
70
|
+
**Q3** (header: "Slide count", multiSelect: false):
|
|
71
|
+
Question: "How many slides should the deck have?"
|
|
72
|
+
Options:
|
|
73
|
+
- label: "6-8 slides" / description: "Tight lightning-talk pacing"
|
|
74
|
+
- label: "10-12 slides (Recommended)" / description: "Standard pitch / launch length"
|
|
75
|
+
- label: "15-18 slides" / description: "Deeper narrative with room for demo and proof"
|
|
76
|
+
- label: "20+ slides" / description: "Long-form workshop or detailed walkthrough"
|
|
77
|
+
|
|
78
|
+
#### Round 2 — Content direction (single AskUserQuestion call, 1 question):
|
|
79
|
+
|
|
80
|
+
**Q4** (header: "Key points", multiSelect: false):
|
|
81
|
+
Question: "What should the deck cover?"
|
|
82
|
+
Options:
|
|
83
|
+
- label: "Derive from codebase" / description: "Auto-extract from README, features, and product info"
|
|
84
|
+
- label: "Narrative arc" / description: "Problem → solution → proof → CTA"
|
|
85
|
+
- label: "Feature-led" / description: "Core capabilities with demos and use cases"
|
|
86
|
+
- label: "Metrics-led" / description: "Traction, growth, and data-driven highlights"
|
|
87
|
+
|
|
88
|
+
#### Round 3 — Brand & style (only for bare repos, single AskUserQuestion call):
|
|
89
|
+
|
|
90
|
+
Only ask these if **no brand files, README positioning, or product info were detected**. In brand-rich repos, skip to confirmation.
|
|
91
|
+
|
|
92
|
+
**Q1** (header: "Style", multiSelect: false):
|
|
93
|
+
Question: "What visual style fits your brand?"
|
|
94
|
+
Options:
|
|
95
|
+
- label: "Minimal / editorial" / description: "Whitespace, typography-driven, structural grids"
|
|
96
|
+
- label: "Bold / dark premium" / description: "High-contrast, oversized type, dark backgrounds, glow"
|
|
97
|
+
- label: "Technical / developer" / description: "Terminal mockups, monospace, code aesthetics"
|
|
98
|
+
- label: "Corporate / clean" / description: "Structured, professional, restrained palette"
|
|
99
|
+
|
|
100
|
+
**Q2** (header: "Tone", multiSelect: false):
|
|
101
|
+
Question: "What's the tone of voice for the deck?"
|
|
102
|
+
Options:
|
|
103
|
+
- label: "Confident / bold" / description: "Declarative, punchy, no hedging"
|
|
104
|
+
- label: "Warm / conversational" / description: "Approachable, human, inviting"
|
|
105
|
+
- label: "Authoritative / precise" / description: "Data-driven, measured, expert"
|
|
106
|
+
- label: "Playful / energetic" / description: "Witty, spirited, brand-forward"
|
|
107
|
+
|
|
108
|
+
#### In brand-rich repos, skip Round 3:
|
|
94
109
|
|
|
95
110
|
The agent will automatically analyze the codebase for brand identity, product features, stats, and messaging. Visual style and content direction will be derived from the existing design system and product information. The user can still override any of these when confirming the brief.
|
|
96
111
|
|
|
97
|
-
After gathering answers, **summarize the complete brief and ask for confirmation** before launching the agent. Include what will be auto-derived from the codebase so the user can correct anything.
|
|
112
|
+
After gathering all answers, **summarize the complete brief and ask for confirmation** before launching the agent. Include what will be auto-derived from the codebase so the user can correct anything.
|
|
98
113
|
|
|
99
114
|
### Launching the Agent
|
|
100
115
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Safely rename, extract, inline, or move code with validation
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: operation target (e.g., "rename:old:new", "extract:ComponentName", "move:src:dest")
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Create a release — version bump, changelog, tag, and publish
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: optional: major | minor | patch | version number | --dry-run
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -20,16 +20,16 @@ I'll orchestrate a complete release for your project — detecting existing rele
|
|
|
20
20
|
!`git status --short`
|
|
21
21
|
|
|
22
22
|
**Current Version**:
|
|
23
|
-
!`
|
|
23
|
+
!`grep '"version"' package.json 2>/dev/null || grep '^version' Cargo.toml 2>/dev/null || grep '^version' pyproject.toml 2>/dev/null || echo "Could not detect version"`
|
|
24
24
|
|
|
25
25
|
**Latest Tags**:
|
|
26
|
-
!`git tag --sort=-version:refname 2>/dev/null
|
|
26
|
+
!`git tag --sort=-version:refname -n5 2>/dev/null || echo "No tags found"`
|
|
27
27
|
|
|
28
28
|
**Commits Since Last Tag**:
|
|
29
|
-
!`git log --oneline 2>/dev/null
|
|
29
|
+
!`git log --oneline 2>/dev/null`
|
|
30
30
|
|
|
31
31
|
**Release Scripts Detected**:
|
|
32
|
-
!`
|
|
32
|
+
!`grep -E '"(release|version|bump|publish|prepublish|postpublish|preversion|postversion|prepublishOnly)"' package.json 2>/dev/null || echo "None in package.json"`
|
|
33
33
|
!`ls .release-it.* .changeset/ .versionrc* lerna.json .releaserc* release.config.* 2>/dev/null || echo "No release tool configs found"`
|
|
34
34
|
!`ls scripts/release* scripts/publish* scripts/version* Makefile 2>/dev/null || echo "No release scripts found"`
|
|
35
35
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Run a focused security scan on your codebase
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: optional: file/folder path, or focus area like "deps", "auth", "api"
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -20,7 +20,7 @@ I'll perform a focused security audit of your codebase, checking for vulnerabili
|
|
|
20
20
|
!`git status --short`
|
|
21
21
|
|
|
22
22
|
**Dependencies**:
|
|
23
|
-
!`
|
|
23
|
+
!`grep -c '"dependencies\|"devDependencies"' package.json 2>/dev/null || echo "No package.json"`
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Design an award-winning landing page with animations and micro-interactions
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: product/project name or description
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -16,10 +16,10 @@ I'll design and build a high-end landing page with polished animations, micro-in
|
|
|
16
16
|
!`ls package.json tsconfig.json next.config.* vite.config.* astro.config.* tailwind.config.* 2>/dev/null || echo "No recognized project files"`
|
|
17
17
|
|
|
18
18
|
**Existing Pages**:
|
|
19
|
-
!`find . -maxdepth 4 -type f \( -name "page.tsx" -o -name "page.jsx" -o -name "index.tsx" -o -name "index.jsx" -o -name "index.html" \) -not -path "*/node_modules/*" 2>/dev/null
|
|
19
|
+
!`find . -maxdepth 4 -type f \( -name "page.tsx" -o -name "page.jsx" -o -name "index.tsx" -o -name "index.jsx" -o -name "index.html" \) -not -path "*/node_modules/*" 2>/dev/null`
|
|
20
20
|
|
|
21
21
|
**Reference Files** (images/videos provided):
|
|
22
|
-
!`ls {{TASKS_DIR}}/references/ 2>/dev/null
|
|
22
|
+
!`ls {{TASKS_DIR}}/references/ 2>/dev/null || echo "No references found"`
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Generate a standup summary from recent git activity
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: optional: timeframe like "3 days" or "this week"
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -17,7 +17,7 @@ Generating a standup summary from recent activity.
|
|
|
17
17
|
**Author**: !`git config user.name 2>/dev/null || echo "Unknown"`
|
|
18
18
|
|
|
19
19
|
**Commits (last 48 hours)**:
|
|
20
|
-
!`git log --since="48 hours ago" --format="%h %an: %s (%ar)" 2>/dev/null
|
|
20
|
+
!`git log --since="48 hours ago" --format="%h %an: %s (%ar)" 2>/dev/null || echo "No recent commits"`
|
|
21
21
|
|
|
22
22
|
**Uncommitted Changes**:
|
|
23
23
|
!`git diff --stat 2>/dev/null || echo "None"`
|
package/content/commands/test.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Run tests with intelligent analysis and fix suggestions
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: optional: file pattern, test name, or "generate" for new tests
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
package/content/commands/todo.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Scan codebase for TODO/FIXME/HACK markers and present an organized summary
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: optional: directory, file, or keyword to filter
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -19,13 +19,13 @@ Scanning the codebase for code markers and annotations.
|
|
|
19
19
|
## Marker Scan
|
|
20
20
|
|
|
21
21
|
**High Priority (FIXME, HACK, XXX)**:
|
|
22
|
-
!`git grep -rn -E '\b(FIXME|HACK|XXX)\b' -- ':!node_modules' ':!.git' 2>/dev/null ||
|
|
22
|
+
!`git grep -rn -E '\b(FIXME|HACK|XXX)\b' -- ':!node_modules' ':!.git' 2>/dev/null || echo "No high-priority markers found"`
|
|
23
23
|
|
|
24
24
|
**Standard (TODO, TASK, TEMP, DEPRECATED)**:
|
|
25
|
-
!`git grep -rn -E '\b(TODO|TASK|TEMP|DEPRECATED)\b' -- ':!node_modules' ':!.git' 2>/dev/null ||
|
|
25
|
+
!`git grep -rn -E '\b(TODO|TASK|TEMP|DEPRECATED)\b' -- ':!node_modules' ':!.git' 2>/dev/null || echo "No standard markers found"`
|
|
26
26
|
|
|
27
27
|
**Informational (NOTE, WARN)**:
|
|
28
|
-
!`git grep -rn -E '\b(NOTE|WARN)\b' -- ':!node_modules' ':!.git' 2>/dev/null ||
|
|
28
|
+
!`git grep -rn -E '\b(NOTE|WARN)\b' -- ':!node_modules' ':!.git' 2>/dev/null || echo "No informational markers found"`
|
|
29
29
|
|
|
30
30
|
## User Filter
|
|
31
31
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Update CLAUDE.md and STATE.md to reflect current project state
|
|
3
|
-
argument-hint:
|
|
3
|
+
argument-hint: optional: section to focus on
|
|
4
4
|
author: "@markoradak"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -13,13 +13,13 @@ I'll scan the project and update CLAUDE.md and STATE.md to reflect the current s
|
|
|
13
13
|
**Working Directory**: !`pwd`
|
|
14
14
|
|
|
15
15
|
**Existing CLAUDE.md**:
|
|
16
|
-
!`
|
|
16
|
+
!`head -5 CLAUDE.md 2>/dev/null || echo "No CLAUDE.md found"`
|
|
17
17
|
|
|
18
18
|
**Project Detection**:
|
|
19
19
|
!`ls package.json tsconfig.json Cargo.toml go.mod pyproject.toml requirements.txt composer.json Gemfile pom.xml build.gradle mix.exs 2>/dev/null || echo "No recognized project files"`
|
|
20
20
|
|
|
21
21
|
**Source Files**:
|
|
22
|
-
!`find . -maxdepth 3 -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" -o -name "*.py" -o -name "*.rs" -o -name "*.go" -o -name "*.java" -o -name "*.rb" -o -name "*.ex" -o -name "*.php" \) -not -path "*/node_modules/*" -not -path "*/.git/*" 2>/dev/null
|
|
22
|
+
!`find . -maxdepth 3 -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" -o -name "*.py" -o -name "*.rs" -o -name "*.go" -o -name "*.java" -o -name "*.rb" -o -name "*.ex" -o -name "*.php" \) -not -path "*/node_modules/*" -not -path "*/.git/*" 2>/dev/null`
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|