nitm-ai-dev-toolkit 3.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +109 -0
- package/LICENSE +21 -0
- package/README.md +881 -0
- package/bin/cli.js +398 -0
- package/package.json +41 -0
- package/src/monorepo/.agents/rules/ponytail.md +3 -0
- package/src/monorepo/.agents/skills/acli/SKILL.md +424 -0
- package/src/monorepo/.agents/skills/bkt-cli/SKILL.md +374 -0
- package/src/monorepo/.agents/skills/brainstorming/SKILL.md +54 -0
- package/src/monorepo/.agents/skills/code-simplifier/SKILL.md +109 -0
- package/src/monorepo/.agents/skills/debugger/SKILL.md +123 -0
- package/src/monorepo/.agents/skills/dispatching-parallel-agents/SKILL.md +206 -0
- package/src/monorepo/.agents/skills/executing-plans/SKILL.md +76 -0
- package/src/monorepo/.agents/skills/finishing-a-development-branch/SKILL.md +200 -0
- package/src/monorepo/.agents/skills/gh-cli/SKILL.md +461 -0
- package/src/monorepo/.agents/skills/glab-cli/SKILL.md +468 -0
- package/src/monorepo/.agents/skills/issue-tracker/SKILL.md +119 -0
- package/src/monorepo/.agents/skills/linear-cli/SKILL.md +276 -0
- package/src/monorepo/.agents/skills/logging/SKILL.md +393 -0
- package/src/monorepo/.agents/skills/orient-to-recent-work/SKILL.md +43 -0
- package/src/monorepo/.agents/skills/ponytail/SKILL.md +101 -0
- package/src/monorepo/.agents/skills/ponytail-audit/SKILL.md +41 -0
- package/src/monorepo/.agents/skills/ponytail-debt/SKILL.md +44 -0
- package/src/monorepo/.agents/skills/ponytail-gain/SKILL.md +51 -0
- package/src/monorepo/.agents/skills/ponytail-help/SKILL.md +74 -0
- package/src/monorepo/.agents/skills/ponytail-review/SKILL.md +57 -0
- package/src/monorepo/.agents/skills/project-documentation/SKILL.md +425 -0
- package/src/monorepo/.agents/skills/receiving-code-review/SKILL.md +213 -0
- package/src/monorepo/.agents/skills/requesting-code-review/SKILL.md +105 -0
- package/src/monorepo/.agents/skills/requesting-code-review/code-reviewer.md +146 -0
- package/src/monorepo/.agents/skills/security-reviewer/SKILL.md +144 -0
- package/src/monorepo/.agents/skills/subagent-driven-development/SKILL.md +279 -0
- package/src/monorepo/.agents/skills/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
- package/src/monorepo/.agents/skills/subagent-driven-development/implementer-prompt.md +78 -0
- package/src/monorepo/.agents/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/src/monorepo/.agents/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/src/monorepo/.agents/skills/systematic-debugging/SKILL.md +296 -0
- package/src/monorepo/.agents/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/src/monorepo/.agents/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/src/monorepo/.agents/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/src/monorepo/.agents/skills/systematic-debugging/find-polluter.sh +63 -0
- package/src/monorepo/.agents/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/src/monorepo/.agents/skills/systematic-debugging/test-academic.md +14 -0
- package/src/monorepo/.agents/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/src/monorepo/.agents/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/src/monorepo/.agents/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/src/monorepo/.agents/skills/test-driven-development/SKILL.md +371 -0
- package/src/monorepo/.agents/skills/test-driven-development/testing-anti-patterns.md +299 -0
- package/src/monorepo/.agents/skills/using-git-worktrees/SKILL.md +291 -0
- package/src/monorepo/.agents/skills/using-superpowers/SKILL.md +87 -0
- package/src/monorepo/.agents/skills/verification-before-completion/SKILL.md +148 -0
- package/src/monorepo/.agents/skills/writing-plans/SKILL.md +116 -0
- package/src/monorepo/.agents/skills/writing-skills/SKILL.md +655 -0
- package/src/monorepo/.agents/skills/writing-skills/anthropic-best-practices.md +1150 -0
- package/src/monorepo/.agents/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/src/monorepo/.agents/skills/writing-skills/graphviz-conventions.dot +172 -0
- package/src/monorepo/.agents/skills/writing-skills/persuasion-principles.md +187 -0
- package/src/monorepo/.agents/skills/writing-skills/render-graphs.js +168 -0
- package/src/monorepo/.agents/skills/writing-skills/testing-skills-with-subagents.md +384 -0
- package/src/monorepo/.claude/agents/admin-portal.agent.md +11 -0
- package/src/monorepo/.claude/agents/api-specialist.agent.md +11 -0
- package/src/monorepo/.claude/agents/backend-architect.agent.md +11 -0
- package/src/monorepo/.claude/agents/documenter.agent.md +11 -0
- package/src/monorepo/.claude/agents/feature-builder.agent.md +23 -0
- package/src/monorepo/.claude/agents/frontend-developer.agent.md +11 -0
- package/src/monorepo/.claude/agents/green.agent.md +12 -0
- package/src/monorepo/.claude/agents/implementer.agent.md +12 -0
- package/src/monorepo/.claude/agents/planner.agent.md +12 -0
- package/src/monorepo/.claude/agents/red.agent.md +12 -0
- package/src/monorepo/.claude/agents/refactor.agent.md +12 -0
- package/src/monorepo/.claude/agents/researcher.agent.md +12 -0
- package/src/monorepo/.claude/agents/reviewer.agent.md +11 -0
- package/src/monorepo/.claude/agents/tdd.agent.md +12 -0
- package/src/monorepo/.claude/agents-snippets/admin-portal.md +90 -0
- package/src/monorepo/.claude/agents-snippets/api-specialist.md +57 -0
- package/src/monorepo/.claude/agents-snippets/backend-architect.md +49 -0
- package/src/monorepo/.claude/agents-snippets/documenter.md +58 -0
- package/src/monorepo/.claude/agents-snippets/feature-builder.md +49 -0
- package/src/monorepo/.claude/agents-snippets/frontend-developer.md +49 -0
- package/src/monorepo/.claude/agents-snippets/green.md +18 -0
- package/src/monorepo/.claude/agents-snippets/implementer.md +31 -0
- package/src/monorepo/.claude/agents-snippets/planner.md +40 -0
- package/src/monorepo/.claude/agents-snippets/red.md +14 -0
- package/src/monorepo/.claude/agents-snippets/refactor.md +22 -0
- package/src/monorepo/.claude/agents-snippets/researcher.md +43 -0
- package/src/monorepo/.claude/agents-snippets/reviewer.md +83 -0
- package/src/monorepo/.claude/agents-snippets/tdd.md +18 -0
- package/src/monorepo/.claude/commands/assign-tasks.md +13 -0
- package/src/monorepo/.claude/commands/bootstrap-patch.md +15 -0
- package/src/monorepo/.claude/commands/bootstrap-upgrade.md +15 -0
- package/src/monorepo/.claude/commands/bootstrap.md +15 -0
- package/src/monorepo/.claude/commands/commit-push.md +13 -0
- package/src/monorepo/.claude/commands/constitution.md +15 -0
- package/src/monorepo/.claude/commands/create-skill.md +15 -0
- package/src/monorepo/.claude/commands/implement-feature.md +15 -0
- package/src/monorepo/.claude/commands/implement-fixes.md +15 -0
- package/src/monorepo/.claude/commands/implement.md +15 -0
- package/src/monorepo/.claude/commands/plan.md +15 -0
- package/src/monorepo/.claude/commands/playwright-test.md +13 -0
- package/src/monorepo/.claude/commands/ponytail-audit.md +15 -0
- package/src/monorepo/.claude/commands/ponytail-debt.md +15 -0
- package/src/monorepo/.claude/commands/ponytail-gain.md +15 -0
- package/src/monorepo/.claude/commands/ponytail-help.md +15 -0
- package/src/monorepo/.claude/commands/ponytail-review.md +15 -0
- package/src/monorepo/.claude/commands/ponytail.md +15 -0
- package/src/monorepo/.claude/commands/release-notes.md +13 -0
- package/src/monorepo/.claude/commands/review-pr.md +15 -0
- package/src/monorepo/.claude/commands/review-staged.md +15 -0
- package/src/monorepo/.claude/commands/review.md +15 -0
- package/src/monorepo/.claude/commands/specify.md +15 -0
- package/src/monorepo/.claude/commands/tasks.md +13 -0
- package/src/monorepo/.claude/prompt-snippets/assign-tasks.md +169 -0
- package/src/monorepo/.claude/prompt-snippets/bootstrap-patch.md +199 -0
- package/src/monorepo/.claude/prompt-snippets/bootstrap-upgrade.md +452 -0
- package/src/monorepo/.claude/prompt-snippets/bootstrap.md +764 -0
- package/src/monorepo/.claude/prompt-snippets/commit-push.md +69 -0
- package/src/monorepo/.claude/prompt-snippets/constitution.md +57 -0
- package/src/monorepo/.claude/prompt-snippets/create-skill.md +490 -0
- package/src/monorepo/.claude/prompt-snippets/implement-feature.md +119 -0
- package/src/monorepo/.claude/prompt-snippets/implement-fixes.md +122 -0
- package/src/monorepo/.claude/prompt-snippets/implement.md +56 -0
- package/src/monorepo/.claude/prompt-snippets/plan.md +67 -0
- package/src/monorepo/.claude/prompt-snippets/playwright-test.md +55 -0
- package/src/monorepo/.claude/prompt-snippets/ponytail-audit.md +5 -0
- package/src/monorepo/.claude/prompt-snippets/ponytail-debt.md +5 -0
- package/src/monorepo/.claude/prompt-snippets/ponytail-gain.md +5 -0
- package/src/monorepo/.claude/prompt-snippets/ponytail-help.md +5 -0
- package/src/monorepo/.claude/prompt-snippets/ponytail-review.md +5 -0
- package/src/monorepo/.claude/prompt-snippets/ponytail.md +5 -0
- package/src/monorepo/.claude/prompt-snippets/release-notes.md +134 -0
- package/src/monorepo/.claude/prompt-snippets/review-pr.md +156 -0
- package/src/monorepo/.claude/prompt-snippets/review-staged.md +35 -0
- package/src/monorepo/.claude/prompt-snippets/review.md +139 -0
- package/src/monorepo/.claude/prompt-snippets/specify.md +51 -0
- package/src/monorepo/.claude/prompt-snippets/tasks.md +108 -0
- package/src/monorepo/.claude/rules/agent-conduct.md +14 -0
- package/src/monorepo/.claude/rules/api-server.md +19 -0
- package/src/monorepo/.claude/rules/coding-standards.md +13 -0
- package/src/monorepo/.claude/rules/component-structure.md +18 -0
- package/src/monorepo/.claude/rules/core-libraries.md +16 -0
- package/src/monorepo/.claude/rules/environment-tooling.md +12 -0
- package/src/monorepo/.claude/rules/logging-comments.md +17 -0
- package/src/monorepo/.claude/rules/logging.md +17 -0
- package/src/monorepo/.claude/rules/orient-to-recent-work.md +13 -0
- package/src/monorepo/.claude/rules/prisma-migrations.md +16 -0
- package/src/monorepo/.claude/rules/project-context.md +14 -0
- package/src/monorepo/.claude/rules/server-client-separation.md +17 -0
- package/src/monorepo/.claude/rules/subagent-workflow.md +14 -0
- package/src/monorepo/.claude/rules/testing-quality.md +19 -0
- package/src/monorepo/.claude/rules/testing.md +16 -0
- package/src/monorepo/.claude/rules/ui-accessibility.md +18 -0
- package/src/monorepo/.claude/rules/version-control.md +14 -0
- package/src/monorepo/.claude/rules/what-to-avoid.md +14 -0
- package/src/monorepo/.claude/rules-snippets/agent-conduct.md +51 -0
- package/src/monorepo/.claude/rules-snippets/api-server.md +5 -0
- package/src/monorepo/.claude/rules-snippets/coding-standards.md +45 -0
- package/src/monorepo/.claude/rules-snippets/component-structure.md +6 -0
- package/src/monorepo/.claude/rules-snippets/core-libraries.md +6 -0
- package/src/monorepo/.claude/rules-snippets/deployment.md +41 -0
- package/src/monorepo/.claude/rules-snippets/documentation.md +210 -0
- package/src/monorepo/.claude/rules-snippets/environment-tooling.md +4 -0
- package/src/monorepo/.claude/rules-snippets/logging-comments.md +4 -0
- package/src/monorepo/.claude/rules-snippets/logging.md +107 -0
- package/src/monorepo/.claude/rules-snippets/patterns.md +134 -0
- package/src/monorepo/.claude/rules-snippets/ponytail.md +24 -0
- package/src/monorepo/.claude/rules-snippets/prisma-migrations.md +6 -0
- package/src/monorepo/.claude/rules-snippets/project-context.md +8 -0
- package/src/monorepo/.claude/rules-snippets/server-client-separation.md +5 -0
- package/src/monorepo/.claude/rules-snippets/subagent-workflow.md +134 -0
- package/src/monorepo/.claude/rules-snippets/testing-quality.md +5 -0
- package/src/monorepo/.claude/rules-snippets/testing.md +42 -0
- package/src/monorepo/.claude/rules-snippets/ui-accessibility.md +5 -0
- package/src/monorepo/.claude/rules-snippets/version-control.md +4 -0
- package/src/monorepo/.claude/rules-snippets/what-to-avoid.md +6 -0
- package/src/monorepo/.claude/rules-snippets/workflows.md +81 -0
- package/src/monorepo/.claude/settings.json +7 -0
- package/src/monorepo/.claude/skills/README.md +50 -0
- package/src/monorepo/.cursor/agents/admin-portal.agent.md +11 -0
- package/src/monorepo/.cursor/agents/api-specialist.agent.md +11 -0
- package/src/monorepo/.cursor/agents/backend-architect.agent.md +11 -0
- package/src/monorepo/.cursor/agents/documenter.agent.md +11 -0
- package/src/monorepo/.cursor/agents/feature-builder.agent.md +11 -0
- package/src/monorepo/.cursor/agents/frontend-developer.agent.md +11 -0
- package/src/monorepo/.cursor/agents/green.agent.md +11 -0
- package/src/monorepo/.cursor/agents/implementer.agent.md +11 -0
- package/src/monorepo/.cursor/agents/planner.agent.md +11 -0
- package/src/monorepo/.cursor/agents/red.agent.md +11 -0
- package/src/monorepo/.cursor/agents/refactor.agent.md +11 -0
- package/src/monorepo/.cursor/agents/researcher.agent.md +11 -0
- package/src/monorepo/.cursor/agents/reviewer.agent.md +11 -0
- package/src/monorepo/.cursor/agents/tdd.agent.md +11 -0
- package/src/monorepo/.cursor/commands/assign-tasks.md +13 -0
- package/src/monorepo/.cursor/commands/bootstrap-patch.md +17 -0
- package/src/monorepo/.cursor/commands/bootstrap-upgrade.md +15 -0
- package/src/monorepo/.cursor/commands/bootstrap.md +17 -0
- package/src/monorepo/.cursor/commands/commit-push.md +15 -0
- package/src/monorepo/.cursor/commands/constitution.md +17 -0
- package/src/monorepo/.cursor/commands/create-skill.md +17 -0
- package/src/monorepo/.cursor/commands/implement-feature.md +17 -0
- package/src/monorepo/.cursor/commands/implement-fixes.md +17 -0
- package/src/monorepo/.cursor/commands/implement.md +17 -0
- package/src/monorepo/.cursor/commands/plan.md +17 -0
- package/src/monorepo/.cursor/commands/playwright-test.md +15 -0
- package/src/monorepo/.cursor/commands/ponytail-audit.md +13 -0
- package/src/monorepo/.cursor/commands/ponytail-debt.md +13 -0
- package/src/monorepo/.cursor/commands/ponytail-gain.md +13 -0
- package/src/monorepo/.cursor/commands/ponytail-help.md +13 -0
- package/src/monorepo/.cursor/commands/ponytail-review.md +13 -0
- package/src/monorepo/.cursor/commands/ponytail.md +13 -0
- package/src/monorepo/.cursor/commands/release-notes.md +15 -0
- package/src/monorepo/.cursor/commands/review-pr.md +17 -0
- package/src/monorepo/.cursor/commands/review-staged.md +10 -0
- package/src/monorepo/.cursor/commands/review.md +17 -0
- package/src/monorepo/.cursor/commands/specify.md +17 -0
- package/src/monorepo/.cursor/commands/tasks.md +15 -0
- package/src/monorepo/.cursor/mcp.json +13 -0
- package/src/monorepo/.cursor/rules/agent-conduct.mdc +11 -0
- package/src/monorepo/.cursor/rules/api-server.mdc +11 -0
- package/src/monorepo/.cursor/rules/coding-standards.mdc +11 -0
- package/src/monorepo/.cursor/rules/component-structure.mdc +11 -0
- package/src/monorepo/.cursor/rules/core-libraries.mdc +11 -0
- package/src/monorepo/.cursor/rules/environment-tooling.mdc +11 -0
- package/src/monorepo/.cursor/rules/logging-comments.mdc +11 -0
- package/src/monorepo/.cursor/rules/logging.mdc +10 -0
- package/src/monorepo/.cursor/rules/orient-to-recent-work.mdc +9 -0
- package/src/monorepo/.cursor/rules/ponytail.mdc +9 -0
- package/src/monorepo/.cursor/rules/prisma-migrations.mdc +11 -0
- package/src/monorepo/.cursor/rules/project-context.mdc +11 -0
- package/src/monorepo/.cursor/rules/server-client-separation.mdc +11 -0
- package/src/monorepo/.cursor/rules/subagent-workflow.mdc +11 -0
- package/src/monorepo/.cursor/rules/testing-quality.mdc +11 -0
- package/src/monorepo/.cursor/rules/ui-accessibility.mdc +11 -0
- package/src/monorepo/.cursor/rules/version-control.mdc +11 -0
- package/src/monorepo/.cursor/rules/what-to-avoid.mdc +11 -0
- package/src/monorepo/.cursor/skills/README.md +50 -0
- package/src/monorepo/.github/agents/admin-portal.agent.md +11 -0
- package/src/monorepo/.github/agents/api-specialist.agent.md +11 -0
- package/src/monorepo/.github/agents/backend-architect.agent.md +11 -0
- package/src/monorepo/.github/agents/documenter.agent.md +11 -0
- package/src/monorepo/.github/agents/feature-builder.agent.md +24 -0
- package/src/monorepo/.github/agents/frontend-developer.agent.md +11 -0
- package/src/monorepo/.github/agents/green.agent.md +12 -0
- package/src/monorepo/.github/agents/implementer.agent.md +12 -0
- package/src/monorepo/.github/agents/planner.agent.md +12 -0
- package/src/monorepo/.github/agents/red.agent.md +12 -0
- package/src/monorepo/.github/agents/refactor.agent.md +12 -0
- package/src/monorepo/.github/agents/researcher.agent.md +12 -0
- package/src/monorepo/.github/agents/reviewer.agent.md +11 -0
- package/src/monorepo/.github/agents/tdd.agent.md +13 -0
- package/src/monorepo/.github/copilot-instructions.md +95 -0
- package/src/monorepo/.github/instructions/agent-conduct.instructions.md +14 -0
- package/src/monorepo/.github/instructions/api-server.instructions.md +14 -0
- package/src/monorepo/.github/instructions/coding-standards.instructions.md +13 -0
- package/src/monorepo/.github/instructions/component-structure.instructions.md +14 -0
- package/src/monorepo/.github/instructions/core-libraries.instructions.md +14 -0
- package/src/monorepo/.github/instructions/deployment.instructions.md +13 -0
- package/src/monorepo/.github/instructions/documentation.instructions.md +14 -0
- package/src/monorepo/.github/instructions/environment-tooling.instructions.md +14 -0
- package/src/monorepo/.github/instructions/logging-comments.instructions.md +14 -0
- package/src/monorepo/.github/instructions/logging.instructions.md +14 -0
- package/src/monorepo/.github/instructions/patterns.instructions.md +14 -0
- package/src/monorepo/.github/instructions/prisma-migrations.instructions.md +14 -0
- package/src/monorepo/.github/instructions/project-context.instructions.md +13 -0
- package/src/monorepo/.github/instructions/server-client-separation.instructions.md +14 -0
- package/src/monorepo/.github/instructions/subagent-workflow.instructions.md +14 -0
- package/src/monorepo/.github/instructions/testing-quality.instructions.md +15 -0
- package/src/monorepo/.github/instructions/testing.instructions.md +14 -0
- package/src/monorepo/.github/instructions/ui-accessibility.instructions.md +14 -0
- package/src/monorepo/.github/instructions/version-control.instructions.md +14 -0
- package/src/monorepo/.github/instructions/what-to-avoid.instructions.md +14 -0
- package/src/monorepo/.github/instructions/workflows.instructions.md +14 -0
- package/src/monorepo/.github/prompts/assign-tasks.prompt.md +14 -0
- package/src/monorepo/.github/prompts/bootstrap-patch.prompt.md +15 -0
- package/src/monorepo/.github/prompts/bootstrap-upgrade.prompt.md +15 -0
- package/src/monorepo/.github/prompts/bootstrap.prompt.md +15 -0
- package/src/monorepo/.github/prompts/commit-push.prompt.md +13 -0
- package/src/monorepo/.github/prompts/constitution.prompt.md +15 -0
- package/src/monorepo/.github/prompts/create-skill.prompt.md +15 -0
- package/src/monorepo/.github/prompts/implement-feature.prompt.md +15 -0
- package/src/monorepo/.github/prompts/implement-fixes.prompt.md +15 -0
- package/src/monorepo/.github/prompts/implement.prompt.md +15 -0
- package/src/monorepo/.github/prompts/plan.prompt.md +15 -0
- package/src/monorepo/.github/prompts/playwright-test.prompt.md +13 -0
- package/src/monorepo/.github/prompts/ponytail-audit.prompt.md +13 -0
- package/src/monorepo/.github/prompts/ponytail-debt.prompt.md +13 -0
- package/src/monorepo/.github/prompts/ponytail-gain.prompt.md +13 -0
- package/src/monorepo/.github/prompts/ponytail-help.prompt.md +13 -0
- package/src/monorepo/.github/prompts/ponytail-review.prompt.md +13 -0
- package/src/monorepo/.github/prompts/ponytail.prompt.md +13 -0
- package/src/monorepo/.github/prompts/release-notes.prompt.md +13 -0
- package/src/monorepo/.github/prompts/review-pr.prompt.md +15 -0
- package/src/monorepo/.github/prompts/review-staged.prompt.md +16 -0
- package/src/monorepo/.github/prompts/review.prompt.md +15 -0
- package/src/monorepo/.github/prompts/specify.prompt.md +15 -0
- package/src/monorepo/.github/prompts/tasks.prompt.md +13 -0
- package/src/monorepo/.github/skills/README.md +36 -0
- package/src/monorepo/.mcp.json +13 -0
- package/src/monorepo/.opencode/agents/admin-portal.md +14 -0
- package/src/monorepo/.opencode/agents/api-specialist.md +14 -0
- package/src/monorepo/.opencode/agents/backend-architect.md +14 -0
- package/src/monorepo/.opencode/agents/documenter.md +14 -0
- package/src/monorepo/.opencode/agents/feature-builder.md +15 -0
- package/src/monorepo/.opencode/agents/frontend-developer.md +14 -0
- package/src/monorepo/.opencode/agents/green.md +14 -0
- package/src/monorepo/.opencode/agents/implementer.md +14 -0
- package/src/monorepo/.opencode/agents/planner.md +14 -0
- package/src/monorepo/.opencode/agents/red.md +14 -0
- package/src/monorepo/.opencode/agents/refactor.md +14 -0
- package/src/monorepo/.opencode/agents/researcher.md +14 -0
- package/src/monorepo/.opencode/agents/reviewer.md +14 -0
- package/src/monorepo/.opencode/agents/tdd.md +15 -0
- package/src/monorepo/.opencode/commands/assign-tasks.md +16 -0
- package/src/monorepo/.opencode/commands/bootstrap-patch.md +18 -0
- package/src/monorepo/.opencode/commands/bootstrap-upgrade.md +18 -0
- package/src/monorepo/.opencode/commands/bootstrap.md +18 -0
- package/src/monorepo/.opencode/commands/commit-push.md +16 -0
- package/src/monorepo/.opencode/commands/constitution.md +18 -0
- package/src/monorepo/.opencode/commands/create-skill.md +16 -0
- package/src/monorepo/.opencode/commands/implement-feature.md +18 -0
- package/src/monorepo/.opencode/commands/implement-fixes.md +20 -0
- package/src/monorepo/.opencode/commands/implement.md +18 -0
- package/src/monorepo/.opencode/commands/plan.md +18 -0
- package/src/monorepo/.opencode/commands/playwright-test.md +16 -0
- package/src/monorepo/.opencode/commands/ponytail-audit.md +10 -0
- package/src/monorepo/.opencode/commands/ponytail-debt.md +10 -0
- package/src/monorepo/.opencode/commands/ponytail-gain.md +10 -0
- package/src/monorepo/.opencode/commands/ponytail-help.md +10 -0
- package/src/monorepo/.opencode/commands/ponytail-review.md +10 -0
- package/src/monorepo/.opencode/commands/ponytail.md +10 -0
- package/src/monorepo/.opencode/commands/release-notes.md +16 -0
- package/src/monorepo/.opencode/commands/review-pr.md +18 -0
- package/src/monorepo/.opencode/commands/review-staged.md +11 -0
- package/src/monorepo/.opencode/commands/review.md +18 -0
- package/src/monorepo/.opencode/commands/specify.md +18 -0
- package/src/monorepo/.opencode/commands/tasks.md +16 -0
- package/src/monorepo/.opencode/opencode.json +9 -0
- package/src/monorepo/.opencode/plugins/ponytail.mjs +79 -0
- package/src/monorepo/.opencode/rules/agent-conduct.md +12 -0
- package/src/monorepo/.opencode/rules/api-server.md +11 -0
- package/src/monorepo/.opencode/rules/coding-standards.md +11 -0
- package/src/monorepo/.opencode/rules/component-structure.md +11 -0
- package/src/monorepo/.opencode/rules/core-libraries.md +11 -0
- package/src/monorepo/.opencode/rules/environment-tooling.md +11 -0
- package/src/monorepo/.opencode/rules/logging-comments.md +11 -0
- package/src/monorepo/.opencode/rules/logging.md +11 -0
- package/src/monorepo/.opencode/rules/ponytail.md +3 -0
- package/src/monorepo/.opencode/rules/prisma-migrations.md +11 -0
- package/src/monorepo/.opencode/rules/project-context.md +11 -0
- package/src/monorepo/.opencode/rules/server-client-separation.md +11 -0
- package/src/monorepo/.opencode/rules/subagent-workflow.md +11 -0
- package/src/monorepo/.opencode/rules/testing-quality.md +11 -0
- package/src/monorepo/.opencode/rules/ui-accessibility.md +11 -0
- package/src/monorepo/.opencode/rules/version-control.md +11 -0
- package/src/monorepo/.opencode/rules/what-to-avoid.md +11 -0
- package/src/monorepo/.vscode/mcp.json +13 -0
- package/src/monorepo/AGENTS.md +367 -0
- package/src/monorepo/CLAUDE.md +63 -0
- package/src/monorepo/README.md +182 -0
- package/src/monorepo/apps/app-template/AGENTS.md +169 -0
- package/src/monorepo/apps/app-template/README.md +77 -0
- package/src/monorepo/docs/api/README.md +82 -0
- package/src/monorepo/docs/architecture/README.md +56 -0
- package/src/monorepo/docs/features/README.md +82 -0
- package/src/monorepo/docs/fixes/README.md +117 -0
- package/src/monorepo/hooks/claude-codex-hooks.json +31 -0
- package/src/monorepo/hooks/copilot-hooks.json +21 -0
- package/src/monorepo/hooks/ponytail-activate.js +91 -0
- package/src/monorepo/hooks/ponytail-config.js +122 -0
- package/src/monorepo/hooks/ponytail-instructions.js +92 -0
- package/src/monorepo/hooks/ponytail-mode-tracker.js +55 -0
- package/src/monorepo/hooks/ponytail-runtime.js +51 -0
- package/src/monorepo/hooks/ponytail-statusline.ps1 +21 -0
- package/src/monorepo/hooks/ponytail-statusline.sh +12 -0
- package/src/monorepo/packages/package-template/README.md +63 -0
- package/src/monorepo/templates/README.md +106 -0
- package/src/monorepo/templates/adr.template.md +156 -0
- package/src/monorepo/templates/complex-fix-plan.template.md +154 -0
- package/src/monorepo/templates/complex-fix-spec.template.md +160 -0
- package/src/monorepo/templates/feature-plan.template.md +192 -0
- package/src/monorepo/templates/feature-spec.template.md +148 -0
- package/src/monorepo/templates/monthly-fix-log.template.md +92 -0
- package/src/repo/.agents/rules/ponytail.md +3 -0
- package/src/repo/.agents/skills/acli/SKILL.md +424 -0
- package/src/repo/.agents/skills/bkt-cli/SKILL.md +374 -0
- package/src/repo/.agents/skills/brainstorming/SKILL.md +54 -0
- package/src/repo/.agents/skills/code-simplifier/SKILL.md +109 -0
- package/src/repo/.agents/skills/debugger/SKILL.md +123 -0
- package/src/repo/.agents/skills/dispatching-parallel-agents/SKILL.md +206 -0
- package/src/repo/.agents/skills/executing-plans/SKILL.md +76 -0
- package/src/repo/.agents/skills/finishing-a-development-branch/SKILL.md +200 -0
- package/src/repo/.agents/skills/gh-cli/SKILL.md +461 -0
- package/src/repo/.agents/skills/glab-cli/SKILL.md +468 -0
- package/src/repo/.agents/skills/issue-tracker/SKILL.md +119 -0
- package/src/repo/.agents/skills/linear-cli/SKILL.md +276 -0
- package/src/repo/.agents/skills/logging/SKILL.md +559 -0
- package/src/repo/.agents/skills/orient-to-recent-work/SKILL.md +43 -0
- package/src/repo/.agents/skills/ponytail/SKILL.md +101 -0
- package/src/repo/.agents/skills/ponytail-audit/SKILL.md +41 -0
- package/src/repo/.agents/skills/ponytail-debt/SKILL.md +44 -0
- package/src/repo/.agents/skills/ponytail-gain/SKILL.md +51 -0
- package/src/repo/.agents/skills/ponytail-help/SKILL.md +74 -0
- package/src/repo/.agents/skills/ponytail-review/SKILL.md +57 -0
- package/src/repo/.agents/skills/project-documentation/SKILL.md +367 -0
- package/src/repo/.agents/skills/receiving-code-review/SKILL.md +213 -0
- package/src/repo/.agents/skills/requesting-code-review/SKILL.md +105 -0
- package/src/repo/.agents/skills/requesting-code-review/code-reviewer.md +146 -0
- package/src/repo/.agents/skills/security-reviewer/SKILL.md +144 -0
- package/src/repo/.agents/skills/subagent-driven-development/SKILL.md +279 -0
- package/src/repo/.agents/skills/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
- package/src/repo/.agents/skills/subagent-driven-development/implementer-prompt.md +78 -0
- package/src/repo/.agents/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/src/repo/.agents/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/src/repo/.agents/skills/systematic-debugging/SKILL.md +296 -0
- package/src/repo/.agents/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/src/repo/.agents/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/src/repo/.agents/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/src/repo/.agents/skills/systematic-debugging/find-polluter.sh +63 -0
- package/src/repo/.agents/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/src/repo/.agents/skills/systematic-debugging/test-academic.md +14 -0
- package/src/repo/.agents/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/src/repo/.agents/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/src/repo/.agents/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/src/repo/.agents/skills/test-driven-development/SKILL.md +371 -0
- package/src/repo/.agents/skills/test-driven-development/testing-anti-patterns.md +299 -0
- package/src/repo/.agents/skills/using-git-worktrees/SKILL.md +291 -0
- package/src/repo/.agents/skills/using-superpowers/SKILL.md +87 -0
- package/src/repo/.agents/skills/verification-before-completion/SKILL.md +148 -0
- package/src/repo/.agents/skills/writing-plans/SKILL.md +116 -0
- package/src/repo/.agents/skills/writing-skills/SKILL.md +655 -0
- package/src/repo/.agents/skills/writing-skills/anthropic-best-practices.md +1150 -0
- package/src/repo/.agents/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/src/repo/.agents/skills/writing-skills/graphviz-conventions.dot +172 -0
- package/src/repo/.agents/skills/writing-skills/persuasion-principles.md +187 -0
- package/src/repo/.agents/skills/writing-skills/render-graphs.js +168 -0
- package/src/repo/.agents/skills/writing-skills/testing-skills-with-subagents.md +384 -0
- package/src/repo/.claude/agents/admin-portal.agent.md +12 -0
- package/src/repo/.claude/agents/api-specialist.agent.md +12 -0
- package/src/repo/.claude/agents/backend-architect.agent.md +12 -0
- package/src/repo/.claude/agents/documenter.agent.md +12 -0
- package/src/repo/.claude/agents/feature-builder.agent.md +12 -0
- package/src/repo/.claude/agents/frontend-developer.agent.md +12 -0
- package/src/repo/.claude/agents/green.agent.md +12 -0
- package/src/repo/.claude/agents/implementer.agent.md +12 -0
- package/src/repo/.claude/agents/planner.agent.md +12 -0
- package/src/repo/.claude/agents/red.agent.md +12 -0
- package/src/repo/.claude/agents/refactor.agent.md +12 -0
- package/src/repo/.claude/agents/researcher.agent.md +12 -0
- package/src/repo/.claude/agents/reviewer.agent.md +12 -0
- package/src/repo/.claude/agents/tdd.agent.md +12 -0
- package/src/repo/.claude/agents-snippets/admin-portal.md +90 -0
- package/src/repo/.claude/agents-snippets/api-specialist.md +57 -0
- package/src/repo/.claude/agents-snippets/backend-architect.md +49 -0
- package/src/repo/.claude/agents-snippets/documenter.md +58 -0
- package/src/repo/.claude/agents-snippets/feature-builder.md +49 -0
- package/src/repo/.claude/agents-snippets/frontend-developer.md +49 -0
- package/src/repo/.claude/agents-snippets/green.md +18 -0
- package/src/repo/.claude/agents-snippets/implementer.md +31 -0
- package/src/repo/.claude/agents-snippets/planner.md +40 -0
- package/src/repo/.claude/agents-snippets/red.md +14 -0
- package/src/repo/.claude/agents-snippets/refactor.md +22 -0
- package/src/repo/.claude/agents-snippets/researcher.md +43 -0
- package/src/repo/.claude/agents-snippets/reviewer.md +83 -0
- package/src/repo/.claude/agents-snippets/tdd.md +18 -0
- package/src/repo/.claude/commands/assign-tasks.md +13 -0
- package/src/repo/.claude/commands/bootstrap-patch.md +15 -0
- package/src/repo/.claude/commands/bootstrap-upgrade.md +15 -0
- package/src/repo/.claude/commands/bootstrap.md +15 -0
- package/src/repo/.claude/commands/commit-push.md +13 -0
- package/src/repo/.claude/commands/constitution.md +15 -0
- package/src/repo/.claude/commands/create-skill.md +13 -0
- package/src/repo/.claude/commands/implement-feature.md +15 -0
- package/src/repo/.claude/commands/implement-fixes.md +15 -0
- package/src/repo/.claude/commands/implement.md +15 -0
- package/src/repo/.claude/commands/plan.md +15 -0
- package/src/repo/.claude/commands/playwright-test.md +13 -0
- package/src/repo/.claude/commands/ponytail-audit.md +15 -0
- package/src/repo/.claude/commands/ponytail-debt.md +15 -0
- package/src/repo/.claude/commands/ponytail-gain.md +15 -0
- package/src/repo/.claude/commands/ponytail-help.md +15 -0
- package/src/repo/.claude/commands/ponytail-review.md +15 -0
- package/src/repo/.claude/commands/ponytail.md +15 -0
- package/src/repo/.claude/commands/release-notes.md +13 -0
- package/src/repo/.claude/commands/review-pr.md +15 -0
- package/src/repo/.claude/commands/review-staged.md +15 -0
- package/src/repo/.claude/commands/review.md +15 -0
- package/src/repo/.claude/commands/specify.md +15 -0
- package/src/repo/.claude/commands/tasks.md +13 -0
- package/src/repo/.claude/prompt-snippets/assign-tasks.md +170 -0
- package/src/repo/.claude/prompt-snippets/bootstrap-patch.md +200 -0
- package/src/repo/.claude/prompt-snippets/bootstrap-upgrade.md +357 -0
- package/src/repo/.claude/prompt-snippets/bootstrap.md +1026 -0
- package/src/repo/.claude/prompt-snippets/commit-push.md +70 -0
- package/src/repo/.claude/prompt-snippets/constitution.md +57 -0
- package/src/repo/.claude/prompt-snippets/create-skill.md +490 -0
- package/src/repo/.claude/prompt-snippets/implement-feature.md +124 -0
- package/src/repo/.claude/prompt-snippets/implement-fixes.md +116 -0
- package/src/repo/.claude/prompt-snippets/implement.md +56 -0
- package/src/repo/.claude/prompt-snippets/plan.md +94 -0
- package/src/repo/.claude/prompt-snippets/playwright-test.md +58 -0
- package/src/repo/.claude/prompt-snippets/ponytail-audit.md +5 -0
- package/src/repo/.claude/prompt-snippets/ponytail-debt.md +5 -0
- package/src/repo/.claude/prompt-snippets/ponytail-gain.md +5 -0
- package/src/repo/.claude/prompt-snippets/ponytail-help.md +5 -0
- package/src/repo/.claude/prompt-snippets/ponytail-review.md +5 -0
- package/src/repo/.claude/prompt-snippets/ponytail.md +5 -0
- package/src/repo/.claude/prompt-snippets/release-notes.md +204 -0
- package/src/repo/.claude/prompt-snippets/review-pr.md +156 -0
- package/src/repo/.claude/prompt-snippets/review-staged.md +35 -0
- package/src/repo/.claude/prompt-snippets/review.md +139 -0
- package/src/repo/.claude/prompt-snippets/specify.md +84 -0
- package/src/repo/.claude/prompt-snippets/tasks.md +146 -0
- package/src/repo/.claude/rules/agent-conduct.md +13 -0
- package/src/repo/.claude/rules/api-server.md +16 -0
- package/src/repo/.claude/rules/coding-standards.md +13 -0
- package/src/repo/.claude/rules/component-structure.md +15 -0
- package/src/repo/.claude/rules/core-libraries.md +13 -0
- package/src/repo/.claude/rules/environment-tooling.md +13 -0
- package/src/repo/.claude/rules/logging-comments.md +13 -0
- package/src/repo/.claude/rules/logging.md +13 -0
- package/src/repo/.claude/rules/orient-to-recent-work.md +13 -0
- package/src/repo/.claude/rules/prisma-migrations.md +16 -0
- package/src/repo/.claude/rules/project-context.md +13 -0
- package/src/repo/.claude/rules/server-client-separation.md +13 -0
- package/src/repo/.claude/rules/subagent-workflow.md +13 -0
- package/src/repo/.claude/rules/testing-quality.md +16 -0
- package/src/repo/.claude/rules/testing.md +16 -0
- package/src/repo/.claude/rules/ui-accessibility.md +15 -0
- package/src/repo/.claude/rules/version-control.md +13 -0
- package/src/repo/.claude/rules/what-to-avoid.md +13 -0
- package/src/repo/.claude/rules-snippets/agent-conduct.md +51 -0
- package/src/repo/.claude/rules-snippets/api-server.md +7 -0
- package/src/repo/.claude/rules-snippets/coding-standards.md +45 -0
- package/src/repo/.claude/rules-snippets/component-structure.md +8 -0
- package/src/repo/.claude/rules-snippets/core-libraries.md +6 -0
- package/src/repo/.claude/rules-snippets/deployment.md +38 -0
- package/src/repo/.claude/rules-snippets/documentation.md +621 -0
- package/src/repo/.claude/rules-snippets/environment-tooling.md +6 -0
- package/src/repo/.claude/rules-snippets/logging-comments.md +4 -0
- package/src/repo/.claude/rules-snippets/logging.md +352 -0
- package/src/repo/.claude/rules-snippets/patterns.md +29 -0
- package/src/repo/.claude/rules-snippets/ponytail.md +24 -0
- package/src/repo/.claude/rules-snippets/prisma-migrations.md +8 -0
- package/src/repo/.claude/rules-snippets/project-context.md +25 -0
- package/src/repo/.claude/rules-snippets/server-client-separation.md +7 -0
- package/src/repo/.claude/rules-snippets/subagent-workflow.md +134 -0
- package/src/repo/.claude/rules-snippets/testing-quality.md +5 -0
- package/src/repo/.claude/rules-snippets/testing.md +38 -0
- package/src/repo/.claude/rules-snippets/ui-accessibility.md +7 -0
- package/src/repo/.claude/rules-snippets/version-control.md +6 -0
- package/src/repo/.claude/rules-snippets/what-to-avoid.md +8 -0
- package/src/repo/.claude/rules-snippets/workflows.md +25 -0
- package/src/repo/.claude/settings.json +7 -0
- package/src/repo/.claude/skills/README.md +50 -0
- package/src/repo/.cursor/agents/admin-portal.agent.md +11 -0
- package/src/repo/.cursor/agents/api-specialist.agent.md +11 -0
- package/src/repo/.cursor/agents/backend-architect.agent.md +11 -0
- package/src/repo/.cursor/agents/documenter.agent.md +11 -0
- package/src/repo/.cursor/agents/feature-builder.agent.md +11 -0
- package/src/repo/.cursor/agents/frontend-developer.agent.md +11 -0
- package/src/repo/.cursor/agents/green.agent.md +11 -0
- package/src/repo/.cursor/agents/implementer.agent.md +11 -0
- package/src/repo/.cursor/agents/planner.agent.md +11 -0
- package/src/repo/.cursor/agents/red.agent.md +11 -0
- package/src/repo/.cursor/agents/refactor.agent.md +11 -0
- package/src/repo/.cursor/agents/researcher.agent.md +11 -0
- package/src/repo/.cursor/agents/reviewer.agent.md +11 -0
- package/src/repo/.cursor/agents/tdd.agent.md +11 -0
- package/src/repo/.cursor/commands/assign-tasks.md +13 -0
- package/src/repo/.cursor/commands/bootstrap-patch.md +17 -0
- package/src/repo/.cursor/commands/bootstrap-upgrade.md +15 -0
- package/src/repo/.cursor/commands/bootstrap.md +17 -0
- package/src/repo/.cursor/commands/commit-push.md +15 -0
- package/src/repo/.cursor/commands/constitution.md +17 -0
- package/src/repo/.cursor/commands/create-skill.md +15 -0
- package/src/repo/.cursor/commands/implement-feature.md +17 -0
- package/src/repo/.cursor/commands/implement-fixes.md +17 -0
- package/src/repo/.cursor/commands/implement.md +17 -0
- package/src/repo/.cursor/commands/plan.md +17 -0
- package/src/repo/.cursor/commands/playwright-test.md +15 -0
- package/src/repo/.cursor/commands/ponytail-audit.md +13 -0
- package/src/repo/.cursor/commands/ponytail-debt.md +13 -0
- package/src/repo/.cursor/commands/ponytail-gain.md +13 -0
- package/src/repo/.cursor/commands/ponytail-help.md +13 -0
- package/src/repo/.cursor/commands/ponytail-review.md +13 -0
- package/src/repo/.cursor/commands/ponytail.md +13 -0
- package/src/repo/.cursor/commands/release-notes.md +15 -0
- package/src/repo/.cursor/commands/review-pr.md +17 -0
- package/src/repo/.cursor/commands/review-staged.md +10 -0
- package/src/repo/.cursor/commands/review.md +17 -0
- package/src/repo/.cursor/commands/specify.md +17 -0
- package/src/repo/.cursor/commands/tasks.md +15 -0
- package/src/repo/.cursor/mcp.json +13 -0
- package/src/repo/.cursor/rules/agent-conduct.mdc +11 -0
- package/src/repo/.cursor/rules/api-server.mdc +11 -0
- package/src/repo/.cursor/rules/coding-standards.mdc +11 -0
- package/src/repo/.cursor/rules/component-structure.mdc +11 -0
- package/src/repo/.cursor/rules/core-libraries.mdc +11 -0
- package/src/repo/.cursor/rules/environment-tooling.mdc +11 -0
- package/src/repo/.cursor/rules/logging-comments.mdc +11 -0
- package/src/repo/.cursor/rules/logging.mdc +11 -0
- package/src/repo/.cursor/rules/orient-to-recent-work.mdc +9 -0
- package/src/repo/.cursor/rules/ponytail.mdc +9 -0
- package/src/repo/.cursor/rules/prisma-migrations.mdc +11 -0
- package/src/repo/.cursor/rules/project-context.mdc +11 -0
- package/src/repo/.cursor/rules/server-client-separation.mdc +11 -0
- package/src/repo/.cursor/rules/subagent-workflow.mdc +11 -0
- package/src/repo/.cursor/rules/testing-quality.mdc +11 -0
- package/src/repo/.cursor/rules/ui-accessibility.mdc +11 -0
- package/src/repo/.cursor/rules/version-control.mdc +11 -0
- package/src/repo/.cursor/rules/what-to-avoid.mdc +11 -0
- package/src/repo/.cursor/skills/README.md +50 -0
- package/src/repo/.github/agents/admin-portal.agent.md +11 -0
- package/src/repo/.github/agents/api-specialist.agent.md +11 -0
- package/src/repo/.github/agents/backend-architect.agent.md +11 -0
- package/src/repo/.github/agents/documenter.agent.md +11 -0
- package/src/repo/.github/agents/feature-builder.agent.md +24 -0
- package/src/repo/.github/agents/frontend-developer.agent.md +11 -0
- package/src/repo/.github/agents/green.agent.md +12 -0
- package/src/repo/.github/agents/implementer.agent.md +12 -0
- package/src/repo/.github/agents/planner.agent.md +12 -0
- package/src/repo/.github/agents/red.agent.md +12 -0
- package/src/repo/.github/agents/refactor.agent.md +12 -0
- package/src/repo/.github/agents/researcher.agent.md +12 -0
- package/src/repo/.github/agents/reviewer.agent.md +11 -0
- package/src/repo/.github/agents/tdd.agent.md +13 -0
- package/src/repo/.github/copilot-instructions.md +89 -0
- package/src/repo/.github/instructions/agent-conduct.instructions.md +13 -0
- package/src/repo/.github/instructions/api-server.instructions.md +13 -0
- package/src/repo/.github/instructions/coding-standards.instructions.md +13 -0
- package/src/repo/.github/instructions/component-structure.instructions.md +13 -0
- package/src/repo/.github/instructions/core-libraries.instructions.md +13 -0
- package/src/repo/.github/instructions/deployment.instructions.md +13 -0
- package/src/repo/.github/instructions/documentation.instructions.md +14 -0
- package/src/repo/.github/instructions/environment-tooling.instructions.md +13 -0
- package/src/repo/.github/instructions/logging-comments.instructions.md +13 -0
- package/src/repo/.github/instructions/logging.instructions.md +13 -0
- package/src/repo/.github/instructions/patterns.instructions.md +13 -0
- package/src/repo/.github/instructions/prisma-migrations.instructions.md +13 -0
- package/src/repo/.github/instructions/project-context.instructions.md +13 -0
- package/src/repo/.github/instructions/server-client-separation.instructions.md +13 -0
- package/src/repo/.github/instructions/subagent-workflow.instructions.md +13 -0
- package/src/repo/.github/instructions/testing-quality.instructions.md +13 -0
- package/src/repo/.github/instructions/testing.instructions.md +13 -0
- package/src/repo/.github/instructions/ui-accessibility.instructions.md +13 -0
- package/src/repo/.github/instructions/version-control.instructions.md +13 -0
- package/src/repo/.github/instructions/what-to-avoid.instructions.md +13 -0
- package/src/repo/.github/instructions/workflows.instructions.md +13 -0
- package/src/repo/.github/prompts/assign-tasks.prompt.md +14 -0
- package/src/repo/.github/prompts/bootstrap-patch.prompt.md +16 -0
- package/src/repo/.github/prompts/bootstrap-upgrade.prompt.md +15 -0
- package/src/repo/.github/prompts/bootstrap.prompt.md +16 -0
- package/src/repo/.github/prompts/commit-push.prompt.md +14 -0
- package/src/repo/.github/prompts/constitution.prompt.md +16 -0
- package/src/repo/.github/prompts/create-skill.prompt.md +16 -0
- package/src/repo/.github/prompts/implement-feature.prompt.md +16 -0
- package/src/repo/.github/prompts/implement-fixes.prompt.md +16 -0
- package/src/repo/.github/prompts/implement.prompt.md +16 -0
- package/src/repo/.github/prompts/plan.prompt.md +16 -0
- package/src/repo/.github/prompts/playwright-test.prompt.md +14 -0
- package/src/repo/.github/prompts/ponytail-audit.prompt.md +13 -0
- package/src/repo/.github/prompts/ponytail-debt.prompt.md +13 -0
- package/src/repo/.github/prompts/ponytail-gain.prompt.md +13 -0
- package/src/repo/.github/prompts/ponytail-help.prompt.md +13 -0
- package/src/repo/.github/prompts/ponytail-review.prompt.md +13 -0
- package/src/repo/.github/prompts/ponytail.prompt.md +13 -0
- package/src/repo/.github/prompts/release-notes.prompt.md +14 -0
- package/src/repo/.github/prompts/review-pr.prompt.md +16 -0
- package/src/repo/.github/prompts/review-staged.prompt.md +16 -0
- package/src/repo/.github/prompts/review.prompt.md +16 -0
- package/src/repo/.github/prompts/specify.prompt.md +16 -0
- package/src/repo/.github/prompts/tasks.prompt.md +14 -0
- package/src/repo/.github/skills/README.md +36 -0
- package/src/repo/.mcp.json +13 -0
- package/src/repo/.opencode/agents/admin-portal.md +14 -0
- package/src/repo/.opencode/agents/api-specialist.md +14 -0
- package/src/repo/.opencode/agents/backend-architect.md +14 -0
- package/src/repo/.opencode/agents/documenter.md +14 -0
- package/src/repo/.opencode/agents/feature-builder.md +15 -0
- package/src/repo/.opencode/agents/frontend-developer.md +14 -0
- package/src/repo/.opencode/agents/green.md +14 -0
- package/src/repo/.opencode/agents/implementer.md +14 -0
- package/src/repo/.opencode/agents/planner.md +14 -0
- package/src/repo/.opencode/agents/red.md +14 -0
- package/src/repo/.opencode/agents/refactor.md +14 -0
- package/src/repo/.opencode/agents/researcher.md +14 -0
- package/src/repo/.opencode/agents/reviewer.md +14 -0
- package/src/repo/.opencode/agents/tdd.md +15 -0
- package/src/repo/.opencode/commands/assign-tasks.md +16 -0
- package/src/repo/.opencode/commands/bootstrap-patch.md +18 -0
- package/src/repo/.opencode/commands/bootstrap-upgrade.md +18 -0
- package/src/repo/.opencode/commands/bootstrap.md +18 -0
- package/src/repo/.opencode/commands/commit-push.md +16 -0
- package/src/repo/.opencode/commands/constitution.md +18 -0
- package/src/repo/.opencode/commands/create-skill.md +16 -0
- package/src/repo/.opencode/commands/implement-feature.md +18 -0
- package/src/repo/.opencode/commands/implement-fixes.md +20 -0
- package/src/repo/.opencode/commands/implement.md +18 -0
- package/src/repo/.opencode/commands/plan.md +18 -0
- package/src/repo/.opencode/commands/playwright-test.md +16 -0
- package/src/repo/.opencode/commands/ponytail-audit.md +10 -0
- package/src/repo/.opencode/commands/ponytail-debt.md +10 -0
- package/src/repo/.opencode/commands/ponytail-gain.md +10 -0
- package/src/repo/.opencode/commands/ponytail-help.md +10 -0
- package/src/repo/.opencode/commands/ponytail-review.md +10 -0
- package/src/repo/.opencode/commands/ponytail.md +10 -0
- package/src/repo/.opencode/commands/release-notes.md +16 -0
- package/src/repo/.opencode/commands/review-pr.md +18 -0
- package/src/repo/.opencode/commands/review-staged.md +11 -0
- package/src/repo/.opencode/commands/review.md +18 -0
- package/src/repo/.opencode/commands/specify.md +18 -0
- package/src/repo/.opencode/commands/tasks.md +16 -0
- package/src/repo/.opencode/opencode.json +9 -0
- package/src/repo/.opencode/plugins/ponytail.mjs +79 -0
- package/src/repo/.opencode/rules/agent-conduct.md +11 -0
- package/src/repo/.opencode/rules/api-server.md +11 -0
- package/src/repo/.opencode/rules/coding-standards.md +11 -0
- package/src/repo/.opencode/rules/component-structure.md +11 -0
- package/src/repo/.opencode/rules/core-libraries.md +11 -0
- package/src/repo/.opencode/rules/environment-tooling.md +11 -0
- package/src/repo/.opencode/rules/logging-comments.md +11 -0
- package/src/repo/.opencode/rules/logging.md +11 -0
- package/src/repo/.opencode/rules/ponytail.md +3 -0
- package/src/repo/.opencode/rules/prisma-migrations.md +11 -0
- package/src/repo/.opencode/rules/project-context.md +11 -0
- package/src/repo/.opencode/rules/server-client-separation.md +11 -0
- package/src/repo/.opencode/rules/subagent-workflow.md +11 -0
- package/src/repo/.opencode/rules/testing-quality.md +11 -0
- package/src/repo/.opencode/rules/ui-accessibility.md +11 -0
- package/src/repo/.opencode/rules/version-control.md +11 -0
- package/src/repo/.opencode/rules/what-to-avoid.md +11 -0
- package/src/repo/.vscode/mcp.json +13 -0
- package/src/repo/AGENTS.md +387 -0
- package/src/repo/CLAUDE.md +51 -0
- package/src/repo/README.md +145 -0
- package/src/repo/docs/api/README.md +82 -0
- package/src/repo/docs/architecture/README.md +56 -0
- package/src/repo/docs/features/README.md +82 -0
- package/src/repo/docs/fixes/README.md +117 -0
- package/src/repo/hooks/claude-codex-hooks.json +31 -0
- package/src/repo/hooks/copilot-hooks.json +21 -0
- package/src/repo/hooks/ponytail-activate.js +91 -0
- package/src/repo/hooks/ponytail-config.js +122 -0
- package/src/repo/hooks/ponytail-instructions.js +92 -0
- package/src/repo/hooks/ponytail-mode-tracker.js +55 -0
- package/src/repo/hooks/ponytail-runtime.js +51 -0
- package/src/repo/hooks/ponytail-statusline.ps1 +21 -0
- package/src/repo/hooks/ponytail-statusline.sh +12 -0
- package/src/repo/templates/README.md +80 -0
- package/src/repo/templates/adr.template.md +162 -0
- package/src/repo/templates/complex-fix-plan.template.md +162 -0
- package/src/repo/templates/complex-fix-spec.template.md +163 -0
- package/src/repo/templates/feature-plan.template.md +202 -0
- package/src/repo/templates/feature-spec.template.md +148 -0
- package/src/repo/templates/monthly-fix-log.template.md +91 -0
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
# Logging Standards
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Consistent logging is critical for debugging, monitoring, and understanding application behavior in production.
|
|
6
|
+
|
|
7
|
+
## Log Format
|
|
8
|
+
|
|
9
|
+
### Structured Logging
|
|
10
|
+
|
|
11
|
+
Use bracketed tags to identify the source:
|
|
12
|
+
|
|
13
|
+
```{{FILE_EXTENSION}}
|
|
14
|
+
[ComponentName]: message
|
|
15
|
+
[ServiceName]: operation completed
|
|
16
|
+
[UtilityName]: processing data
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Log Message Structure
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
[Source] [Context]: Action/Event | Additional details
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Examples:**
|
|
26
|
+
|
|
27
|
+
```javascript
|
|
28
|
+
// Good
|
|
29
|
+
console.log("[UserService] [fetchUser]: Retrieved user data | userId:", userId);
|
|
30
|
+
console.error(
|
|
31
|
+
"[PaymentService] [processPayment]: Payment failed | error:",
|
|
32
|
+
error.message,
|
|
33
|
+
);
|
|
34
|
+
console.warn("[CacheService] [invalidate]: Cache miss | key:", cacheKey);
|
|
35
|
+
|
|
36
|
+
// Bad
|
|
37
|
+
console.log("got user");
|
|
38
|
+
console.error("error");
|
|
39
|
+
console.log(data);
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Log Levels
|
|
43
|
+
|
|
44
|
+
### error
|
|
45
|
+
|
|
46
|
+
**Use for:** Critical failures that require immediate attention
|
|
47
|
+
|
|
48
|
+
- Unhandled exceptions
|
|
49
|
+
- Database connection failures
|
|
50
|
+
- External API failures
|
|
51
|
+
- Data corruption
|
|
52
|
+
- Security violations
|
|
53
|
+
|
|
54
|
+
```{{FILE_EXTENSION}}
|
|
55
|
+
console.error('[DatabaseService]: Connection failed | error:', error);
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### warn
|
|
59
|
+
|
|
60
|
+
**Use for:** Issues that don't stop execution but need attention
|
|
61
|
+
|
|
62
|
+
- Deprecated API usage
|
|
63
|
+
- Rate limit approaching
|
|
64
|
+
- Fallback behavior triggered
|
|
65
|
+
- Configuration issues
|
|
66
|
+
- Unexpected but handled states
|
|
67
|
+
|
|
68
|
+
```{{FILE_EXTENSION}}
|
|
69
|
+
console.warn('[AuthService]: Using fallback auth method | reason:', reason);
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### info
|
|
73
|
+
|
|
74
|
+
**Use for:** Significant application events
|
|
75
|
+
|
|
76
|
+
- Application startup/shutdown
|
|
77
|
+
- Configuration loaded
|
|
78
|
+
- User authentication
|
|
79
|
+
- Major state changes
|
|
80
|
+
- Background job completion
|
|
81
|
+
|
|
82
|
+
```{{FILE_EXTENSION}}
|
|
83
|
+
console.info('[Application]: Started successfully | port:', port);
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### debug
|
|
87
|
+
|
|
88
|
+
**Use for:** Detailed diagnostic information
|
|
89
|
+
|
|
90
|
+
- Function entry/exit
|
|
91
|
+
- Variable values
|
|
92
|
+
- Conditional branches taken
|
|
93
|
+
- Loop iterations
|
|
94
|
+
- Algorithm steps
|
|
95
|
+
|
|
96
|
+
```{{FILE_EXTENSION}}
|
|
97
|
+
console.debug('[Validator]: Checking constraints | input:', input);
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Logging Best Practices
|
|
101
|
+
|
|
102
|
+
### Do
|
|
103
|
+
|
|
104
|
+
✅ **Include context**: User IDs, request IDs, timestamps
|
|
105
|
+
✅ **Log at boundaries**: API calls, database queries, external services
|
|
106
|
+
✅ **Use appropriate levels**: Match severity to log level
|
|
107
|
+
✅ **Include error stack traces**: For debugging
|
|
108
|
+
✅ **Log state changes**: Before and after important operations
|
|
109
|
+
✅ **Use structured data**: Objects for complex data
|
|
110
|
+
✅ **Sanitize sensitive data**: Remove passwords, tokens, PII
|
|
111
|
+
|
|
112
|
+
### Don't
|
|
113
|
+
|
|
114
|
+
❌ **Log in tight loops**: Can impact performance
|
|
115
|
+
❌ **Log sensitive data**: Passwords, API keys, tokens, PII
|
|
116
|
+
❌ **Use console.log in production**: Use proper logging library
|
|
117
|
+
❌ **Log entire objects blindly**: Can expose sensitive data
|
|
118
|
+
❌ **Ignore error context**: Include stack traces and related data
|
|
119
|
+
❌ **Use vague messages**: "Error occurred", "Success", "Done"
|
|
120
|
+
❌ **Log at wrong level**: Info for errors, error for warnings
|
|
121
|
+
|
|
122
|
+
## Sensitive Data Handling
|
|
123
|
+
|
|
124
|
+
### Never Log
|
|
125
|
+
|
|
126
|
+
- Passwords (plain or hashed)
|
|
127
|
+
- API keys and tokens
|
|
128
|
+
- Private keys and certificates
|
|
129
|
+
- Credit card numbers
|
|
130
|
+
- Social security numbers
|
|
131
|
+
- Personal health information
|
|
132
|
+
- Authentication cookies/sessions
|
|
133
|
+
|
|
134
|
+
### Sanitization Examples
|
|
135
|
+
|
|
136
|
+
```javascript
|
|
137
|
+
// Bad
|
|
138
|
+
console.log("[AuthService]: Login attempt", { username, password });
|
|
139
|
+
|
|
140
|
+
// Good
|
|
141
|
+
console.log("[AuthService]: Login attempt | username:", username);
|
|
142
|
+
|
|
143
|
+
// Bad
|
|
144
|
+
console.log("[PaymentService]: Processing payment", paymentData);
|
|
145
|
+
|
|
146
|
+
// Good
|
|
147
|
+
const sanitized = {
|
|
148
|
+
...paymentData,
|
|
149
|
+
cardNumber: "****" + paymentData.cardNumber.slice(-4),
|
|
150
|
+
cvv: "***",
|
|
151
|
+
};
|
|
152
|
+
console.log("[PaymentService]: Processing payment", sanitized);
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Performance Considerations
|
|
156
|
+
|
|
157
|
+
### Conditional Logging
|
|
158
|
+
|
|
159
|
+
```javascript
|
|
160
|
+
// Only log in development
|
|
161
|
+
if (process.env.NODE_ENV === "development") {
|
|
162
|
+
console.debug("[DataProcessor]: Intermediate result", data);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// Use log level checks
|
|
166
|
+
if (logger.level <= LogLevel.DEBUG) {
|
|
167
|
+
console.debug("[Service]: Expensive computation", expensiveOperation());
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Avoid Logging in Hot Paths
|
|
172
|
+
|
|
173
|
+
```javascript
|
|
174
|
+
// Bad - logs on every iteration
|
|
175
|
+
for (const item of items) {
|
|
176
|
+
console.log("[Processor]: Processing item", item);
|
|
177
|
+
process(item);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// Good - log summary
|
|
181
|
+
console.info("[Processor]: Processing batch | count:", items.length);
|
|
182
|
+
for (const item of items) {
|
|
183
|
+
process(item);
|
|
184
|
+
}
|
|
185
|
+
console.info("[Processor]: Batch complete | processed:", items.length);
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Error Logging
|
|
189
|
+
|
|
190
|
+
### Complete Error Context
|
|
191
|
+
|
|
192
|
+
```javascript
|
|
193
|
+
try {
|
|
194
|
+
await riskyOperation();
|
|
195
|
+
} catch (error) {
|
|
196
|
+
console.error("[ServiceName] [operation]: Operation failed", {
|
|
197
|
+
error: error.message,
|
|
198
|
+
stack: error.stack,
|
|
199
|
+
context: { userId, requestId, timestamp: Date.now() },
|
|
200
|
+
});
|
|
201
|
+
// Re-throw or handle
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Structured Error Logging
|
|
206
|
+
|
|
207
|
+
```javascript
|
|
208
|
+
const logError = (source, operation, error, context = {}) => {
|
|
209
|
+
console.error(`[${source}] [${operation}]: ${error.message}`, {
|
|
210
|
+
error: {
|
|
211
|
+
name: error.name,
|
|
212
|
+
message: error.message,
|
|
213
|
+
stack: error.stack,
|
|
214
|
+
},
|
|
215
|
+
...context,
|
|
216
|
+
});
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
// Usage
|
|
220
|
+
logError("UserService", "createUser", error, { userId, email });
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Framework-Specific Guidelines
|
|
224
|
+
|
|
225
|
+
### Next.js
|
|
226
|
+
|
|
227
|
+
```typescript
|
|
228
|
+
// Server components
|
|
229
|
+
import { logger } from "@/lib/logger";
|
|
230
|
+
|
|
231
|
+
export default async function Page() {
|
|
232
|
+
logger.info("[HomePage]: Rendering");
|
|
233
|
+
// ...
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// API routes
|
|
237
|
+
export async function POST(request: Request) {
|
|
238
|
+
try {
|
|
239
|
+
logger.info("[API] [/users]: Create user request");
|
|
240
|
+
// ...
|
|
241
|
+
} catch (error) {
|
|
242
|
+
logger.error("[API] [/users]: Failed to create user", { error });
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### Django
|
|
248
|
+
|
|
249
|
+
```python
|
|
250
|
+
import logging
|
|
251
|
+
|
|
252
|
+
logger = logging.getLogger(__name__)
|
|
253
|
+
|
|
254
|
+
class UserView(View):
|
|
255
|
+
def get(self, request):
|
|
256
|
+
logger.info(f'[UserView] [get]: Request | user_id={request.user.id}')
|
|
257
|
+
try:
|
|
258
|
+
# ...
|
|
259
|
+
except Exception as e:
|
|
260
|
+
logger.error(f'[UserView] [get]: Failed | error={str(e)}', exc_info=True)
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### Laravel
|
|
264
|
+
|
|
265
|
+
```php
|
|
266
|
+
use Illuminate\Support\Facades\Log;
|
|
267
|
+
|
|
268
|
+
class UserController extends Controller
|
|
269
|
+
{
|
|
270
|
+
public function store(Request $request)
|
|
271
|
+
{
|
|
272
|
+
Log::info('[UserController] [store]: Creating user');
|
|
273
|
+
|
|
274
|
+
try {
|
|
275
|
+
// ...
|
|
276
|
+
} catch (\Exception $e) {
|
|
277
|
+
Log::error('[UserController] [store]: Failed', [
|
|
278
|
+
'error' => $e->getMessage(),
|
|
279
|
+
'trace' => $e->getTraceAsString()
|
|
280
|
+
]);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
## Production Logging
|
|
287
|
+
|
|
288
|
+
### Log Aggregation
|
|
289
|
+
|
|
290
|
+
Integrate with log aggregation services:
|
|
291
|
+
|
|
292
|
+
- Sentry (errors)
|
|
293
|
+
- Datadog
|
|
294
|
+
- CloudWatch
|
|
295
|
+
- LogRocket
|
|
296
|
+
- Papertrail
|
|
297
|
+
|
|
298
|
+
### Correlation IDs
|
|
299
|
+
|
|
300
|
+
```javascript
|
|
301
|
+
// Add to all logs in a request
|
|
302
|
+
const requestId = generateId();
|
|
303
|
+
context.set("requestId", requestId);
|
|
304
|
+
|
|
305
|
+
console.info("[API]: Request started | requestId:", requestId);
|
|
306
|
+
console.info("[Service]: Processing | requestId:", requestId);
|
|
307
|
+
console.info("[API]: Request complete | requestId:", requestId);
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
## Monitoring and Alerts
|
|
311
|
+
|
|
312
|
+
### Log-Based Alerts
|
|
313
|
+
|
|
314
|
+
Set up alerts for:
|
|
315
|
+
|
|
316
|
+
- High error rates
|
|
317
|
+
- Specific error patterns
|
|
318
|
+
- Performance degradation
|
|
319
|
+
- Security events
|
|
320
|
+
- Business-critical failures
|
|
321
|
+
|
|
322
|
+
### Metrics from Logs
|
|
323
|
+
|
|
324
|
+
Extract metrics:
|
|
325
|
+
|
|
326
|
+
- Request duration
|
|
327
|
+
- Error rates by endpoint
|
|
328
|
+
- User activity patterns
|
|
329
|
+
- Cache hit rates
|
|
330
|
+
- External API latency
|
|
331
|
+
|
|
332
|
+
## Testing Logs
|
|
333
|
+
|
|
334
|
+
### Test Log Output
|
|
335
|
+
|
|
336
|
+
```javascript
|
|
337
|
+
// Jest example
|
|
338
|
+
const consoleSpy = jest.spyOn(console, "error");
|
|
339
|
+
|
|
340
|
+
test("logs error on failure", async () => {
|
|
341
|
+
await failingOperation();
|
|
342
|
+
|
|
343
|
+
expect(consoleSpy).toHaveBeenCalledWith(
|
|
344
|
+
expect.stringContaining("[ServiceName]"),
|
|
345
|
+
expect.any(Object),
|
|
346
|
+
);
|
|
347
|
+
});
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
**Last Updated**: {{DATE}}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Patterns and conventions
|
|
2
|
+
|
|
3
|
+
## State management
|
|
4
|
+
|
|
5
|
+
- State modules live in `{{STATE_DIR}}`.
|
|
6
|
+
- Use {{STATE_MANAGEMENT}} for state management.
|
|
7
|
+
- {{STATE_PATTERN_DESCRIPTION}}
|
|
8
|
+
|
|
9
|
+
## API patterns
|
|
10
|
+
|
|
11
|
+
- API services live in `{{SERVICES_DIR}}`.
|
|
12
|
+
- {{API_PATTERN_DESCRIPTION}}
|
|
13
|
+
|
|
14
|
+
## Component patterns
|
|
15
|
+
|
|
16
|
+
- Components follow {{COMPONENT_PATTERN}} pattern.
|
|
17
|
+
- {{COMPONENT_PATTERN_DESCRIPTION}}
|
|
18
|
+
|
|
19
|
+
## Utilities
|
|
20
|
+
|
|
21
|
+
- Shared utilities live in `{{UTILS_DIR}}`.
|
|
22
|
+
- {{UTILITY_PATTERN_DESCRIPTION}}
|
|
23
|
+
|
|
24
|
+
## SRP and reuse-first principle
|
|
25
|
+
|
|
26
|
+
- **Before implementing new functionality, review existing patterns** in `{{COMPOSABLES_PATH}}`, `{{UTILS_PATH}}`, and `{{HELPERS_PATH}}` for capabilities that already solve the problem.
|
|
27
|
+
- **Prefer extending existing utilities** over creating new ones or duplicating logic inline — a new solution is only warranted when the existing one genuinely cannot accommodate the use case.
|
|
28
|
+
- **Never duplicate state or behavior** that an existing utility already manages (e.g., loading flags, error state, async wrappers). Inline duplication violates SRP and makes behavior inconsistent across the codebase.
|
|
29
|
+
- When in doubt, extend the existing pattern and keep consumers (components, controllers, handlers) thin.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Ponytail, lazy senior dev mode
|
|
2
|
+
|
|
3
|
+
You are a lazy senior developer. Lazy means efficient, not careless. The best code is the code never written.
|
|
4
|
+
|
|
5
|
+
Before writing any code, stop at the first rung that holds:
|
|
6
|
+
|
|
7
|
+
1. Does this need to be built at all? (YAGNI)
|
|
8
|
+
2. Does the standard library already do this? Use it.
|
|
9
|
+
3. Does a native platform feature cover it? Use it.
|
|
10
|
+
4. Does an already-installed dependency solve it? Use it.
|
|
11
|
+
5. Can this be one line? Make it one line.
|
|
12
|
+
6. Only then: write the minimum code that works.
|
|
13
|
+
|
|
14
|
+
Rules:
|
|
15
|
+
|
|
16
|
+
- No abstractions that weren't explicitly requested.
|
|
17
|
+
- No new dependency if it can be avoided.
|
|
18
|
+
- No boilerplate nobody asked for.
|
|
19
|
+
- Deletion over addition. Boring over clever. Fewest files possible.
|
|
20
|
+
- Question complex requests: "Do you actually need X, or does Y cover it?"
|
|
21
|
+
- Pick the edge-case-correct option when two stdlib approaches are the same size, lazy means less code, not the flimsier algorithm.
|
|
22
|
+
- Mark intentional simplifications with a `ponytail:` comment. If the shortcut has a known ceiling (global lock, O(n²) scan, naive heuristic), the comment names the ceiling and the upgrade path.
|
|
23
|
+
|
|
24
|
+
Not lazy about: input validation at trust boundaries, error handling that prevents data loss, security, accessibility, the calibration real hardware needs (the platform is never the spec ideal, a clock drifts, a sensor reads off), anything explicitly requested. Lazy code without its check is unfinished: non-trivial logic leaves ONE runnable check behind, the smallest thing that fails if the logic breaks (an assert-based demo/self-check or one small test file; no frameworks, no fixtures). Trivial one-liners need no test.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Database Migrations
|
|
2
|
+
|
|
3
|
+
- {{DATABASE_SYNC_RULE}}
|
|
4
|
+
- Create migrations with descriptive names.
|
|
5
|
+
- Apply migrations to development database before committing.
|
|
6
|
+
- Maintain corresponding model definitions for database entities.
|
|
7
|
+
- Update affected services after schema changes.
|
|
8
|
+
- Run tests after schema modifications.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# {{PROJECT_NAME}} architecture
|
|
2
|
+
|
|
3
|
+
- **Framework:** {{FRAMEWORK}}
|
|
4
|
+
- **Language:** {{LANGUAGE}}
|
|
5
|
+
- Entry point: {{ENTRY_POINT}}
|
|
6
|
+
|
|
7
|
+
## Directory structure
|
|
8
|
+
|
|
9
|
+
- `src/components/` - UI components
|
|
10
|
+
- `src/pages/` - Page components/routes
|
|
11
|
+
- `src/services/` - API and business logic
|
|
12
|
+
- `src/stores/` - State management
|
|
13
|
+
- `src/types/` - TypeScript definitions
|
|
14
|
+
|
|
15
|
+
## Data flow
|
|
16
|
+
|
|
17
|
+
- {{DATA_FLOW_DESCRIPTION}}
|
|
18
|
+
|
|
19
|
+
## Authentication
|
|
20
|
+
|
|
21
|
+
- {{AUTH_DESCRIPTION}}
|
|
22
|
+
|
|
23
|
+
## API integration
|
|
24
|
+
|
|
25
|
+
- {{API_INTEGRATION_DESCRIPTION}}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Server-Client Separation
|
|
2
|
+
|
|
3
|
+
- Never import server-only code in client components.
|
|
4
|
+
- Use API endpoints to expose server functionality to clients.
|
|
5
|
+
- Create shared types for cross-boundary use.
|
|
6
|
+
- Use appropriate data fetching patterns for the framework.
|
|
7
|
+
- Mark server-only modules clearly (e.g., `.server.{{LANGUAGE_EXTENSION}}`).
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Subagent Workflow
|
|
2
|
+
|
|
3
|
+
## 🛑 BEFORE STARTING: Orchestration Checkpoint
|
|
4
|
+
|
|
5
|
+
**READ THIS SECTION FIRST if you are about to start work.** This instruction file is loaded automatically for multi-step tasks, meaning:
|
|
6
|
+
|
|
7
|
+
1. **You are likely handling 2+ of:** research, planning, implementation, testing, review, validation
|
|
8
|
+
2. **You MUST answer:** Does this task involve independent subtasks or multiple domains?
|
|
9
|
+
3. **If YES:** Use a coordinator agent (Feature Builder, TDD, or other) instead of single-agent execution
|
|
10
|
+
4. **If NO (single focused task):** Document why you're using a single agent, then proceed
|
|
11
|
+
|
|
12
|
+
### Signs You Should Use Orchestrator-First
|
|
13
|
+
|
|
14
|
+
- ✅ Multiple files across different directories
|
|
15
|
+
- ✅ Planning phase + implementation phase
|
|
16
|
+
- ✅ Multiple independent reviewable chunks
|
|
17
|
+
- ✅ Different domain areas (backend + frontend + docs)
|
|
18
|
+
- ✅ Test coverage needed alongside changes
|
|
19
|
+
- ✅ Architecture decisions before coding
|
|
20
|
+
- ✅ Direct code review feedback (no implementation)
|
|
21
|
+
- ✅ Research task (no code changes)
|
|
22
|
+
|
|
23
|
+
### Signs Single Agent Is OK
|
|
24
|
+
|
|
25
|
+
- ✅ Single file edit
|
|
26
|
+
- ✅ Quick typo/syntax fix
|
|
27
|
+
- ✅ Small documentation update
|
|
28
|
+
|
|
29
|
+
**When in doubt, use orchestrator-first.** It is lower-cost than sequential agent work and provides better code review isolation.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Orchestrator-First Principle
|
|
34
|
+
|
|
35
|
+
**Default to using a coordinator agent for non-trivial work.** Coordinators break complex tasks into focused subtasks and dispatch specialized subagents with context isolation.
|
|
36
|
+
|
|
37
|
+
## When to Use Orchestrator + Subagents
|
|
38
|
+
|
|
39
|
+
- Features spanning multiple files or domains
|
|
40
|
+
- Tasks requiring planning → implementation → review cycles
|
|
41
|
+
- Work that benefits from domain specialization (backend, frontend, API)
|
|
42
|
+
- Any task with 2+ independent subtasks
|
|
43
|
+
|
|
44
|
+
## When to Use a Single Agent Directly
|
|
45
|
+
|
|
46
|
+
- Quick one-file fixes or small edits
|
|
47
|
+
- Research questions that don't require code changes
|
|
48
|
+
- Ad-hoc code reviews (invoke Reviewer directly)
|
|
49
|
+
- Simple documentation updates
|
|
50
|
+
- Domain-specific advice without implementation
|
|
51
|
+
|
|
52
|
+
## Available Coordinators
|
|
53
|
+
|
|
54
|
+
| Coordinator | Purpose | Dispatches |
|
|
55
|
+
| ------------------- | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|
|
56
|
+
| **Feature Builder** | End-to-end feature development orchestration | Planner, Implementer, Reviewer, Researcher, Backend Architect, Frontend Developer, API Specialist, Admin Portal, Documenter |
|
|
57
|
+
| **TDD** | Red-green-refactor cycle coordination | Red, Green, Refactor |
|
|
58
|
+
|
|
59
|
+
## Domain Specialist Selection
|
|
60
|
+
|
|
61
|
+
When dispatching implementation tasks, match the specialist to the domain:
|
|
62
|
+
|
|
63
|
+
| Domain | Specialist |
|
|
64
|
+
| ---------------------------------- | ---------------------- |
|
|
65
|
+
| API design, databases, system arch | **Backend Architect** |
|
|
66
|
+
| UI components, state, responsive | **Frontend Developer** |
|
|
67
|
+
| API contracts, docs, versioning | **API Specialist** |
|
|
68
|
+
| Admin dashboards, RBAC, reporting | **Admin Portal** |
|
|
69
|
+
| Project documentation | **Documenter** |
|
|
70
|
+
| General / cross-cutting | **Implementer** |
|
|
71
|
+
|
|
72
|
+
## Orchestration Patterns
|
|
73
|
+
|
|
74
|
+
### Sequential (default)
|
|
75
|
+
|
|
76
|
+
Tasks with dependencies are implemented one at a time in dependency order. Each must pass review before the next begins.
|
|
77
|
+
|
|
78
|
+
### Parallel
|
|
79
|
+
|
|
80
|
+
Independent tasks can be dispatched to multiple specialist subagents simultaneously. Use when tasks don't share files or state.
|
|
81
|
+
|
|
82
|
+
### Parallelization Analysis (REQUIRED before dispatching)
|
|
83
|
+
|
|
84
|
+
Before executing any task list, the orchestrator MUST run this analysis:
|
|
85
|
+
|
|
86
|
+
1. **Scan for `[P]` markers** in the task list — these are pre-identified parallel candidates
|
|
87
|
+
- If no `[P]` markers exist, do **not** assume sequential-only work. Treat all tasks as candidates and infer parallel-safe groups via the independence test.
|
|
88
|
+
2. **Build a dependency graph**: For each task, list which files it reads and writes
|
|
89
|
+
3. **Apply the independence test**:
|
|
90
|
+
- Tasks that write to **different files** with **no shared state** → parallel-safe
|
|
91
|
+
- Tasks that share any writable file → sequential (dependency edge)
|
|
92
|
+
- Tasks where one reads what another writes → sequential (data dependency)
|
|
93
|
+
4. **Group by domain** for specialist routing:
|
|
94
|
+
- Backend tasks → Backend Architect
|
|
95
|
+
- Frontend tasks → Frontend Developer
|
|
96
|
+
- API contract tasks → API Specialist
|
|
97
|
+
- Documentation tasks → Documenter
|
|
98
|
+
- Cross-cutting → Implementer
|
|
99
|
+
5. **Dispatch decision**:
|
|
100
|
+
- **3+ independent tasks** → Use `dispatching-parallel-agents` skill, one agent per task
|
|
101
|
+
- **2 independent tasks** → Parallel dispatch (simpler coordination)
|
|
102
|
+
- **All tasks dependent** → Sequential with `subagent-driven-development` skill
|
|
103
|
+
- **Mixed** → Dispatch independent group in parallel, then continue sequential chain
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
Example: 5 tasks → T001 (setup) → T002 [P] (backend API) + T003 [P] (frontend UI) + T004 [P] (docs) → T005 (integration tests)
|
|
107
|
+
Dispatch: T001 sequential → T002+T003+T004 parallel → T005 sequential
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Quality Gates
|
|
111
|
+
|
|
112
|
+
- Every implementation must pass **Reviewer** before proceeding
|
|
113
|
+
- Every plan must pass **Reviewer** before final acceptance during a commit or before implementation begins
|
|
114
|
+
- Coordinators should not skip review even for "simple" changes
|
|
115
|
+
- If a reviewer requests changes, the original specialist fixes them and re-review occurs
|
|
116
|
+
|
|
117
|
+
## Skills Integration
|
|
118
|
+
|
|
119
|
+
These skills complement subagent workflows:
|
|
120
|
+
|
|
121
|
+
| Skill | When to Use |
|
|
122
|
+
| -------------------------------- | ------------------------------------------------ |
|
|
123
|
+
| `writing-plans` | Creating implementation plans before execution |
|
|
124
|
+
| `subagent-driven-development` | Executing plans with fresh subagent per task |
|
|
125
|
+
| `executing-plans` | Following through on plans in a separate session |
|
|
126
|
+
| `dispatching-parallel-agents` | Multiple independent problems to solve |
|
|
127
|
+
| `requesting-code-review` | Structured review between implementation stages |
|
|
128
|
+
| `receiving-code-review` | Responding constructively to review feedback |
|
|
129
|
+
| `verification-before-completion` | Quality checks before claiming work done |
|
|
130
|
+
| `finishing-a-development-branch` | Completing work after all tasks pass review |
|
|
131
|
+
| `orient-to-recent-work` | Build context from recent project activity |
|
|
132
|
+
| `brainstorming` | Structured ideation when scope is fuzzy |
|
|
133
|
+
| `systematic-debugging` | Structured root cause investigation |
|
|
134
|
+
| `using-superpowers` | Leveraging the full skill system |
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
- Ensure lint, test, and build pass before committing.
|
|
2
|
+
- Use {{TEST_FRAMEWORK}} for unit/component tests.
|
|
3
|
+
- Use {{E2E_FRAMEWORK}} for end-to-end tests.
|
|
4
|
+
- Place tests alongside implementation files or in `tests/` directory.
|
|
5
|
+
- Aim for meaningful test coverage of business logic.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Testing Standards
|
|
2
|
+
|
|
3
|
+
## Commands
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
# Run all tests
|
|
7
|
+
{{TEST_COMMAND}}
|
|
8
|
+
|
|
9
|
+
# Run tests with coverage
|
|
10
|
+
{{TEST_COVERAGE_COMMAND}}
|
|
11
|
+
|
|
12
|
+
# Run E2E tests
|
|
13
|
+
{{E2E_TEST_COMMAND}}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Test Structure
|
|
17
|
+
|
|
18
|
+
```{{FILE_EXTENSION}}
|
|
19
|
+
{{TEST_EXAMPLE}}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Test File Naming
|
|
23
|
+
|
|
24
|
+
- Unit tests: `{{TEST_FILE_PATTERN}}`
|
|
25
|
+
- Integration tests: `{{INTEGRATION_TEST_PATTERN}}`
|
|
26
|
+
- E2E tests: `{{E2E_TEST_PATTERN}}`
|
|
27
|
+
|
|
28
|
+
## Test Location
|
|
29
|
+
|
|
30
|
+
- Unit tests live alongside source files or in `{{TEST_DIR}}/`
|
|
31
|
+
- Integration tests in `{{INTEGRATION_TEST_DIR}}/`
|
|
32
|
+
- E2E tests in `{{E2E_TEST_DIR}}/`
|
|
33
|
+
|
|
34
|
+
## Coverage Requirements
|
|
35
|
+
|
|
36
|
+
- Minimum coverage: {{COVERAGE_THRESHOLD}}
|
|
37
|
+
- Critical paths must have integration or E2E coverage
|
|
38
|
+
- New features require tests before merging
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Version Control
|
|
2
|
+
|
|
3
|
+
- Use conventional commit format: `<type>(<scope>): <description>`.
|
|
4
|
+
- Types: feat, fix, docs, refactor, test, chore, style, perf.
|
|
5
|
+
- Include ticket reference when applicable: `feat(auth): add login flow [{{ISSUE_PREFIX}}-123]`.
|
|
6
|
+
- Follow the PR template for pull requests.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Anti-Patterns (What to Avoid)
|
|
2
|
+
|
|
3
|
+
- No deprecated {{FRAMEWORK}} features.
|
|
4
|
+
- No global CSS outside {{STYLING}} configuration.
|
|
5
|
+
- No direct DOM manipulation; use framework reactivity.
|
|
6
|
+
- No custom solutions for problems solved by core libraries.
|
|
7
|
+
- No inconsistent naming for events or handlers.
|
|
8
|
+
- No mixing server and client code inappropriately.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Workflows
|
|
2
|
+
|
|
3
|
+
## Development
|
|
4
|
+
|
|
5
|
+
- **Start dev server:** `{{PACKAGE_MANAGER}} run dev` (port {{DEV_PORT}})
|
|
6
|
+
- **Build:** `{{PACKAGE_MANAGER}} run build`
|
|
7
|
+
- **Type check:** `{{PACKAGE_MANAGER}} run type-check`
|
|
8
|
+
|
|
9
|
+
## Testing
|
|
10
|
+
|
|
11
|
+
- **Unit tests:** `{{PACKAGE_MANAGER}} run test`
|
|
12
|
+
- **Coverage:** `{{PACKAGE_MANAGER}} run test:coverage`
|
|
13
|
+
- **E2E tests:** `{{PACKAGE_MANAGER}} run test:e2e`
|
|
14
|
+
|
|
15
|
+
## Code quality
|
|
16
|
+
|
|
17
|
+
- **Lint:** `{{PACKAGE_MANAGER}} run lint`
|
|
18
|
+
- **Format:** `{{PACKAGE_MANAGER}} run format`
|
|
19
|
+
|
|
20
|
+
## Environment variables
|
|
21
|
+
|
|
22
|
+
| Variable | Purpose | Required |
|
|
23
|
+
| --------------- | ------------------ | -------- |
|
|
24
|
+
| `{{ENV_VAR_1}}` | {{ENV_VAR_1_DESC}} | Yes |
|
|
25
|
+
| `{{ENV_VAR_2}}` | {{ENV_VAR_2_DESC}} | No |
|