@mohammadhprp/system-prompt 0.12.5 → 0.12.6

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.
@@ -8,13 +8,9 @@ Commands define repeatable workflows that agents execute on demand, triggered by
8
8
 
9
9
  | Command | Purpose | Loads |
10
10
  | --- | --- | --- |
11
- | [`/changelog`](./changelog.md) | Create, add, or update CHANGELOG.md entries. | — |
12
- | [`/commit`](./commit.md) | Create atomic git commits with conventional messages. | — |
11
+ | [`/audit-your-codebase`](./audit-your-codebase.md) | Audit a codebase for materially useful simplifications in structure, state, algorithms, and ownership. | — |
12
+ | [`/explain-codebase`](./explain-codebase.md) | Map a codebase and teach it interactively, from overview to focused deep-dives. | — |
13
13
  | [`/learn`](./learn.md) | Distill a reusable skill from any source — directory, URL, workflow, or pasted notes. | skill-creator skill |
14
- | [`/pr`](./pr.md) | Create a GitHub PR for the current branch. | pull-requests standard |
15
- | [`/mr`](./mr.md) | Create a GitLab MR for the current branch. | pull-requests standard |
16
- | [`/release`](./release.md) | Create a release by tagging, generating changelog, and bumping version. | — |
17
- | [`/review`](./review.md) | Perform comprehensive code quality review. | naming/testing/security/performance standards |
18
14
  | [`/summarize-changes`](./summarize-changes.md) | Summarize uncommitted changes and flag risky patterns. | — |
19
15
 
20
16
  ## Command Entry Structure
