@chankov/agent-skills 0.3.0 → 0.3.2

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.
Files changed (159) hide show
  1. package/.versions/0.3.2/.claude/commands/build.md +18 -0
  2. package/.versions/0.3.2/.claude/commands/code-simplify.md +22 -0
  3. package/.versions/0.3.2/.claude/commands/design-agent.md +14 -0
  4. package/.versions/0.3.2/.claude/commands/doctor-agent-skills.md +13 -0
  5. package/.versions/0.3.2/.claude/commands/plan.md +16 -0
  6. package/.versions/0.3.2/.claude/commands/prime.md +22 -0
  7. package/.versions/0.3.2/.claude/commands/review.md +16 -0
  8. package/.versions/0.3.2/.claude/commands/setup-agent-skills.md +19 -0
  9. package/.versions/0.3.2/.claude/commands/ship.md +17 -0
  10. package/.versions/0.3.2/.claude/commands/spec.md +15 -0
  11. package/.versions/0.3.2/.claude/commands/test.md +19 -0
  12. package/.versions/0.3.2/.opencode/commands/as-build.md +17 -0
  13. package/.versions/0.3.2/.opencode/commands/as-code-simplify.md +16 -0
  14. package/.versions/0.3.2/.opencode/commands/as-design-agent.md +15 -0
  15. package/.versions/0.3.2/.opencode/commands/as-doctor-agent-skills.md +11 -0
  16. package/.versions/0.3.2/.opencode/commands/as-plan.md +16 -0
  17. package/.versions/0.3.2/.opencode/commands/as-prime.md +22 -0
  18. package/.versions/0.3.2/.opencode/commands/as-review.md +15 -0
  19. package/.versions/0.3.2/.opencode/commands/as-setup-agent-skills.md +11 -0
  20. package/.versions/0.3.2/.opencode/commands/as-ship.md +16 -0
  21. package/.versions/0.3.2/.opencode/commands/as-spec.md +16 -0
  22. package/.versions/0.3.2/.opencode/commands/as-test.md +21 -0
  23. package/.versions/0.3.2/.pi/agents/agent-chain.yaml +49 -0
  24. package/.versions/0.3.2/.pi/agents/bowser.md +19 -0
  25. package/.versions/0.3.2/.pi/agents/pi-pi/agent-expert.md +98 -0
  26. package/.versions/0.3.2/.pi/agents/pi-pi/cli-expert.md +41 -0
  27. package/.versions/0.3.2/.pi/agents/pi-pi/config-expert.md +63 -0
  28. package/.versions/0.3.2/.pi/agents/pi-pi/ext-expert.md +43 -0
  29. package/.versions/0.3.2/.pi/agents/pi-pi/keybinding-expert.md +134 -0
  30. package/.versions/0.3.2/.pi/agents/pi-pi/pi-orchestrator.md +57 -0
  31. package/.versions/0.3.2/.pi/agents/pi-pi/prompt-expert.md +70 -0
  32. package/.versions/0.3.2/.pi/agents/pi-pi/skill-expert.md +42 -0
  33. package/.versions/0.3.2/.pi/agents/pi-pi/theme-expert.md +40 -0
  34. package/.versions/0.3.2/.pi/agents/pi-pi/tui-expert.md +85 -0
  35. package/.versions/0.3.2/.pi/agents/teams.yaml +31 -0
  36. package/.versions/0.3.2/.pi/damage-control-rules.yaml +278 -0
  37. package/.versions/0.3.2/.pi/extensions/agent-skills-update-check/README.md +58 -0
  38. package/.versions/0.3.2/.pi/extensions/agent-skills-update-check/index.ts +161 -0
  39. package/.versions/0.3.2/.pi/extensions/agent-skills-update-check/package.json +6 -0
  40. package/.versions/0.3.2/.pi/extensions/chrome-devtools-mcp/README.md +39 -0
  41. package/.versions/0.3.2/.pi/extensions/chrome-devtools-mcp/index.ts +61 -0
  42. package/.versions/0.3.2/.pi/extensions/chrome-devtools-mcp/package.json +6 -0
  43. package/.versions/0.3.2/.pi/extensions/compact-and-continue/README.md +42 -0
  44. package/.versions/0.3.2/.pi/extensions/compact-and-continue/index.ts +120 -0
  45. package/.versions/0.3.2/.pi/extensions/compact-and-continue/package.json +6 -0
  46. package/.versions/0.3.2/.pi/extensions/mcp-bridge/README.md +46 -0
  47. package/.versions/0.3.2/.pi/extensions/mcp-bridge/index.ts +206 -0
  48. package/.versions/0.3.2/.pi/extensions/mcp-bridge/package.json +6 -0
  49. package/.versions/0.3.2/.pi/extensions/package-lock.json +1143 -0
  50. package/.versions/0.3.2/.pi/extensions/package.json +9 -0
  51. package/.versions/0.3.2/.pi/harnesses/agent-chain/README.md +37 -0
  52. package/.versions/0.3.2/.pi/harnesses/agent-chain/index.ts +795 -0
  53. package/.versions/0.3.2/.pi/harnesses/agent-chain/package.json +6 -0
  54. package/.versions/0.3.2/.pi/harnesses/agent-team/README.md +38 -0
  55. package/.versions/0.3.2/.pi/harnesses/agent-team/index.ts +732 -0
  56. package/.versions/0.3.2/.pi/harnesses/agent-team/package.json +6 -0
  57. package/.versions/0.3.2/.pi/harnesses/coms/README.md +36 -0
  58. package/.versions/0.3.2/.pi/harnesses/coms/index.ts +1595 -0
  59. package/.versions/0.3.2/.pi/harnesses/coms/package.json +6 -0
  60. package/.versions/0.3.2/.pi/harnesses/coms-net/README.md +46 -0
  61. package/.versions/0.3.2/.pi/harnesses/coms-net/index.ts +1637 -0
  62. package/.versions/0.3.2/.pi/harnesses/coms-net/package.json +6 -0
  63. package/.versions/0.3.2/.pi/harnesses/damage-control/README.md +38 -0
  64. package/.versions/0.3.2/.pi/harnesses/damage-control/index.ts +207 -0
  65. package/.versions/0.3.2/.pi/harnesses/damage-control/package.json +6 -0
  66. package/.versions/0.3.2/.pi/harnesses/damage-control-continue/README.md +37 -0
  67. package/.versions/0.3.2/.pi/harnesses/damage-control-continue/index.ts +234 -0
  68. package/.versions/0.3.2/.pi/harnesses/damage-control-continue/package.json +6 -0
  69. package/.versions/0.3.2/.pi/harnesses/minimal/README.md +27 -0
  70. package/.versions/0.3.2/.pi/harnesses/minimal/index.ts +32 -0
  71. package/.versions/0.3.2/.pi/harnesses/minimal/package.json +6 -0
  72. package/.versions/0.3.2/.pi/harnesses/package-lock.json +35 -0
  73. package/.versions/0.3.2/.pi/harnesses/package.json +9 -0
  74. package/.versions/0.3.2/.pi/harnesses/pi-pi/README.md +39 -0
  75. package/.versions/0.3.2/.pi/harnesses/pi-pi/index.ts +631 -0
  76. package/.versions/0.3.2/.pi/harnesses/pi-pi/package.json +6 -0
  77. package/.versions/0.3.2/.pi/harnesses/purpose-gate/README.md +27 -0
  78. package/.versions/0.3.2/.pi/harnesses/purpose-gate/index.ts +82 -0
  79. package/.versions/0.3.2/.pi/harnesses/purpose-gate/package.json +6 -0
  80. package/.versions/0.3.2/.pi/harnesses/session-replay/README.md +28 -0
  81. package/.versions/0.3.2/.pi/harnesses/session-replay/index.ts +214 -0
  82. package/.versions/0.3.2/.pi/harnesses/session-replay/package.json +6 -0
  83. package/.versions/0.3.2/.pi/harnesses/subagent-widget/README.md +36 -0
  84. package/.versions/0.3.2/.pi/harnesses/subagent-widget/index.ts +479 -0
  85. package/.versions/0.3.2/.pi/harnesses/subagent-widget/package.json +6 -0
  86. package/.versions/0.3.2/.pi/harnesses/system-select/README.md +39 -0
  87. package/.versions/0.3.2/.pi/harnesses/system-select/index.ts +165 -0
  88. package/.versions/0.3.2/.pi/harnesses/system-select/package.json +6 -0
  89. package/.versions/0.3.2/.pi/harnesses/tilldone/README.md +35 -0
  90. package/.versions/0.3.2/.pi/harnesses/tilldone/index.ts +724 -0
  91. package/.versions/0.3.2/.pi/harnesses/tilldone/package.json +6 -0
  92. package/.versions/0.3.2/.pi/harnesses/tool-counter/README.md +31 -0
  93. package/.versions/0.3.2/.pi/harnesses/tool-counter/index.ts +100 -0
  94. package/.versions/0.3.2/.pi/harnesses/tool-counter/package.json +6 -0
  95. package/.versions/0.3.2/.pi/harnesses/tool-counter-widget/README.md +27 -0
  96. package/.versions/0.3.2/.pi/harnesses/tool-counter-widget/index.ts +66 -0
  97. package/.versions/0.3.2/.pi/harnesses/tool-counter-widget/package.json +6 -0
  98. package/.versions/0.3.2/.pi/prompts/build.md +24 -0
  99. package/.versions/0.3.2/.pi/prompts/code-simplify.md +22 -0
  100. package/.versions/0.3.2/.pi/prompts/doctor-agent-skills.md +13 -0
  101. package/.versions/0.3.2/.pi/prompts/plan.md +16 -0
  102. package/.versions/0.3.2/.pi/prompts/review.md +16 -0
  103. package/.versions/0.3.2/.pi/prompts/setup-agent-skills.md +19 -0
  104. package/.versions/0.3.2/.pi/prompts/ship.md +17 -0
  105. package/.versions/0.3.2/.pi/prompts/spec.md +15 -0
  106. package/.versions/0.3.2/.pi/prompts/test.md +19 -0
  107. package/.versions/0.3.2/.pi/skills/bowser/SKILL.md +114 -0
  108. package/.versions/0.3.2/.version +1 -0
  109. package/.versions/0.3.2/agents/builder.md +6 -0
  110. package/.versions/0.3.2/agents/code-reviewer.md +93 -0
  111. package/.versions/0.3.2/agents/documenter.md +6 -0
  112. package/.versions/0.3.2/agents/plan-reviewer.md +22 -0
  113. package/.versions/0.3.2/agents/planner.md +6 -0
  114. package/.versions/0.3.2/agents/scout.md +6 -0
  115. package/.versions/0.3.2/agents/security-auditor.md +97 -0
  116. package/.versions/0.3.2/agents/test-engineer.md +89 -0
  117. package/.versions/0.3.2/hooks/SIMPLIFY-IGNORE.md +90 -0
  118. package/.versions/0.3.2/hooks/hooks.json +14 -0
  119. package/.versions/0.3.2/hooks/session-start.sh +74 -0
  120. package/.versions/0.3.2/hooks/simplify-ignore-test.sh +247 -0
  121. package/.versions/0.3.2/hooks/simplify-ignore.sh +302 -0
  122. package/.versions/0.3.2/references/accessibility-checklist.md +159 -0
  123. package/.versions/0.3.2/references/performance-checklist.md +121 -0
  124. package/.versions/0.3.2/references/prompting-patterns.md +380 -0
  125. package/.versions/0.3.2/references/security-checklist.md +134 -0
  126. package/.versions/0.3.2/references/testing-patterns.md +236 -0
  127. package/.versions/0.3.2/skills/api-and-interface-design/SKILL.md +294 -0
  128. package/.versions/0.3.2/skills/browser-testing-with-devtools/SKILL.md +335 -0
  129. package/.versions/0.3.2/skills/ci-cd-and-automation/SKILL.md +390 -0
  130. package/.versions/0.3.2/skills/code-review-and-quality/SKILL.md +347 -0
  131. package/.versions/0.3.2/skills/code-simplification/SKILL.md +331 -0
  132. package/.versions/0.3.2/skills/context-engineering/SKILL.md +291 -0
  133. package/.versions/0.3.2/skills/debugging-and-error-recovery/SKILL.md +300 -0
  134. package/.versions/0.3.2/skills/deprecation-and-migration/SKILL.md +206 -0
  135. package/.versions/0.3.2/skills/designing-agents/SKILL.md +394 -0
  136. package/.versions/0.3.2/skills/designing-agents/pi-harness-authoring.md +213 -0
  137. package/.versions/0.3.2/skills/documentation-and-adrs/SKILL.md +278 -0
  138. package/.versions/0.3.2/skills/frontend-ui-engineering/SKILL.md +322 -0
  139. package/.versions/0.3.2/skills/git-workflow-and-versioning/SKILL.md +316 -0
  140. package/.versions/0.3.2/skills/guided-workspace-setup/SKILL.md +345 -0
  141. package/.versions/0.3.2/skills/idea-refine/SKILL.md +178 -0
  142. package/.versions/0.3.2/skills/idea-refine/examples.md +238 -0
  143. package/.versions/0.3.2/skills/idea-refine/frameworks.md +99 -0
  144. package/.versions/0.3.2/skills/idea-refine/refinement-criteria.md +113 -0
  145. package/.versions/0.3.2/skills/idea-refine/scripts/idea-refine.sh +15 -0
  146. package/.versions/0.3.2/skills/incremental-implementation/SKILL.md +279 -0
  147. package/.versions/0.3.2/skills/performance-optimization/SKILL.md +350 -0
  148. package/.versions/0.3.2/skills/planning-and-task-breakdown/SKILL.md +237 -0
  149. package/.versions/0.3.2/skills/security-and-hardening/SKILL.md +349 -0
  150. package/.versions/0.3.2/skills/shipping-and-launch/SKILL.md +309 -0
  151. package/.versions/0.3.2/skills/source-driven-development/SKILL.md +194 -0
  152. package/.versions/0.3.2/skills/spec-driven-development/SKILL.md +237 -0
  153. package/.versions/0.3.2/skills/test-driven-development/SKILL.md +379 -0
  154. package/.versions/0.3.2/skills/using-agent-skills/SKILL.md +176 -0
  155. package/CHANGELOG.md +36 -0
  156. package/bin/lib/bootstrap.js +56 -1
  157. package/docs/npm-install.md +30 -0
  158. package/package.json +1 -1
  159. package/skills/guided-workspace-setup/SKILL.md +16 -2
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "agent-skills-pi-tilldone",
3
+ "private": true,
4
+ "type": "module",
5
+ "main": "index.ts"
6
+ }
@@ -0,0 +1,31 @@
1
+ # tool-counter
2
+
3
+ Rich two-line custom footer.
4
+
5
+ > Ported from [`pi-vs-claude-code`](https://github.com/disler/pi-vs-claude-code) by [disler](https://github.com/disler) (MIT). See the [extension catalog](../../../docs/pi-extensions.md).
6
+
7
+ ## What it does
8
+
9
+ Replaces the pi footer with two information-dense lines:
10
+
11
+ - **Line 1** — model + context meter on the left; tokens in/out + cost on the right
12
+ - **Line 2** — cwd (and git branch) on the left; a per-tool call tally on the right
13
+
14
+ It accumulates token and cost figures by traversing the session branch, and updates the
15
+ branch display on `onBranchChange`.
16
+
17
+ ## Commands & tools
18
+
19
+ None — footer only.
20
+
21
+ ## Usage
22
+
23
+ ```bash
24
+ pi -e .pi/harnesses/tool-counter/index.ts
25
+ ```
26
+
27
+ ## Upstream changes
28
+
29
+ - Theme integration removed — the `themeMap.ts` import and the `applyExtensionDefaults()`
30
+ call were stripped (this repo does not ship pi themes). The footer renders against pi's
31
+ active theme.
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Tool Counter — Rich two-line custom footer
3
+ *
4
+ * Line 1: model + context meter on left, tokens in/out + cost on right
5
+ * Line 2: cwd (branch) on left, tool call tally on right
6
+ *
7
+ * Demonstrates: setFooter, footerData.getGitBranch(), onBranchChange(),
8
+ * session branch traversal for token/cost accumulation.
9
+ *
10
+ * Usage: pi -e extensions/tool-counter.ts
11
+ */
12
+
13
+ import type { AssistantMessage } from "@mariozechner/pi-ai";
14
+ import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
15
+ import { truncateToWidth, visibleWidth } from "@mariozechner/pi-tui";
16
+ import { basename } from "node:path";
17
+
18
+ export default function (pi: ExtensionAPI) {
19
+ const counts: Record<string, number> = {};
20
+
21
+ pi.on("tool_execution_end", async (event) => {
22
+ counts[event.toolName] = (counts[event.toolName] || 0) + 1;
23
+ });
24
+
25
+ pi.on("session_start", async (_event, ctx) => {
26
+ ctx.ui.setFooter((tui, theme, footerData) => {
27
+ const unsub = footerData.onBranchChange(() => tui.requestRender());
28
+
29
+ return {
30
+ dispose: unsub,
31
+ invalidate() {},
32
+ render(width: number): string[] {
33
+ // --- Line 1: cwd + branch (left), tokens + cost (right) ---
34
+ let tokIn = 0;
35
+ let tokOut = 0;
36
+ let cost = 0;
37
+ for (const entry of ctx.sessionManager.getBranch()) {
38
+ if (entry.type === "message" && entry.message.role === "assistant") {
39
+ const m = entry.message as AssistantMessage;
40
+ tokIn += m.usage.input;
41
+ tokOut += m.usage.output;
42
+ cost += m.usage.cost.total;
43
+ }
44
+ }
45
+
46
+ const fmt = (n: number) => n < 1000 ? `${n}` : `${(n / 1000).toFixed(1)}k`;
47
+ const dir = basename(ctx.cwd);
48
+ const branch = footerData.getGitBranch();
49
+
50
+ // --- Line 1: model + context meter (left), tokens + cost (right) ---
51
+ const usage = ctx.getContextUsage();
52
+ const pct = usage ? usage.percent : 0;
53
+ const filled = Math.round(pct / 10) || 1;
54
+ const bar = "#".repeat(filled) + "-".repeat(10 - filled);
55
+ const model = ctx.model?.id || "no-model";
56
+
57
+ const l1Left =
58
+ theme.fg("dim", ` ${model} `) +
59
+ theme.fg("warning", "[") +
60
+ theme.fg("success", "#".repeat(filled)) +
61
+ theme.fg("dim", "-".repeat(10 - filled)) +
62
+ theme.fg("warning", "]") +
63
+ theme.fg("dim", " ") +
64
+ theme.fg("accent", `${Math.round(pct)}%`);
65
+
66
+ const l1Right =
67
+ theme.fg("success", `${fmt(tokIn)}`) +
68
+ theme.fg("dim", " in ") +
69
+ theme.fg("accent", `${fmt(tokOut)}`) +
70
+ theme.fg("dim", " out ") +
71
+ theme.fg("warning", `$${cost.toFixed(4)}`) +
72
+ theme.fg("dim", " ");
73
+
74
+ const pad1 = " ".repeat(Math.max(1, width - visibleWidth(l1Left) - visibleWidth(l1Right)));
75
+ const line1 = truncateToWidth(l1Left + pad1 + l1Right, width, "");
76
+
77
+ // --- Line 2: cwd + branch (left), tool tally (right) ---
78
+ const l2Left =
79
+ theme.fg("dim", ` ${dir}`) +
80
+ (branch
81
+ ? theme.fg("dim", " ") + theme.fg("warning", "(") + theme.fg("success", branch) + theme.fg("warning", ")")
82
+ : "");
83
+
84
+ const entries = Object.entries(counts);
85
+ const l2Right = entries.length === 0
86
+ ? theme.fg("dim", "waiting for tools ")
87
+ : entries.map(
88
+ ([name, count]) =>
89
+ theme.fg("accent", name) + theme.fg("dim", " ") + theme.fg("success", `${count}`)
90
+ ).join(theme.fg("warning", " | ")) + theme.fg("dim", " ");
91
+
92
+ const pad2 = " ".repeat(Math.max(1, width - visibleWidth(l2Left) - visibleWidth(l2Right)));
93
+ const line2 = truncateToWidth(l2Left + pad2 + l2Right, width, "");
94
+
95
+ return [line1, line2];
96
+ },
97
+ };
98
+ });
99
+ });
100
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "agent-skills-pi-tool-counter",
3
+ "private": true,
4
+ "type": "module",
5
+ "main": "index.ts"
6
+ }
@@ -0,0 +1,27 @@
1
+ # tool-counter-widget
2
+
3
+ Tool-call counts in a widget above the editor.
4
+
5
+ > Ported from [`pi-vs-claude-code`](https://github.com/disler/pi-vs-claude-code) by [disler](https://github.com/disler) (MIT). See the [extension catalog](../../../docs/pi-extensions.md).
6
+
7
+ ## What it does
8
+
9
+ Shows a persistent, live-updating widget above the editor with per-tool call counts, each
10
+ tool tinted with its own background colour — e.g. `Tools (12): [Bash 3] [Read 7] [Write 2]`.
11
+ Unlike [`tool-counter`](../tool-counter/README.md), which is a full footer, this is a
12
+ compact widget you can stack with other footers.
13
+
14
+ ## Commands & tools
15
+
16
+ None — widget only.
17
+
18
+ ## Usage
19
+
20
+ ```bash
21
+ pi -e .pi/harnesses/tool-counter-widget/index.ts
22
+ ```
23
+
24
+ ## Upstream changes
25
+
26
+ - Theme integration removed — the `themeMap.ts` import and the `applyExtensionDefaults()`
27
+ call were stripped (this repo does not ship pi themes).
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Tool Counter Widget — Tool call counts in a widget above the editor
3
+ *
4
+ * Shows a persistent, live-updating widget with per-tool background colors.
5
+ * Format: Tools (N): [Bash 3] [Read 7] [Write 2]
6
+ *
7
+ * Usage: pi -e extensions/tool-counter-widget.ts
8
+ */
9
+
10
+ import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
11
+ import { Box, Text } from "@mariozechner/pi-tui";
12
+
13
+ const palette = [
14
+ [12, 40, 80], // deep navy
15
+ [50, 20, 70], // dark purple
16
+ [10, 55, 45], // dark teal
17
+ [70, 30, 10], // dark rust
18
+ [55, 15, 40], // dark plum
19
+ [15, 50, 65], // dark ocean
20
+ [45, 45, 15], // dark olive
21
+ [65, 18, 25], // dark wine
22
+ ];
23
+
24
+ function bg(rgb: number[], s: string): string {
25
+ return `\x1b[48;2;${rgb[0]};${rgb[1]};${rgb[2]}m${s}\x1b[49m`;
26
+ }
27
+
28
+ export default function (pi: ExtensionAPI) {
29
+ const counts: Record<string, number> = {};
30
+ const toolColors: Record<string, number[]> = {};
31
+ let total = 0;
32
+ let colorIdx = 0;
33
+
34
+ pi.on("tool_execution_end", async (event) => {
35
+ if (!(event.toolName in toolColors)) {
36
+ toolColors[event.toolName] = palette[colorIdx % palette.length];
37
+ colorIdx++;
38
+ }
39
+ counts[event.toolName] = (counts[event.toolName] || 0) + 1;
40
+ total++;
41
+ });
42
+
43
+ pi.on("session_start", async (_event, ctx) => {
44
+ ctx.ui.setWidget("tool-counter", (_tui, theme) => {
45
+ const text = new Text("", 1, 1);
46
+
47
+ return {
48
+ render(width: number): string[] {
49
+ const entries = Object.entries(counts);
50
+ const parts = entries.map(([name, count]) => {
51
+ const rgb = toolColors[name];
52
+ return bg(rgb, `\x1b[38;2;220;220;220m ${name} ${count} \x1b[39m`);
53
+ });
54
+ text.setText(
55
+ theme.fg("accent", `Tools (${total}):`) +
56
+ (entries.length > 0 ? " " + parts.join(" ") : "")
57
+ );
58
+ return text.render(width);
59
+ },
60
+ invalidate() {
61
+ text.invalidate();
62
+ },
63
+ };
64
+ });
65
+ });
66
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "agent-skills-pi-tool-counter-widget",
3
+ "private": true,
4
+ "type": "module",
5
+ "main": "index.ts"
6
+ }
@@ -0,0 +1,24 @@
1
+ ---
2
+ description: Implement the next task incrementally — build, test, verify, request review
3
+ ---
4
+
5
+ Load and follow the `incremental-implementation` and `test-driven-development` skills before proceeding.
6
+
7
+ Pick the next pending task from the plan. For each task:
8
+
9
+ 1. Read the task's acceptance criteria
10
+ 2. Load relevant context (existing code, patterns, types)
11
+ 3. Write a failing test for the expected behavior (RED)
12
+ 4. Implement the minimum code to pass the test (GREEN)
13
+ 5. Run the full test suite to check for regressions
14
+ 6. Run the build to verify compilation
15
+ 7. Present the Standard Slice Summary and ask the user to choose between:
16
+ - **Approve & continue** — proceed to the next slice
17
+ - **Request changes** — revise within the same slice, then re-summarize and re-ask
18
+ - **Compact & continue** — call `request_compaction` (from the `compact-and-continue` extension) with a self-contained `continuationPrompt` describing the remaining slices and the next concrete action, then end the turn so compaction runs; pi will auto-resume from the continuation prompt
19
+ - **Stop here** — leave changes unstaged and end the session
20
+ Use the `ask_user` tool (from `pi-ask-user`) when available; otherwise ask in chat. Wait for an explicit choice — do not proceed on silence. If the `request_compaction` tool is not registered (extension not installed), omit the "Compact & continue" option.
21
+ 8. Leave changes unstaged; the user handles staging and commits manually
22
+ 9. Mark the task complete and move to the next one only after approval
23
+
24
+ If any step fails, load and follow the `debugging-and-error-recovery` skill.
@@ -0,0 +1,22 @@
1
+ ---
2
+ description: Simplify code for clarity and maintainability — reduce complexity without changing behavior
3
+ ---
4
+
5
+ Load and follow the `code-simplification` skill before proceeding.
6
+
7
+ Simplify recently changed code (or the specified scope) while preserving exact behavior:
8
+
9
+ 1. Read the repository agent guide and study project conventions
10
+ 2. Identify the target code — recent changes unless a broader scope is specified
11
+ 3. Understand the code's purpose, callers, edge cases, and test coverage before touching it
12
+ 4. Scan for simplification opportunities:
13
+ - Deep nesting → guard clauses or extracted helpers
14
+ - Long functions → split by responsibility
15
+ - Nested ternaries → if/else or switch
16
+ - Generic names → descriptive names
17
+ - Duplicated logic → shared functions
18
+ - Dead code → remove after confirming
19
+ 5. Apply each simplification incrementally — run tests after each change
20
+ 6. Verify all tests pass, the build succeeds, and the diff is clean
21
+
22
+ If tests fail after a simplification, revert that change and reconsider. Load and follow `code-review-and-quality` to review the result.
@@ -0,0 +1,13 @@
1
+ ---
2
+ description: Scan agent-skills install targets for broken symlinks and stale persona references, then offer repairs
3
+ ---
4
+
5
+ Load and follow Step 5 (Doctor preflight) of the `guided-workspace-setup` skill — without running the rest of the install flow. Use this when the user wants the repair pass on its own; the full `/setup-agent-skills` flow runs the same scan automatically as soon as it detects prior install state.
6
+
7
+ Walk every install-target directory the chosen coding agent uses (`agents/`, `.claude/agents/`, `.opencode/agents/`, `.codex/agents/`, `.gemini/agents/`, `.github/agents/`, `.pi/agents/` and `pi-pi/`, `.claude/skills/`, `.opencode/skills/`, `.pi/skills/`, `.agents/skills`, `.claude/commands/`, `.opencode/commands/`, `.pi/prompts/`, `.claude/references/`, `.claude/hooks/`). For each broken symlink, resolve where it pointed, look for a canonical replacement in the source `agents/` and `skills/` trees, and offer to repoint or delete. Common stale names from the pre-merge persona layout: `reviewer` → `code-reviewer`, `red-team` → `security-auditor`.
8
+
9
+ Also flag and offer to rewrite any YAML configs (`teams.yaml`, `agent-chain.yaml`, etc.) that still reference removed persona names.
10
+
11
+ Present findings as a `# | Path | Issue | Suggested fix` table and ask the user to pick which fixes to apply.
12
+
13
+ Never overwrite a regular file — only act on symlinks whose target is missing. Report `repaired`, `deleted`, and `skipped` counts, and append a `## doctor-runs` line to `.ai/agent-skills-setup.md` with the date, agent, phase (`standalone`), and counts.
@@ -0,0 +1,16 @@
1
+ ---
2
+ description: Break work into small verifiable tasks with acceptance criteria and dependency ordering
3
+ ---
4
+
5
+ Load and follow the `planning-and-task-breakdown` skill before proceeding.
6
+
7
+ Read the existing spec (SPEC.md or equivalent) and the relevant codebase sections. Then:
8
+
9
+ 1. Enter plan mode — read only, no code changes
10
+ 2. Identify the dependency graph between components
11
+ 3. Slice work vertically (one complete path per task, not horizontal layers)
12
+ 4. Write tasks with acceptance criteria and verification steps
13
+ 5. Add checkpoints between phases
14
+ 6. Present the plan for human review
15
+
16
+ Save the plan to the location the `planning-and-task-breakdown` skill defines (default `docs/plans/{area}/PLAN-{prd-name}-{phase}.md`, with the task list embedded — no separate todo file; overridable per project via `.ai/agent-skills-overrides.md`). Match the project's existing `docs`/`Docs` capitalization.
@@ -0,0 +1,16 @@
1
+ ---
2
+ description: Conduct a five-axis code review — correctness, readability, architecture, security, performance
3
+ ---
4
+
5
+ Load and follow the `code-review-and-quality` skill before proceeding.
6
+
7
+ Review the current changes (staged or recent commits) across all five axes:
8
+
9
+ 1. **Correctness** — Does it match the spec? Edge cases handled? Tests adequate?
10
+ 2. **Readability** — Clear names? Straightforward logic? Well-organized?
11
+ 3. **Architecture** — Follows existing patterns? Clean boundaries? Right abstraction level?
12
+ 4. **Security** — Input validated? Secrets safe? Auth checked? Load and follow the `security-and-hardening` skill where relevant.
13
+ 5. **Performance** — No N+1 queries? No unbounded ops? Load and follow the `performance-optimization` skill where relevant.
14
+
15
+ Categorize findings as Critical, Important, or Suggestion.
16
+ Output a structured review with specific file:line references and fix recommendations.
@@ -0,0 +1,19 @@
1
+ ---
2
+ description: Guided setup — install agent-skills artifacts into a workspace for a chosen coding agent
3
+ ---
4
+
5
+ Load and follow the `guided-workspace-setup` skill before proceeding.
6
+
7
+ Run the guided install for a target workspace. If the user passed a workspace path, use it; otherwise ask for it. Detect the running coding agent and confirm it with the user.
8
+
9
+ Analyse the workspace. If prior install state is found (`.ai/agent-skills-setup.md` or a populated agent directory), run the **Doctor preflight** first (Step 5) — scan for broken symlinks and stale persona references, present findings as a table, and apply the fixes the user picks before continuing.
10
+
11
+ Then present the install menu as **one multi-select per group** (18 groups across skills, personas, commands, pi extensions/harnesses, references, hooks) with `★` marking recommendations. Each group renders as a `Pick | Item | Status | Rec | Purpose` table; every row carries an explicit status text — `installed · up to date`, `installed · outdated`, `installed · modified`, `not installed`, or `broken · skipped in preflight`. Installed items are **pre-checked `[x]`** so unchecking = remove; not-installed items start `[ ]`. Per-group reply shortcuts: `all`, `recommended` (adds `★` items on top of the pre-selection — never unticks installed ones), `none`, `keep` (accept the pre-selection unchanged), or a list of picks. Never offer `setup`, `doctor`, or `guided-workspace-setup` — those are installer-only and live in the source agent-skills repo.
12
+
13
+ Unchecking an installed item means *remove it*, but **removal is scoped**: only act on items whose name is in the agent-skills inventory **and** that are recorded in `## install-status` (or are symlinks resolving into the source repo). User-authored skills, custom commands, third-party plugins, and unrelated settings/env keys are left untouched and logged as "Skipped — not owned by agent-skills".
14
+
15
+ **No cross-tool substitution.** Each row is offered only when the source file the chosen agent needs already exists — for `pi`, that means `.pi/prompts/<name>.md`, `.pi/extensions/<name>/`, etc. Never fall back to `.claude/commands/` (or another agent's tree) to satisfy a pi prompt request; items missing their per-agent source are filtered out of the menu entirely.
16
+
17
+ **No mid-apply overwrite prompts.** The Step 6 status text already warns that `installed · modified` rows will have local edits overwritten if kept ticked. The user's tick is the consent; the Step 9 confirmation is the single gate. During apply, refresh ticked items unconditionally — never pause to ask "should I overwrite this file?". Genuine errors (permission denied, missing source) still stop and report.
18
+
19
+ Offer override sections for the workspace's `.ai/agent-skills-overrides.md` based on the analysis, and record what was installed in `.ai/agent-skills-setup.md`. Summarise the full plan and wait for explicit confirmation before writing anything, then perform the setup, re-scan for any new breakage, and report what changed.
@@ -0,0 +1,17 @@
1
+ ---
2
+ description: Run the pre-launch checklist and prepare for production deployment
3
+ ---
4
+
5
+ Load and follow the `shipping-and-launch` skill before proceeding.
6
+
7
+ Run through the complete pre-launch checklist:
8
+
9
+ 1. **Code Quality** — Tests pass, build clean, lint clean, no TODOs, no console.logs
10
+ 2. **Security** — npm audit clean, no secrets in code, auth in place, headers configured
11
+ 3. **Performance** — Core Web Vitals good, no N+1 queries, images optimized, bundle sized
12
+ 4. **Accessibility** — Keyboard nav works, screen reader compatible, contrast adequate
13
+ 5. **Infrastructure** — Env vars set, migrations ready, monitoring configured
14
+ 6. **Documentation** — README current, ADRs written, changelog updated
15
+
16
+ Report any failing checks and help resolve them before deployment.
17
+ Define the rollback plan before proceeding.
@@ -0,0 +1,15 @@
1
+ ---
2
+ description: Start spec-driven development — write a structured specification before writing code
3
+ ---
4
+
5
+ Load and follow the `spec-driven-development` skill before proceeding.
6
+
7
+ Begin by understanding what the user wants to build. Ask clarifying questions about:
8
+ 1. The objective and target users
9
+ 2. Core features and acceptance criteria
10
+ 3. Tech stack preferences and constraints
11
+ 4. Known boundaries (what to always do, ask first about, and never do)
12
+
13
+ Then generate a structured spec covering all six core areas: objective, commands, project structure, code style, testing strategy, and boundaries.
14
+
15
+ Save the spec to the location the `spec-driven-development` skill defines (default `docs/prds/{area}/PRD{n}-{topic}.md`; overridable per project via `.ai/agent-skills-overrides.md`). Confirm with the user before proceeding.
@@ -0,0 +1,19 @@
1
+ ---
2
+ description: Run TDD workflow — write failing tests, implement, verify. For bugs, use the Prove-It pattern.
3
+ ---
4
+
5
+ Load and follow the `test-driven-development` skill before proceeding.
6
+
7
+ For new features:
8
+ 1. Write tests that describe the expected behavior (they should FAIL)
9
+ 2. Implement the code to make them pass
10
+ 3. Refactor while keeping tests green
11
+
12
+ For bug fixes (Prove-It pattern):
13
+ 1. Write a test that reproduces the bug (must FAIL)
14
+ 2. Confirm the test fails
15
+ 3. Implement the fix
16
+ 4. Confirm the test passes
17
+ 5. Run the full test suite for regressions
18
+
19
+ For browser-related issues, also load and follow the `browser-testing-with-devtools` skill and verify with Chrome DevTools MCP.
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: bowser
3
+ description: Headless browser automation using Playwright CLI. Use when you need headless browsing, parallel browser sessions, UI testing, screenshots, web scraping, or browser automation that can run in the background. Keywords - playwright, headless, browser, test, screenshot, scrape, parallel.
4
+ allowed-tools: Bash
5
+ ---
6
+
7
+ # Playwright Bowser
8
+
9
+ ## Purpose
10
+
11
+ Automate browsers using `playwright-cli` — a token-efficient CLI for Playwright. Runs headless by default, supports parallel sessions via named sessions (`-s=`), and doesn't load tool schemas into context.
12
+
13
+ ## Key Details
14
+
15
+ - **Headless by default** — pass `--headed` to `open` to see the browser
16
+ - **Parallel sessions** — use `-s=<name>` to run multiple independent browser instances
17
+ - **Persistent profiles** — cookies and storage state preserved between calls
18
+ - **Token-efficient** — CLI-based, no accessibility trees or tool schemas in context
19
+ - **Vision mode** (opt-in) — set `PLAYWRIGHT_MCP_CAPS=vision` to receive screenshots as image responses in context instead of just saving to disk
20
+
21
+ ## Sessions
22
+
23
+ **Always use a named session.** Derive a short, descriptive kebab-case name from the user's prompt. This gives each task a persistent browser profile (cookies, localStorage, history) that accumulates across calls.
24
+
25
+ ```bash
26
+ # Derive session name from prompt context:
27
+ # "test the checkout flow on mystore.com" → -s=mystore-checkout
28
+ # "scrape pricing from competitor.com" → -s=competitor-pricing
29
+ # "UI test the login page" → -s=login-ui-test
30
+
31
+ playwright-cli -s=mystore-checkout open https://mystore.com --persistent
32
+ playwright-cli -s=mystore-checkout snapshot
33
+ playwright-cli -s=mystore-checkout click e12
34
+ ```
35
+
36
+ Managing sessions:
37
+ ```bash
38
+ playwright-cli list # list all sessions
39
+ playwright-cli close-all # close all sessions
40
+ playwright-cli -s=<name> close # close specific session
41
+ playwright-cli -s=<name> delete-data # wipe session profile
42
+ ```
43
+
44
+ ## Quick Reference
45
+
46
+ ```
47
+ Core: open [url], goto <url>, click <ref>, fill <ref> <text>, type <text>, snapshot, screenshot [ref], close
48
+ Navigate: go-back, go-forward, reload
49
+ Keyboard: press <key>, keydown <key>, keyup <key>
50
+ Mouse: mousemove <x> <y>, mousedown, mouseup, mousewheel <dx> <dy>
51
+ Tabs: tab-list, tab-new [url], tab-close [index], tab-select <index>
52
+ Save: screenshot [ref], pdf, screenshot --filename=f
53
+ Storage: state-save, state-load, cookie-*, localstorage-*, sessionstorage-*
54
+ Network: route <pattern>, route-list, unroute, network
55
+ DevTools: console, run-code <code>, tracing-start/stop, video-start/stop
56
+ Sessions: -s=<name> <cmd>, list, close-all, kill-all
57
+ Config: open --headed, open --browser=chrome, resize <w> <h>
58
+ ```
59
+
60
+ ## Workflow
61
+
62
+ 1. Derive a session name from the user's prompt and open with `--persistent` to preserve cookies/state. Always set the viewport via env var at launch:
63
+ ```bash
64
+ PLAYWRIGHT_MCP_VIEWPORT_SIZE=1440x900 playwright-cli -s=<session-name> open <url> --persistent
65
+ # or headed:
66
+ PLAYWRIGHT_MCP_VIEWPORT_SIZE=1440x900 playwright-cli -s=<session-name> open <url> --persistent --headed
67
+ # or with vision (screenshots returned as image responses in context):
68
+ PLAYWRIGHT_MCP_VIEWPORT_SIZE=1440x900 PLAYWRIGHT_MCP_CAPS=vision playwright-cli -s=<session-name> open <url> --persistent
69
+ ```
70
+
71
+ 3. Get element references via snapshot:
72
+ ```bash
73
+ playwright-cli snapshot
74
+ ```
75
+
76
+ 4. Interact using refs from snapshot:
77
+ ```bash
78
+ playwright-cli click <ref>
79
+ playwright-cli fill <ref> "text"
80
+ playwright-cli type "text"
81
+ playwright-cli press Enter
82
+ ```
83
+
84
+ 5. Capture results:
85
+ ```bash
86
+ playwright-cli screenshot
87
+ playwright-cli screenshot --filename=output.png
88
+ ```
89
+
90
+ 6. **Always close the session when done.** This is not optional — close the named session after finishing your task:
91
+ ```bash
92
+ playwright-cli -s=<session-name> close
93
+ ```
94
+
95
+ ## Configuration
96
+
97
+ If a `playwright-cli.json` exists in the working directory, use it automatically. If the user provides a path to a config file, use `--config path/to/config.json`. Otherwise, skip configuration — the env var and CLI defaults are sufficient.
98
+
99
+ ```json
100
+ {
101
+ "browser": {
102
+ "browserName": "chromium",
103
+ "launchOptions": { "headless": true },
104
+ "contextOptions": { "viewport": { "width": 1440, "height": 900 } }
105
+ },
106
+ "outputDir": "./screenshots"
107
+ }
108
+ ```
109
+
110
+ ## Full Help
111
+
112
+ Run `playwright-cli --help` or `playwright-cli --help <command>` for detailed command usage.
113
+
114
+ See [docs/playwright-cli.md](docs/playwright-cli.md) for full documentation.
@@ -0,0 +1 @@
1
+ 0.3.2
@@ -0,0 +1,6 @@
1
+ ---
2
+ name: builder
3
+ description: Implementation and code generation
4
+ tools: read,write,edit,bash,grep,find,ls
5
+ ---
6
+ You are a builder agent. Implement the requested changes thoroughly. Write clean, minimal code. Follow existing patterns in the codebase. Test your work when possible.
@@ -0,0 +1,93 @@
1
+ ---
2
+ name: code-reviewer
3
+ description: Senior code reviewer that evaluates changes across five dimensions — correctness, readability, architecture, security, and performance. Use for thorough code review before merge.
4
+ tools: read,bash,grep,find,ls
5
+ ---
6
+
7
+ # Senior Code Reviewer
8
+
9
+ You are an experienced Staff Engineer conducting a thorough code review. Your role is to evaluate the proposed changes and provide actionable, categorized feedback.
10
+
11
+ ## Review Framework
12
+
13
+ Evaluate every change across these five dimensions:
14
+
15
+ ### 1. Correctness
16
+ - Does the code do what the spec/task says it should?
17
+ - Are edge cases handled (null, empty, boundary values, error paths)?
18
+ - Do the tests actually verify the behavior? Are they testing the right things?
19
+ - Are there race conditions, off-by-one errors, or state inconsistencies?
20
+
21
+ ### 2. Readability
22
+ - Can another engineer understand this without explanation?
23
+ - Are names descriptive and consistent with project conventions?
24
+ - Is the control flow straightforward (no deeply nested logic)?
25
+ - Is the code well-organized (related code grouped, clear boundaries)?
26
+
27
+ ### 3. Architecture
28
+ - Does the change follow existing patterns or introduce a new one?
29
+ - If a new pattern, is it justified and documented?
30
+ - Are module boundaries maintained? Any circular dependencies?
31
+ - Is the abstraction level appropriate (not over-engineered, not too coupled)?
32
+ - Are dependencies flowing in the right direction?
33
+
34
+ ### 4. Security
35
+ - Is user input validated and sanitized at system boundaries?
36
+ - Are secrets kept out of code, logs, and version control?
37
+ - Is authentication/authorization checked where needed?
38
+ - Are queries parameterized? Is output encoded?
39
+ - Any new dependencies with known vulnerabilities?
40
+
41
+ ### 5. Performance
42
+ - Any N+1 query patterns?
43
+ - Any unbounded loops or unconstrained data fetching?
44
+ - Any synchronous operations that should be async?
45
+ - Any unnecessary re-renders (in UI components)?
46
+ - Any missing pagination on list endpoints?
47
+
48
+ ## Output Format
49
+
50
+ Categorize every finding:
51
+
52
+ **Critical** — Must fix before merge (security vulnerability, data loss risk, broken functionality)
53
+
54
+ **Important** — Should fix before merge (missing test, wrong abstraction, poor error handling)
55
+
56
+ **Suggestion** — Consider for improvement (naming, code style, optional optimization)
57
+
58
+ ## Review Output Template
59
+
60
+ ```markdown
61
+ ## Review Summary
62
+
63
+ **Verdict:** APPROVE | REQUEST CHANGES
64
+
65
+ **Overview:** [1-2 sentences summarizing the change and overall assessment]
66
+
67
+ ### Critical Issues
68
+ - [File:line] [Description and recommended fix]
69
+
70
+ ### Important Issues
71
+ - [File:line] [Description and recommended fix]
72
+
73
+ ### Suggestions
74
+ - [File:line] [Description]
75
+
76
+ ### What's Done Well
77
+ - [Positive observation — always include at least one]
78
+
79
+ ### Verification Story
80
+ - Tests reviewed: [yes/no, observations]
81
+ - Build verified: [yes/no]
82
+ - Security checked: [yes/no, observations]
83
+ ```
84
+
85
+ ## Rules
86
+
87
+ 1. Review the tests first — they reveal intent and coverage
88
+ 2. Read the spec or task description before reviewing code
89
+ 3. Every Critical and Important finding should include a specific fix recommendation
90
+ 4. Don't approve code with Critical issues
91
+ 5. Acknowledge what's done well — specific praise motivates good practices
92
+ 6. If you're uncertain about something, say so and suggest investigation rather than guessing
93
+ 7. Do NOT modify files — the reviewer's output is the report, not edits. Surface fixes as recommendations for the author or a follow-up agent.
@@ -0,0 +1,6 @@
1
+ ---
2
+ name: documenter
3
+ description: Documentation and README generation
4
+ tools: read,write,edit,grep,find,ls
5
+ ---
6
+ You are a documentation agent. Write clear, concise documentation. Update READMEs, add inline comments where needed, and generate usage examples. Match the project's existing doc style.