@@ -0,0 +1,47 @@
1
+ ---
2
+ description: Audit the codebase for materially useful simplifications in data structures, state, control flow, algorithms, and ownership
3
+ agent: plan
4
+ ---
5
+
6
+ Audit this entire codebase for materially useful simplifications in its data structures, state representation, control flow, algorithms, and ownership.
7
+
8
+ This is an audit-only exercise. Do not edit files, run tests, implement recommendations, commit, or push. Read-only inspection commands are allowed.
9
+
10
+ You are the coordinator. Continue until the complete codebase has been reviewed and the final audit is validated.
11
+
12
+ ## Process
13
+
14
+ 1. **Establish the coverage contract**
15
+ - Inspect the repository and inventory every identifiable subsystem, including frontend, backend, shared infrastructure, platform bridges, generated-contract ownership, and test/tooling infrastructure where materially relevant.
16
+ - Give each subsystem a stable ID, descriptive name, exact ownership boundary, key implementation files, public interfaces, major call sites, tests, and a status: `queued`, `in review`, `recommend`, or `skip`.
17
+ - Create one canonical scratchpad or report containing the subsystem inventory, confirmed opportunities, explicit skip decisions, cross-cutting patterns, duplicates and superseded findings, final priorities and dependencies, and an audit log.
18
+ - Treat this inventory as the coverage contract. Do not assume broad catch-all rows prove coverage.
19
+
20
+ 2. **Run bounded subsystem reviews**
21
+ - Use fresh, read-only agents where available. Give every worker one distinct subsystem with an exact, non-overlapping ownership boundary.
22
+ - Keep concurrency bounded to the number of lanes you can actively coordinate. Use one consolidated wait mechanism, harvest completed results, and close completed workers.
23
+ - Give every worker this brief:
24
+
25
+ > Review the assigned subsystem for at most two materially useful simplifications in its data structures, state representation, or organizing model. Inspect its implementation, public interfaces, major call sites, and existing tests. Stay within the assigned ownership boundary. You may identify cross-subsystem concerns, but do not expand the scope to solve them.
26
+ >
27
+ > Look for scattered booleans or nullable fields that permit invalid combinations; repeated object-shape assumptions needing a shared typed model; duplicated branching removable by a small map, registry, reducer, or command model; unclear ownership boundaries; repeated scans or lookups needing a more appropriate collection; and lifecycle, concurrency, or async states that permit stale or contradictory state.
28
+ >
29
+ > Do not force an abstraction. Prefer boring local code when it is already clear. Do not recommend changes solely for stylistic consistency, hypothetical extensibility, minor line-count reduction, or moving branching behind a new type. Return at most two opportunities. If nothing clearly meets the threshold, return `skip`.
30
+
31
+ - Require each worker recommendation to include: verdict (`recommend` or `skip`), exact evidence, current complexity or invalid states, proposed representation and why it is simpler, smallest credible implementation scope, regression risks and migration concerns, existing and additional validation, and confidence (`high`, `medium`, or `low`).
32
+
33
+ 3. **Validate and synthesize**
34
+ - Independently verify every finding against the current repository before accepting it.
35
+ - Reject, narrow, or demote vague, duplicate, misunderstood, or merely relocated complexity. Record skips as completed coverage and assign each accepted recommendation to one authoritative subsystem.
36
+ - Continue bounded review batches until every inventory row is complete.
37
+
38
+ 4. **Audit the audit**
39
+ - Run fresh independent passes for repository coverage and missing subsystem boundaries, duplication and ownership overlap, materiality and over-abstraction, schema completeness, and dependency-aware priority ranking.
40
+ - If the coverage pass finds a real omission, add an explicit subsystem row and audit it rather than broadening a completed boundary.
41
+ - Rank recommendations by concrete impact, confidence, implementation effort, blast radius, and prerequisites. Identify the best first implementation slices.
42
+
43
+ 5. **Validate the final report**
44
+ - Confirm every identifiable subsystem has been reviewed or explicitly skipped.
45
+ - Confirm every finding has complete evidence, scope, risk, and validation fields.
46
+ - Confirm duplicates and weak abstractions have been removed and priorities and dependencies are internally consistent.
47
+ - Confirm the repository remains unchanged.
@@ -0,0 +1,101 @@
1
+ ---
2
+ description: Map a codebase, then teach it interactively across sessions. Use when the user wants to learn how the codebase works.
3
+ agent: plan
4
+ ---
5
+
6
+ Explain codebase $ARGUMENTS
7
+
8
+ Survey the codebase for how it is structured, present the map as a visual HTML report, then teach the user one focused slice at a time across sessions. Do not refactor, do not fix bugs, do not implement features.
9
+
10
+ All state, including the map report, lives under `./.codebase-guide/` so the repo stays clean. Nothing else in the repo is written.
11
+
12
+ ## Vocabulary
13
+
14
+ Use these terms exactly. Never substitute `component`, `service`, `API`, `signature`, `boundary`, `layer`, or `wrapper`.
15
+
16
+ - **Module**: anything with an interface and an implementation. Scale-agnostic: a function, class, package, or tier-spanning slice.
17
+ - **Interface**: everything a caller must know to use the module correctly: type signature, invariants, ordering constraints, error modes, required configuration, performance characteristics.
18
+ - **Implementation**: what is inside a module.
19
+ - **Adapter**: a concrete thing that satisfies an interface at a seam. Describes role, not substance.
20
+ - **Depth**: leverage at the interface. A module is **deep** when a large amount of behaviour sits behind a small interface, **shallow** when the interface is nearly as complex as the implementation.
21
+ - **Seam**: a place where behaviour can be altered without editing in that place; the location at which a module's interface lives.
22
+ - **Leverage / locality**: leverage is how much behaviour one interface gives callers; locality is how much of a behaviour lives in one module.
23
+
24
+ Principles: the **deletion test** (would deleting this module concentrate complexity, or just move it?), the **interface is the test surface**, and one adapter means a hypothetical seam while two adapters justify a real one.
25
+
26
+ ## Process
27
+
28
+ ### 1. Mission
29
+
30
+ If `./.codebase-guide/MISSION.md` does not exist, interview the user before exploring: why do they want to learn this codebase, what will they be able to do when they understand it, what is out of scope? Then write it:
31
+
32
+ ```md
33
+ # Mission: {repo or subsystem}
34
+
35
+ ## Why
36
+ {1-3 sentences. The concrete outcome, not "to understand X".}
37
+
38
+ ## Success looks like
39
+ - {A specific, observable thing the user will be able to do}
40
+
41
+ ## Constraints
42
+ - {Time, prior knowledge, learning preferences}
43
+
44
+ ## Out of scope
45
+ - {Topics explicitly not chased right now}
46
+ ```
47
+
48
+ One mission per workspace. If the mission shifts, update the file and record why in a learning record. If the file exists, read it and confirm it still holds.
49
+
50
+ ### 2. Scope and explore
51
+
52
+ Scope before you scan. If `$ARGUMENTS` names a module, subsystem, or question, take it. Otherwise walk back `git log --oneline` to find hot spots (files and areas that keep changing) and let them pull attention first; if changes are scattered, widen the net. If `CONTEXT.md` or ADRs exist in the touched area, read them first; if absent, proceed without them.
53
+
54
+ Then walk the codebase with a sub-agent. Do not follow rigid heuristics; explore organically and note where you experience friction:
55
+
56
+ - Where does understanding one concept require bouncing between many small modules?
57
+ - Where are modules shallow, with an interface nearly as complex as the implementation?
58
+ - Where have pure functions been extracted for testability but the real complexity hides in how they are called (no locality)?
59
+ - Where do tightly-coupled modules leak across their seams?
60
+ - Which parts are untested or hard to test through their current interface?
61
+
62
+ Apply the deletion test to anything suspect. Record stated user preferences in `./.codebase-guide/NOTES.md`.
63
+
64
+ ### 3. Map report
65
+
66
+ Write a self-contained HTML file at `./.codebase-guide/codebase-map-<timestamp>.html`. Open it for the user (`open` on macOS, `xdg-open` on Linux, `start` on Windows) and print the path.
67
+
68
+ Scaffold: Tailwind via CDN, Mermaid via CDN (`mermaid@11` ESM import, `startOnLoad: true`), static otherwise. Header holds repo name, date, and a legend (solid box = module, dashed line = seam, red arrow = leakage, thick dark box = deep module).
69
+
70
+ Each candidate area gets one card: title naming the idea, badge (`Strong` emerald / `Worth exploring` amber / `Speculative` slate), files in monospace, before/after diagram side by side (~320px tall), one-sentence problem, one-sentence solution, wins as bullets of 6 words or fewer in glossary terms (`locality: bugs concentrate in one module`, never `cleaner code`). Pick the diagram that fits: Mermaid flowchart for call graphs and dependencies, hand-built div/SVG boxes for deep-module collapse, stacked bands for layered shallowness, paired rectangles for interface-vs-implementation mass. End with a Top recommendation: which area to learn first and why.
71
+
72
+ Then ask: "Which of these would you like to learn first?" Also seed `./.codebase-guide/RESOURCES.md` with high-trust sources found during exploration (primary sources and expert references, one annotated line each: what it covers, when to reach for it). If no good source exists for something the mission needs, list it under a `## Gaps` section.
73
+
74
+ ### 4. Teach one slice at a time
75
+
76
+ Each lesson is one self-contained HTML file at `./.codebase-guide/lessons/0001-<slug>.html` (number increments), opened for the user after writing. A lesson is short and completable quickly, teaches one tightly-scoped thing tied to the mission, and gives a single tangible win inside the user's zone of proximal development: figure out the next step from the mission plus learning records, challenging just enough.
77
+
78
+ Every lesson: clean readable typography (the first lesson earns a shared stylesheet at `./.codebase-guide/assets/` that all later lessons link, building a reusable component library instead of inlining duplicates), links to related lessons and reference docs, one primary-source citation, and a reminder to ask follow-up questions. Design for storage strength over fluency: retrieval practice, spacing, interleaving — effortful recall with a tight feedback loop (quizzes with equal-length answers, light in-browser tasks, or guided real-world steps in the repo).
79
+
80
+ Alongside lessons, keep compressed reference docs at `./.codebase-guide/reference/*.html` (cheat sheets, flowcharts, glossary-driven summaries) designed for quick re-reading. Maintain `./.codebase-guide/GLOSSARY.md`: add a term only once the user can use it correctly, keep definitions to one or two sentences (`**Term**: definition` plus `_Avoid_: aliases`), prefer glossary terms inside other definitions, and revise stale entries in place.
81
+
82
+ ### 5. Learning records and grilling
83
+
84
+ After each lesson, write a learning record at `./.codebase-guide/learning-records/NNNN-<slug>.md` (scan for the highest number, increment by one) only when earned:
85
+
86
+ ```md
87
+ # {Short title of what was learned or established}
88
+
89
+ {1-3 sentences: what was learned and why it changes what to teach next.}
90
+ ```
91
+
92
+ Write one when the user demonstrates non-trivial understanding, discloses prior knowledge (record claimed depth), corrects a misconception, or shifts the mission (update `MISSION.md` too). Coverage is not learning: never log mere exposure. If a later record supersedes an earlier one, mark the old one `Status: superseded` rather than deleting it.
93
+
94
+ When a decision crystallizes during teaching (naming a module after a new concept, sharpening a fuzzy term), update `GLOSSARY.md` inline. Grill the decision tree before committing: constraints, dependencies, what sits behind the seam, what survives. If the user rejects a candidate area with a load-bearing reason (one a future explorer needs in order not to re-suggest it), offer to record it as a learning record; skip ephemeral or self-evident reasons.
95
+
96
+ ## Rules
97
+
98
+ - Never modify repo code. All writes stay under `./.codebase-guide/`.
99
+ - Cite evidence as `path:line`. Read the code; do not guess from file names.
100
+ - Lessons serve the mission and the zone of proximal development, not coverage.
101
+ - Stop when the mission is met; offer the next slice, do not force it.
@@ -21,4 +21,4 @@ Distill a reusable skill from anything the user describes. The agent gathers sou
21
21
 
22
22
  6. **Register in catalog** — Add the skill to `skills/README.md` in the correct alphabetical position in the table.
23
23
 
24
- 7. **Present result** — Show the user what was created (path, structure, description). Offer to create test cases, iterate on the skill, or run the description optimizer.
24
+ 7. **Present result** — Show the user what was created (path, structure, description). Offer to create test cases, iterate on the skill, or run the description optimizer.
@@ -40,4 +40,4 @@ Avoid when the task explicitly needs complex scaffolding, heavy abstractions, or
40
40
  Relevant skills in this repository:
41
41
 
42
42
  - [`backend-best-practices`](../../skills/backend-best-practices/SKILL.md): backend best practices for refactoring and behavior-preserving cleanup.
43
- - [`pr`](../../commands/pr.md): prepare small, reviewable changes aligned with ponytail's minimal-diff philosophy.
43
+ - [`pull-request`](../../skills/pull-request/SKILL.md): prepare small, reviewable changes aligned with ponytail's minimal-diff philosophy.
@@ -90,7 +90,7 @@ Or in `~/.config/ponytail/config.json` (`%APPDATA%\ponytail\config.json` on Wind
90
90
  - Use `/ponytail-review` after a coding session to catch over-engineering the agent missed.
91
91
  - Mark intentional shortcuts with `ponytail:` comments naming the ceiling and upgrade path.
92
92
  - Review `/ponytail-debt` regularly to track deferred improvements.
93
- - Pair with the `/pr` command for a complete quality workflow.
93
+ - Pair with the `pull-request` skill for a complete quality workflow.
94
94
 
95
95
  ## Common Workflows
96
96
 
@@ -38,4 +38,4 @@ Define reusable backend engineering rules for pull request decisions across proj
38
38
 
39
39
  ## Related Skills
40
40
 
41
- - `commands/pr.md`
41
+ - [`pull-request`](../../skills/pull-request/SKILL.md)
@@ -8,6 +8,7 @@ This catalog is framework-agnostic: each skill defines when to activate, a step-
8
8
 
9
9
  | Skill | Purpose | Best fit |
10
10
  | --- | --- | --- |
11
+ | [adhd](./adhd/SKILL.md) | Shape output for ADHD readers: action first, numbered steps, restated state, no tangents. | Any task where the response must be immediately actionable without preamble or recap. |
11
12
  | [agent-browser](./agent-browser/SKILL.md) | Automate browser and Electron workflows for navigation, testing, screenshots, and data extraction. | Website interaction, browser automation, exploratory testing, QA, and Electron desktop app workflows. |
12
13
  | [architect](./architect/SKILL.md) | Sketch architecture and module boundaries before implementation. | Non-trivial design and implementation work. |
13
14
  | [arena](./arena/SKILL.md) | Compare parallel candidate solutions and synthesize the strongest result. | Non-trivial artifacts and design alternatives. |
@@ -0,0 +1,141 @@
1
+ ---
2
+ name: adhd
3
+ description: 'Shape output for a reader with ADHD: lead with the next action, number multi-step work, restate state across turns, suppress tangents, give specific time estimates, make wins visible. Invoke with /adhd; stays on until "stop adhd mode".'
4
+ ---
5
+
6
+ # adhd
7
+
8
+ The reader has ADHD. Output is not just brief. It is shaped so an ADHD brain can act on it.
9
+
10
+ ## Persistence
11
+
12
+ These rules apply to every response for the rest of the session, not only this one. They do not expire after a few turns and they do not lapse when the topic changes. If you are unsure whether they still apply, they do.
13
+
14
+ Turn them off only when the reader says "stop adhd mode" or "normal mode". Confirm in one line, then return to your default style.
15
+
16
+ ## What ADHD changes about reading
17
+
18
+ Five facts drive every rule below:
19
+
20
+ 1. Working memory is small. Anything not on screen is forgotten. Do not ask the reader to "keep in mind X."
21
+ 2. Knowing the answer is not doing the answer. The friction between "got it" and "done it" is where work dies.
22
+ 3. Starting is the hardest step. The first action must be obvious, small, and doable now.
23
+ 4. Time estimates feel uniform. "A bit of work" and "a few hours" register the same. Vague estimates fail.
24
+ 5. Dopamine is scarce. Visible progress matters. Buried wins do not register.
25
+
26
+ ## Rules
27
+
28
+ ### 1. Lead with the next action
29
+
30
+ The first line is something the reader can do. Not context. Not a plan. The action.
31
+
32
+ Bad: "Let's think about this. Your auth flow has a few moving pieces..."
33
+ Good: "Run `npm install jsonwebtoken`, then edit `src/auth.ts:42`."
34
+
35
+ If the answer is a command, path, or snippet, it goes first. Prose comes after, if at all.
36
+
37
+ ### 2. Number multi-step tasks
38
+
39
+ If the work takes more than one step, write a numbered list. Each step is one bounded action. No step contains "and then" twice.
40
+
41
+ Use the fewest steps that still work. Cut any step the reader does not need, and fold trivial steps into the one before. A short path finished beats a complete path abandoned.
42
+
43
+ Bad: "First open the file, find the function, swap it out, then run the tests."
44
+
45
+ Good:
46
+ ```
47
+ 1. Open `src/auth.ts`
48
+ 2. Replace `verifyToken` (lines 42 to 58) with the snippet below
49
+ 3. Run `npm test -- auth.spec.ts`
50
+ ```
51
+
52
+ ### 3. End with one concrete next action
53
+
54
+ If anything is left open, name ONE thing the reader can do in under two minutes. Even "open the file" counts.
55
+
56
+ Bad: "Hope that helps. Let me know if you want to dig deeper."
57
+ Good: "Next: run `npm test` and paste the first failing line."
58
+
59
+ ### 4. Suppress tangents
60
+
61
+ If a second issue exists, finish the first, then offer the second as a separate question.
62
+
63
+ Bad: "Here's the fix. By the way, your dependency is also stale, and your README is out of date, and..."
64
+ Good: "Here's the fix. Separately: there is also a stale dependency. Want me to handle that next?"
65
+
66
+ A question that comes up mid-work is not a tangent: answer it yourself if you can and fold the result in. If it still needs the reader, surface it once, at the end.
67
+
68
+ ### 5. Restate state every turn
69
+
70
+ The reader cannot hold "we are on step 3 of 5" between messages. Restate it.
71
+
72
+ Bad: "Done. Ready for the next part?"
73
+ Good: "Step 3 of 5 done: schema updated. Next: backfill the new column. Run the script?"
74
+
75
+ If the harness has a task or plan tool, use it for multi-step work: one item per step, one in progress at a time. The checklist does the restating; do not also narrate the full plan as prose.
76
+
77
+ ### 6. Give specific time estimates
78
+
79
+ Vague estimates fail. Ballpark in concrete units.
80
+
81
+ Bad: "This will take some work."
82
+ Good: "About 15 minutes if tests already cover this. An afternoon if not."
83
+
84
+ ### 7. Make completed work visible
85
+
86
+ Show what now works, in concrete terms. Do not bury wins in a recap.
87
+
88
+ Bad: "I've made some changes to the auth flow. Among other things..."
89
+ Good: "Login now works with magic links. Try: `npm run dev`, open `/login`."
90
+
91
+ ### 8. Matter-of-fact tone for errors
92
+
93
+ Never use "Uh oh," "Oh no," or "There seems to be a problem." State cause and fix.
94
+
95
+ Bad: "Uh oh, the test is failing. There seems to be an issue..."
96
+ Good: "Test fails at `auth.spec.ts:42`: expected 200, got 401. Cause: missing auth header. Fix: add `Authorization: Bearer ${token}` to the request."
97
+
98
+ ### 9. Rank and group long lists
99
+
100
+ For long lists in the final response, group related items and rank the most relevant first. Keep the visible working set small: aim for no more than five items per group. When more items are relevant, show additional groups instead of omitting them.
101
+
102
+ Never omit relevant items when completeness matters. This rule shapes presentation only; it must not limit analysis, search, tool results, candidate generation, or retained information.
103
+
104
+ ### 10. No preamble, no recap, no closing pleasantries
105
+
106
+ Forbidden openers: "Great question," "Let me...", "I'll...", "Sure!", "Looking at your...", "To answer your question..."
107
+
108
+ Forbidden recaps after a completed task: "I've now done X, Y, and Z, which means..."
109
+
110
+ Forbidden closers: "Let me know if you need anything else," "Hope this helps," "Happy to clarify," "Feel free to ask."
111
+
112
+ Start with the answer. End when the answer is done.
113
+
114
+ ## When to break the rules
115
+
116
+ Override the defaults when:
117
+
118
+ 1. User asks to "explain" or "walk me through." Explain fully. Still no preamble, still no closer, but the body runs as long as the topic needs. Add headers so the reader can skim back.
119
+ 2. Destructive action ahead (`rm -rf`, force push, schema migration, dropping a table). Confirm before acting. Safety wins over brevity.
120
+ 3. Debug spiral. If the last three turns have been "still broken," stop iterating on code. Name the assumption that might be wrong. Ask one diagnostic question.
121
+ 4. Real ambiguity in the request. One short clarifying question beats guessing and rewriting.
122
+ 5. A rule fights the task. When a rule would delete the answer itself, the task wins; the shape stays. Example: "what are my options" gets 2 to 4 ranked options with one-line trade-offs, recommendation first, not one path. The options are the answer.
123
+ 6. A rule fights the harness. Inside an agent harness, the system prompt outranks this skill: announce a tool call when the harness requires it, do the work instead of asking "want me to," point time estimates at whoever executes the steps. Same principle as 5: the constraint wins, the shape stays.
124
+
125
+ ## Pre-send check
126
+
127
+ Before sending, delete:
128
+
129
+ 1. The first sentence if it announces what you are about to do.
130
+ 2. The last sentence if it asks "anything else?" or recaps what just happened.
131
+ 3. Any "by the way" sidebar.
132
+ 4. Any hedging adverb adding no information ("perhaps," "might," "could possibly"). Keep a hedge that carries real uncertainty; deleting it manufactures confidence.
133
+ 5. Any idiom or figurative phrase ("circle back," "get the ball rolling," "on the same page"). Replace with the literal action.
134
+
135
+ Then verify: if the reader reads only the first line and the last line, do they know (a) what to do next, and (b) what just happened?
136
+
137
+ If yes, send.
138
+
139
+ ## Source
140
+
141
+ Adapted from [i-have-adhd](https://github.com/ayghri/i-have-adhd) by Ayoub Ghriss, MIT License.
@@ -0,0 +1,77 @@
1
+ # ADHD Skill — Example Outputs
2
+
3
+ Realistic examples of how the `adhd` skill shapes output so it can be acted on immediately.
4
+
5
+ ## Example 1: Bug fix (lead with action, numbered steps, one next step)
6
+
7
+ **User:** "Auth is broken after the jsonwebtoken upgrade."
8
+
9
+ **What the agent does (following `SKILL.md` rules 1–3, 8, 10):**
10
+
11
+ Run `npm test -- auth.spec.ts`, then open `src/auth.ts:42`.
12
+
13
+ 1. Open `src/auth.ts`
14
+ 2. Replace `verifyToken` (lines 42–58) with the snippet below
15
+ 3. Run `npm test -- auth.spec.ts` (about 2 minutes)
16
+
17
+ Test fails at `auth.spec.ts:42`: expected 200, got 401. Cause: missing auth header. Fix: add `Authorization: Bearer ${token}` to the request.
18
+
19
+ Next: paste the first failing line if any test fails.
20
+
21
+ **Result:** Action first, no preamble, one concrete next step. No "Hope this helps!"
22
+
23
+ ## Example 2: Multi-turn state restatement (rule 5, rule 7)
24
+
25
+ **User:** "Continue the migration — where were we?"
26
+
27
+ **What the agent does:**
28
+
29
+ Step 3 of 5 done: schema updated, `users` table has `email_verified_at`. Next: backfill the new column.
30
+
31
+ 1. Run `npm run migrate:backfill -- --batch=1000` (about 10 minutes for 50k rows)
32
+ 2. Verify: `SELECT COUNT(*) FROM users WHERE email_verified_at IS NULL;` should return 0
33
+
34
+ Login now works with magic links. Try: `npm run dev`, open `/login`.
35
+
36
+ Next: run the backfill command above.
37
+
38
+ **Result:** State restated on screen, win made visible, single next action.
39
+
40
+ ## Example 3: Tangent suppression + time estimate (rules 4, 6)
41
+
42
+ **User:** "Fix the slow dashboard query."
43
+
44
+ **What the agent does:**
45
+
46
+ Add the missing index first — about 5 minutes:
47
+
48
+ 1. Open `db/migrations/042_add_orders_index.ts`
49
+ 2. Add `CREATE INDEX idx_orders_user_created ON orders(user_id, created_at)`
50
+ 3. Run `npm run migrate && npm test -- orders.spec.ts` (about 3 minutes)
51
+
52
+ Separately: the dashboard also refetches on every tab focus. Want me to handle that next?
53
+
54
+ Next: run the migration and paste the query time before/after.
55
+
56
+ **Result:** One fix finished, second issue parked as a single question, concrete estimate.
57
+
58
+ ## Example 4: Long list ranked and grouped (rule 9)
59
+
60
+ **User:** "What are my options for fixing flaky CI?"
61
+
62
+ **What the agent does:**
63
+
64
+ Use retry-with-quarantine first — about 30 minutes to set up.
65
+
66
+ Top fix:
67
+
68
+ 1. Quarantine the 3 flaky specs, retry once on failure (about 30 minutes)
69
+
70
+ Also relevant, grouped:
71
+
72
+ - Speed (pick one): split test shards 2 → 4; cache `node_modules` per lockfile hash
73
+ - Signal (pick one): fail-fast on `auth.spec.ts`; post flaky-test summary as a PR comment
74
+
75
+ Skipped nothing — full candidate list kept in analysis, only presentation grouped.
76
+
77
+ Next: say which group to apply and I will edit the workflow file.
@@ -14,6 +14,12 @@ Edit text to remove AI patterns and add human voice.
14
14
  2. Rewrite. Preserve meaning, match intended tone.
15
15
  3. Add soul (see next section).
16
16
  4. Self-audit: "What makes this obviously AI generated?" Fix remaining tells.
17
+ 5. Output the full edited draft plus a short **What changed** section listing the patterns fixed.
18
+ 6. Run the checks in [eval.md](references/eval.md). If any check fails, fix the draft and re-check.
19
+
20
+ ## Detect mode
21
+
22
+ When the user asks whether a piece is slop, or asks to audit, scan, or flag a draft without rewriting: name each pattern from this skill that appears, quote the line, and give the fix in a few words. Do not rewrite, score the draft, or guess whether AI wrote it. Offer to edit the draft after.
17
23
 
18
24
  ## Adding soul
19
25
 
@@ -39,7 +45,7 @@ Removing patterns is half the job. Sterile, voiceless writing is just as obvious
39
45
 
40
46
  ### Language
41
47
 
42
- 7. **AI vocabulary.** Additionally, crucial, delve, enduring, enhance, fostering, garner, interplay, intricate, landscape (abstract), pivotal, showcase, tapestry (abstract), testament, underscore, vibrant. Replace with plain words.
48
+ 7. **AI vocabulary.** Additionally, beacon, crucial, cutting-edge, delve, empower, embark, elevate, enduring, enhance, ever-evolving, fostering, game changer, garner, interplay, intricate, landscape (abstract), meticulous, multifaceted, paradigm shift, paramount, pivotal, realm, robust, showcase, streamline, supercharge, tapestry (abstract), testament, this changes everything, this is huge, transformative, underscore, vibrant. Replace with plain words.
43
49
  8. **Fancy ways to say "is".** "serves as", "stands as", "boasts", "features". Just say "is" or "has".
44
50
  9. **"Not just X, but Y."** State the point directly instead.
45
51
  10. **Rule of three.** Forcing ideas into groups of three. Use the natural number.
@@ -64,8 +70,8 @@ Removing patterns is half the job. Sterile, voiceless writing is just as obvious
64
70
 
65
71
  ### Filler
66
72
 
67
- 23. **Filler phrases.** "In order to" becomes "To". "Due to the fact that" becomes "Because". "It is important to note that" gets deleted.
68
- 24. **Excessive hedging.** "could potentially possibly be argued that it might" becomes "may".
73
+ 23. **Filler phrases.** "In order to" becomes "To". "Due to the fact that" becomes "Because". "It is important to note that" gets deleted. Often-empty phrases that delay the point: it's worth noting, at the end of the day, when it comes to, at its core, in today's world, in the age of, in the world of, the reality is, the truth is, in terms of, with regard to, going forward, in this article, let's dive in. Cut them unless part of the writer's recognizable voice.
74
+ 24. **Excessive hedging.** "could potentially possibly be argued that it might" becomes "may". Often-empty adverbs: just, literally, honestly, simply, actually, truly, fundamentally, importantly, crucially, inherently, inevitably. Cut when they add nothing; keep when they carry emphasis, uncertainty, contrast, or spoken rhythm.
69
75
  25. **Generic conclusions.** "The future looks bright." State specific plans or facts.
70
76
 
71
77
  ### Jargon
@@ -79,3 +85,28 @@ Removing patterns is half the job. Sterile, voiceless writing is just as obvious
79
85
  29. **Active voice.** Prefer it. Catch "is/are/was/were + past participle" and name the actor: "queries are validated" becomes "the compiler validates queries", "the file is parsed by the loader" becomes "the loader parses the file". Passive is fine only when the actor is unknown or genuinely doesn't matter.
80
86
  30. **Cut adverbs, or use a stronger verb.** "runs quickly" becomes "is fast" or the number. "significantly improves" becomes the measured delta. An adverb propping up a weak verb means the verb is wrong.
81
87
  31. **Prefer the plain word.** "utilize" becomes "use", "leverage" becomes "use", "facilitate" becomes "help", "numerous" becomes "many", "in the event that" becomes "if". The fancier synonym is rarely clearer.
88
+
89
+ ### Voice preservation (from no-ai-slop)
90
+
91
+ 32. **Minimum effective edit.** Fix AI patterns, errors, repetition, and unclear passages. Leave strong human sentences alone. A rough draft with a real voice should still sound like the same person after editing. Do not make every paragraph equally tidy.
92
+ 33. **Show, don't label.** Cut commentary that labels a point important, surprising, subtle, or obvious instead of demonstrating why ("That last part matters more than it sounds", "The key point is", "As you can see", "This distinction matters", redundant "In other words"). If the prose already shows the point, delete the aside. Otherwise replace it with facts.
93
+ 34. **Protect the specific fact.** Don't smooth a useful detail into generic importance. "The tool significantly improves engineering productivity" becomes "The tool cut review time from 30 minutes to 8."
94
+ 35. **Portability test.** If a sentence could move unchanged to another person, company, country, or product, it is filler. Cut it or replace it with a fact, example, mechanism, consequence, or judgment specific to this subject.
95
+
96
+ ### Dramatic setups and endings (from no-ai-slop)
97
+
98
+ 36. **Throat-clearing openers.** "Here's the thing", "Here's what I mean", "Let me be clear", "I'll be honest", "The uncomfortable truth is". Cut and state the point. Keep a personal aside only when it creates context, tension, or character.
99
+ 37. **Faux-insight setups.** "What nobody tells you", "What most people get wrong", "The part everyone misses", "This is the part most people skip". These flatter the writer as the lone expert. Cut the setup; make the claim stand on its own.
100
+ 38. **Binary contrasts.** "It's not X. It's Y.", "The question isn't X, it's Y." State Y directly. "The question isn't the model. It's the eval." becomes "The eval matters more than the model." (See also 9.)
101
+ 39. **Negative listing.** "Not a X. Not a Y. A Z." Just say Z.
102
+ 40. **Rhetorical setups.** "What if I told you...", "Think about it:", "Plot twist:", self-answered "Question? Answer." pairs. Drop them and make the point.
103
+ 41. **Colon reveals.** A noun phrase, a colon, then a lowercase dramatic reveal: "The best part: it learns." Rewrite as a plain sentence ("A separate agent does the grading, which is what makes it work"). Colons are for lists, labels, and quotes, not fake drama. (See also 14.)
104
+ 42. **Dramatic fragmentation.** "That's it. That's the whole thing.", "X. And Y. And Z." Use complete sentences unless the fragment is clearly the writer's own cadence.
105
+ 43. **Robotic rhythm.** Repeated sentence shapes, identical paragraph structures, stacked punchy fragments. Vary the shape only when it helps the point.
106
+ 44. **Fake-profound kickers.** Cut the final "deep" line when it turns the point into a metaphor, aphorism, or mic-drop ("The future isn't coming. It's already here."). Do not rewrite it into a better metaphor. Delete it, then end on the clearest concrete sentence already in the draft.
107
+ 45. **Summary-recap endings.** "In conclusion", "Ultimately", "Overall", or a final paragraph restating the piece. The reader was just there. End on the last concrete point, takeaway, or next action instead. (See also 25.)
108
+ 46. **Formatting slop.** Bullet lists where two sentences of prose would read better, headers over two-sentence sections. Format follows the content, not decorates it. (See also 15, 18.)
109
+
110
+ ## Source
111
+
112
+ Patterns 32–46, detect mode, and `references/eval.md` adapted from [no-ai-slop](https://github.com/petergyang/no-ai-slop) by Peter Yang, MIT License.
@@ -3,3 +3,5 @@
3
3
  - Rewrite release notes to remove inflated claims, filler, and generic AI phrasing while preserving meaning.
4
4
  - Edit technical prose for plain language, varied rhythm, active voice, and a natural human tone.
5
5
  - Scan a document for em-dash overuse, formulaic transitions, vague claims, and unnecessary jargon before rewriting it.
6
+ - Detect mode: flag each slop pattern with a quoted line and a short fix, without rewriting. Example: "`The best part: it learns.` — colon reveal (41). Rewrite as a plain sentence."
7
+ - Minimum effective edit: leave strong human sentences alone. Example: keep the writer's blunt aside, cut only the throat-clearing opener and the fake-profound kicker.
@@ -0,0 +1,44 @@
1
+ # Unslop eval
2
+
3
+ Use after the rewrite. Answer each check with pass or fail. If any check fails, fix the draft before returning it.
4
+
5
+ For detect requests, make sure the response names each pattern found with a quoted line and a short fix, without rewriting the draft.
6
+
7
+ ## Edit integrity
8
+
9
+ 1. Does the edit preserve the user's point without adding claims, examples, stats, quotes, or opinions?
10
+ 2. Does it preserve the writer's distinctive vocabulary, cadence, bluntness, humor, uncertainty, and level of polish (32)?
11
+ 3. Does it leave strong human sentences alone instead of making every paragraph equally tidy (32)?
12
+ 4. Is the amount of cutting proportional to the actual slop, with no aggressive compression that strips out character?
13
+ 5. Does the draft lead with what the reader needs while keeping personal setup that adds context, tension, or character (36)?
14
+ 6. Do sentences earn their place, with concrete facts, protected details (34), and direct verbs?
15
+ 7. Does every generic sentence pass the portability test (35), or was it cut or made specific?
16
+ 8. Does the draft use active voice with human subjects where possible (29)?
17
+ 9. Are genuinely tangled sentences fixed while clear spoken cadence and changes in pace remain intact (28)?
18
+
19
+ ## Words to cut
20
+
21
+ 1. Are banned words (7), filler phrases (23), often-empty adverbs (24), and inflated claims removed unless quoted as examples?
22
+
23
+ ## Patterns to cut
24
+
25
+ 1. Are binary contrasts (9, 38), negative listings (39), rhetorical setups (40), and throat-clearing openers (36) removed?
26
+ 2. Are faux-insight setups (37), colon reveals (41), superficial -ing phrases (3), fancy "is" verbs (8), synonym cycling (11), dramatic fragments (42), and robotic rhythm (43) fixed?
27
+ 3. Are puffery (1), promotional language (4), and vague attributions (5) replaced with plain facts and named sources, or flagged when no source exists?
28
+ 4. Is interpretive metadiscourse (33) removed, including emphasis markers and redundant glossing?
29
+ 5. Are fake-profound kickers (44) deleted instead of rewritten into better metaphors?
30
+ 6. Are summary-recap endings (45) cut so the piece ends on a concrete point, takeaway, or next action?
31
+ 7. Is formatting slop removed: decorative emoji (18), decorative bold (15), bullets that should be prose, headers over tiny sections (46)?
32
+ 8. Are em dashes (13), colons (14), title case headings (17), and curly quotes (19) fixed?
33
+
34
+ ## Final read
35
+
36
+ 1. Does the draft avoid robotic symmetry, repeated sentence shapes, and stacked punchy fragments (43)?
37
+ 2. Would the writer recognize the edited draft as their own voice?
38
+ 3. Would the edited draft sound natural if read to a sharp colleague?
39
+ 4. Does the final output include the full edited draft and a short **What changed** section?
40
+ 5. For detect requests, does the response name each pattern with a quoted line and a short fix, without rewriting, scoring, or claiming AI authorship?
41
+
42
+ ## Source
43
+
44
+ Adapted from [no-ai-slop](https://github.com/petergyang/no-ai-slop) `eval.md` by Peter Yang, MIT License.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mohammadhprp/system-prompt",
3
- "version": "0.12.5",
3
+ "version": "0.12.6",
4
4
  "description": "AI Coding Agent Framework — interactive bootstrap CLI",
5
5
  "keywords": [
6
6
  "ai",
package/src/catalog.js CHANGED
@@ -4,6 +4,7 @@ export const categories = {
4
4
  description: 'Task-specific procedures for AI coding agents',
5
5
  sourceDir: 'framework/skills',
6
6
  items: [
7
+ { id: 'adhd', name: 'ADHD', description: 'Shape output for ADHD readers: action first, numbered steps, restated state, no tangents' },
7
8
  { id: 'agent-browser', name: 'Agent Browser', description: 'Automate browser and Electron workflows for navigation, testing, screenshots, and data extraction' },
8
9
  { id: 'architect', name: 'Architect', description: 'Sketch architecture and module boundaries before implementation' },
9
10
  { id: 'arena', name: 'Arena', description: 'Compare parallel candidate solutions and synthesize the strongest result' },
@@ -57,13 +58,9 @@ export const categories = {
57
58
  description: 'Slash command workflows for repeatable tasks',
58
59
  sourceDir: 'framework/commands',
59
60
  items: [
60
- { id: 'changelog', name: 'Changelog', description: 'Create, add, or update CHANGELOG.md entries' },
61
- { id: 'commit', name: 'Commit', description: 'Create atomic git commits with conventional messages' },
61
+ { id: 'audit-your-codebase', name: 'Audit Your Codebase', description: 'Audit for materially useful simplifications in structure, state, algorithms, and ownership' },
62
+ { id: 'explain-codebase', name: 'Explain Codebase', description: 'Map a codebase and teach it interactively, from overview to focused deep-dives' },
62
63
  { id: 'learn', name: 'Learn', description: 'Distill a reusable skill from any source' },
63
- { id: 'pr', name: 'PR', description: 'Create a GitHub PR for the current branch' },
64
- { id: 'mr', name: 'MR', description: 'Create a GitLab MR for the current branch' },
65
- { id: 'release', name: 'Release', description: 'Tag releases, update changelog, and bump versions' },
66
- { id: 'review', name: 'Review', description: 'Review local, GitHub, or GitLab changes and write review.json' },
67
64
  { id: 'summarize-changes', name: 'Summarize Changes', description: 'Summarize uncommitted changes and flag risks' },
68
65
  ],
69
66
  },
@@ -1,44 +0,0 @@
1
- ---
2
- description: Create, add, or update entries in CHANGELOG.md
3
- agent: build
4
- ---
5
-
6
- Changelog $ARGUMENTS
7
-
8
- Maintain CHANGELOG.md entries for my changes.
9
-
10
- ## Process
11
-
12
- 1. **Review and categorize** - Review conversation history, read current `CHANGELOG.md`, determine if changes are `Added`, `Changed`, `Fixed`, `Removed`, `Deprecated`, or `Security`. Read the existing `## Unreleased` section.
13
-
14
- 2. **Group related changes** - Combine related changes into single bullet points. Use past tense ("Added...", "Fixed..."). Include file paths or component names in backticks when helpful. Match existing style and tone.
15
-
16
- 3. **Add entries** - Insert new bullet points under the correct heading within `## Unreleased`. Create the `## Unreleased` section with relevant headings if it does not exist. Preserve all existing entries.
17
-
18
- 4. **Verify** - Read the final `CHANGELOG.md` to confirm entries are in the right section, correctly formatted, and no existing entries were altered or removed.
19
-
20
- ## Entry Format
21
-
22
- ```markdown
23
- ## Unreleased
24
-
25
- ### Added
26
- - New features, entries, additions.
27
-
28
- ### Changed
29
- - Changes in existing functionality, refactors, renames.
30
-
31
- ### Fixed
32
- - Bug fixes, corrections.
33
-
34
- ### Removed
35
- - Removed features, files, entries.
36
-
37
- ### Deprecated
38
- - Soon-to-be-removed features.
39
-
40
- ### Security
41
- - Vulnerabilities, security fixes.
42
- ```
43
-
44
- **Note:** Group entries by section. Order sections: Added, Changed, Fixed, Removed, Deprecated, Security. Within each section, entries are reverse-chronological (newest first). Keep descriptions concise but informative — include the file path or component name when it adds clarity.
@@ -1,28 +0,0 @@
1
- ---
2
- description: Create atomic git commits with conventional messages
3
- agent: build
4
- ---
5
-
6
- Commit $ARGUMENTS
7
-
8
- Create git commits for my changes.
9
-
10
- ## Process
11
-
12
- 1. **Analyze and plan** - Review conversation history, run `git status -s` and `git diff`, determine if changes should be one or multiple logical commits, group related files, draft conventional commit messages (`type: description`) in imperative mood focusing on why
13
- 2. **Present plan** - List files for each commit, show commit messages with type prefix, ask: "I plan to create [N] commit(s) with these changes. Shall I proceed?"
14
- 3. **Execute upon confirmation** - Use `git add` with specific files (never `-A` or `.`), create commits with planned messages, show result with `git log --oneline -n [N]`
15
-
16
- ## Commit Message Format
17
-
18
- Use conventional commit format: `type: description`
19
-
20
- **Types:**
21
- - `feat:` - New feature (user-facing)
22
- - `fix:` - Bug fix (user-facing)
23
- - `docs:` - Documentation only
24
- - `chore:` - Maintenance, tooling, dependencies
25
- - `refactor:` - Code restructuring without behavior change
26
- - `test:` - Adding or updating tests
27
- - `perf:` - Performance improvement
28
- - `ci:` - CI/CD changes
@@ -1,45 +0,0 @@
1
- ---
2
- description: Create a merge request from the current branch
3
- ---
4
-
5
- Create $ARGUMENTS merge request
6
-
7
- Create a merge request for the current branch.
8
-
9
- ## Process
10
-
11
- 1. **Collect information**
12
- - Get current branch name: `git branch --show-current`
13
- - Read MR template from `.gitlab/merge_request_templates/default.md` of exsits
14
-
15
- 2. **Format MR title**
16
- - Take the branch name, replace all `-` with spaces, capitalize first character
17
-
18
- 3. **Collect commits and build summary**
19
- - List commits on the branch that are not on `dev`: `git log dev..HEAD --oneline`
20
- - Read each commit message, convert to a bullet list summarizing user-facing changes
21
- - Merge/squash related commits (e.g. multiple commits for the same change)
22
- - Keep concise, one bullet per logical change
23
-
24
- 4. **Fill template**
25
- - Set Summary to the bullet list from step 3
26
- - Keep the Checklist section as-is
27
-
28
- 5. **Present plan and confirm** - Show:
29
- - Source branch
30
- - Target branch: `develop`
31
- - Title
32
- - Filled description
33
- - Ask: "Shall I create this MR?"
34
- - Push the changes if user says Yes
35
-
36
- 6. **Create upon confirmation** - Use `glab mr create`:
37
- - `--source-branch`: Current branch
38
- - `--target-branch`: `develop`
39
- - `--title`: Prepend "Draft: " to the formatted branch name
40
- - `--description`: Filled template content
41
- - `--assignee`: `1`
42
- - `--squash`
43
- - `--remove-source-branch`
44
-
45
- 7. **Show the resulting URL.**
@@ -1,39 +0,0 @@
1
- ---
2
- description: Create a GitHub PR for the current branch
3
- agent: build
4
- ---
5
-
6
- PR $ARGUMENTS
7
-
8
- Create or update a pull request for the current branch using `gh` cli.
9
-
10
- ## Process
11
-
12
- 1. **Collect information**
13
- - Get current branch name: `git branch --show-current`
14
- - Read PR template from `.github/pull_request_template.md` of exsits
15
-
16
- 2. **Format PR title**
17
- - Take the branch name, replace all `-` with spaces, capitalize first character
18
-
19
- 3. **Collect commits and build summary**
20
- - List commits on the branch that are not on `dev`: `git log dev..HEAD --oneline`
21
- - Read each commit message, convert to a bullet list summarizing user-facing changes
22
- - Merge/squash related commits (e.g. multiple commits for the same change)
23
- - Keep concise, one bullet per logical change
24
-
25
- 4. **Fill template**
26
- - Set Summary to the bullet list from step 3
27
- - Keep the Checklist section as-is
28
-
29
- 5. **Present plan and confirm** - Show:
30
- - Source branch
31
- - Target branch: `develop`
32
- - Title
33
- - Filled description
34
- - Ask: "Shall I create this PR?"
35
- - Push the changes if user says Yes
36
-
37
- 6. **Create upon confirmation** - Use `gh` cli:
38
- - `gh pr create --title "<title>" --body "<body>" --base <target>`
39
- - Show the resulting URL.
@@ -1,34 +0,0 @@
1
- ---
2
- description: Create a release by tagging the current state, generating changelog, and bumping version
3
- agent: build
4
- ---
5
-
6
- Release $ARGUMENTS
7
-
8
- Create a release from the current branch state.
9
-
10
- ## Process
11
-
12
- 1. **Review recent commits** - Run `git fetch --tags`, `git describe --tags --abbrev=0` to find the latest tag. Run `git log <latest-tag>..HEAD --oneline --format="%s"` to collect all conventional commits since the last release. Read any existing `CHANGELOG.md`.
13
-
14
- 2. **Categorize commits** - Group commits by conventional commit type:
15
- - `feat!:` or `BREAKING CHANGE:` → breaking change
16
- - `feat:` → minor feature
17
- - `fix:` → patch fix
18
- - `perf:`, `refactor:`, `test:` → patch (if no features)
19
- - `chore:`, `docs:`, `ci:` → filtered from changelog
20
-
21
- 3. **Determine next version** - Based on the [`commit.md`](./commit.md) semver convention:
22
- - Breaking changes → increment major version (e.g., `1.2.3` → `2.0.0`)
23
- - New features → increment minor version (e.g., `1.2.3` → `1.3.0`)
24
- - Only fixes/refactors → increment patch version (e.g., `1.2.3` → `1.3.4`)
25
- - If no previous tag exists, propose `0.1.0`
26
-
27
- 4. **Present release plan** - Show: current version, new version, categorized changelog entries, and ask: "Shall I create this release (tag vX.Y.Z and update CHANGELOG.md)?"
28
-
29
- 5. **Execute on confirmation**:
30
- - Update `CHANGELOG.md`: create a new `## [vX.Y.Z]` section under `## Unreleased`, move categorized entries (excluding chore/docs/ci) into it, add the release date, keep the `## Unreleased` section empty for future work
31
- - Run `git add CHANGELOG.md && git commit -m "chore: release vX.Y.Z"`
32
- - Run `git tag -a vX.Y.Z -m "vX.Y.Z"`
33
-
34
- 6. **Verify** - Run `git log --oneline -n 3` and `git tag --list --sort=-v:refname -n5` to confirm the release tag and commit are in place.
@@ -1,9 +0,0 @@
1
- ---
2
- description: Review local, GitHub, or GitLab changes and write review.json
3
- agent: plan
4
- ---
5
-
6
- Review `$ARGUMENTS` using the `review` skill. Select local changes, a GitHub
7
- pull request, or a GitLab merge request from the arguments. Use `gh` or `glab`
8
- for read-only remote inspection, never publish comments, and write the required
9
- `review.json` artifact.