@hybridlabor-api/aos 4.8.0 → 4.10.0
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/.agents/{agents.md → AGENTS.md} +3 -1
- package/.agents/nodes.json +3 -1
- package/.agents/vendor-manifest.json +23 -1
- package/.claude/agents/godmode-media-eventtech.md +1 -1
- package/.claude/hooks/conventional-commits.mjs +125 -0
- package/.claude/hooks/env-file-protection.mjs +105 -0
- package/.claude/hooks/go-gate.mjs +101 -81
- package/.claude/hooks/memb-inject.mjs +29 -1
- package/.claude/settings.json +13 -0
- package/.claude/workflows/startcycle-dispatch.mjs +23 -1
- package/.opencode/agents/godmode-media-eventtech.md +1 -1
- package/.opencode/plugins/bdb-aos.js +31 -4
- package/CLAUDE.md +0 -571
- package/README.de.md +1 -1
- package/README.md +1 -1
- package/README.pt.md +1 -1
- package/THIRD_PARTY_NOTICES.md +126 -0
- package/bin/aos-doctor.mjs +1 -1
- package/docs/skills_table.md +1 -1
- package/installer.js +187 -55
- package/package.json +7 -3
- package/packages/aos-cli/README.md +80 -0
- package/packages/aos-cli/bin/aos-cli.mjs +134 -0
- package/packages/aos-cli/core-skills.json +12 -0
- package/packages/aos-cli/extensions/aos.ts +321 -0
- package/packages/aos-cli/package-lock.json +1923 -0
- package/packages/aos-cli/package.json +29 -0
- package/packages/aos-cli/scripts/check-theme.mjs +63 -0
- package/packages/aos-cli/themes/aos.json +97 -0
- package/scripts/build-plugin-manifest.mjs +131 -0
- package/scripts/validate-skills.mjs +81 -6
- package/skills/basic/ao-orchestrator/SKILL.md +116 -0
- package/skills/basic/bdb-eventagency-skill/SKILL.md +252 -0
- package/skills/basic/bdb-shipping-skill/SKILL.md +161 -0
- package/skills/basic/godmode-eventtech/SKILL.md +4 -1
- package/skills/global_config/agenttrail/SKILL.md +6 -1
- package/skills/global_config/aos-project-init/SKILL.md +2 -0
- package/skills/global_config/aos-project-init/assets/AGENTS.template.md +1 -1
- package/skills/global_config/aos-project-init/scripts/aos-project-doctor.mjs +1 -1
- package/skills/global_config/aos-setup/SKILL.md +1 -1
- package/skills/global_config/aos-setup/scripts/aos-doctor.mjs +1 -1
- package/skills/global_config/ask-tim/SKILL.md +7 -7
- package/skills/global_config/bash-script-generator/SKILL.md +201 -0
- package/skills/global_config/bash-script-generator/assets/templates/standard-template.sh +96 -0
- package/skills/global_config/bash-script-generator/docs/bash-scripting-guide.md +729 -0
- package/skills/global_config/bash-script-generator/docs/generation-best-practices.md +193 -0
- package/skills/global_config/bash-script-generator/docs/script-patterns.md +566 -0
- package/skills/global_config/bash-script-generator/docs/text-processing-guide.md +437 -0
- package/skills/global_config/bash-script-generator/examples/log-analyzer.sh +92 -0
- package/skills/global_config/bash-script-generator/scripts/generate_script_template.sh +123 -0
- package/skills/global_config/bash-script-generator/scripts/run_ci_checks.sh +172 -0
- package/skills/global_config/bash-script-generator/scripts/test_generator.sh +413 -0
- package/skills/global_config/bash-script-validator/SKILL.md +249 -0
- package/skills/global_config/bash-script-validator/docs/awk-reference.md +449 -0
- package/skills/global_config/bash-script-validator/docs/bash-reference.md +468 -0
- package/skills/global_config/bash-script-validator/docs/common-mistakes.md +623 -0
- package/skills/global_config/bash-script-validator/docs/grep-reference.md +395 -0
- package/skills/global_config/bash-script-validator/docs/regex-reference.md +391 -0
- package/skills/global_config/bash-script-validator/docs/sed-reference.md +454 -0
- package/skills/global_config/bash-script-validator/docs/shell-reference.md +463 -0
- package/skills/global_config/bash-script-validator/docs/shellcheck-reference.md +399 -0
- package/skills/global_config/bash-script-validator/examples/bad-bash.sh +55 -0
- package/skills/global_config/bash-script-validator/examples/bad-shell.sh +54 -0
- package/skills/global_config/bash-script-validator/examples/good-bash.sh +71 -0
- package/skills/global_config/bash-script-validator/examples/good-shell.sh +69 -0
- package/skills/global_config/bash-script-validator/scripts/run_ci_checks.sh +23 -0
- package/skills/global_config/bash-script-validator/scripts/shellcheck_wrapper.sh +174 -0
- package/skills/global_config/bash-script-validator/scripts/test_validate.sh +446 -0
- package/skills/global_config/bash-script-validator/scripts/validate.sh +512 -0
- package/skills/global_config/ci-pipeline/SKILL.md +135 -0
- package/skills/global_config/deja-memory/SKILL.md +3 -1
- package/skills/global_config/dispatching-parallel-agents/SKILL.md +170 -0
- package/skills/global_config/dockerfile-generator/SKILL.md +1038 -0
- package/skills/global_config/dockerfile-generator/examples/example.dockerignore +95 -0
- package/skills/global_config/dockerfile-generator/examples/golang-distroless.Dockerfile +34 -0
- package/skills/global_config/dockerfile-generator/examples/java-springboot.Dockerfile +45 -0
- package/skills/global_config/dockerfile-generator/examples/nextjs-production.Dockerfile +49 -0
- package/skills/global_config/dockerfile-generator/examples/nodejs-multistage.Dockerfile +55 -0
- package/skills/global_config/dockerfile-generator/examples/python-fastapi.Dockerfile +48 -0
- package/skills/global_config/dockerfile-generator/references/language_specific_guides.md +510 -0
- package/skills/global_config/dockerfile-generator/references/multistage_builds.md +570 -0
- package/skills/global_config/dockerfile-generator/references/optimization_patterns.md +492 -0
- package/skills/global_config/dockerfile-generator/references/security_best_practices.md +375 -0
- package/skills/global_config/dockerfile-generator/scripts/generate_dockerignore.sh +199 -0
- package/skills/global_config/dockerfile-generator/scripts/generate_golang.sh +172 -0
- package/skills/global_config/dockerfile-generator/scripts/generate_java.sh +185 -0
- package/skills/global_config/dockerfile-generator/scripts/generate_nodejs.sh +279 -0
- package/skills/global_config/dockerfile-generator/scripts/generate_python.sh +218 -0
- package/skills/global_config/dockerfile-generator/scripts/test_generator.sh +210 -0
- package/skills/global_config/dockerfile-validator/SKILL.md +300 -0
- package/skills/global_config/dockerfile-validator/examples/.dockerignore.example +34 -0
- package/skills/global_config/dockerfile-validator/examples/bad-example.Dockerfile +37 -0
- package/skills/global_config/dockerfile-validator/examples/golang-distroless.Dockerfile +50 -0
- package/skills/global_config/dockerfile-validator/examples/good-example.Dockerfile +52 -0
- package/skills/global_config/dockerfile-validator/examples/python-optimized.Dockerfile +53 -0
- package/skills/global_config/dockerfile-validator/examples/security-issues.Dockerfile +42 -0
- package/skills/global_config/dockerfile-validator/references/docker_best_practices.md +348 -0
- package/skills/global_config/dockerfile-validator/references/optimization_guide.md +473 -0
- package/skills/global_config/dockerfile-validator/references/security_checklist.md +208 -0
- package/skills/global_config/dockerfile-validator/scripts/dockerfile-validate.sh +699 -0
- package/skills/global_config/dockerfile-validator/scripts/test_validate.sh +35 -0
- package/skills/global_config/dockerfile-validator/tests/fixtures/copy-before-yarn-lock-read.Dockerfile +6 -0
- package/skills/global_config/dockerfile-validator/tests/fixtures/copy-before-yarn.Dockerfile +6 -0
- package/skills/global_config/dockerfile-validator/tests/fixtures/from-platform-nonroot.Dockerfile +7 -0
- package/skills/global_config/dockerfile-validator/tests/test_regression.sh +164 -0
- package/skills/global_config/finishing-a-development-branch/SKILL.md +228 -0
- package/skills/global_config/github-actions-generator/SKILL.md +353 -0
- package/skills/global_config/github-actions-generator/assets/templates/action/composite/action.yml +82 -0
- package/skills/global_config/github-actions-generator/assets/templates/action/docker/Dockerfile +25 -0
- package/skills/global_config/github-actions-generator/assets/templates/action/docker/action.yml +42 -0
- package/skills/global_config/github-actions-generator/assets/templates/action/docker/entrypoint.sh +27 -0
- package/skills/global_config/github-actions-generator/assets/templates/action/javascript/action.yml +33 -0
- package/skills/global_config/github-actions-generator/assets/templates/action/javascript/index.js +50 -0
- package/skills/global_config/github-actions-generator/assets/templates/action/javascript/package.json +27 -0
- package/skills/global_config/github-actions-generator/assets/templates/workflow/basic_workflow.yml +242 -0
- package/skills/global_config/github-actions-generator/assets/templates/workflow/reusable_workflow.yml +106 -0
- package/skills/global_config/github-actions-generator/examples/README.md +147 -0
- package/skills/global_config/github-actions-generator/examples/actions/setup-node-cached/action.yml +93 -0
- package/skills/global_config/github-actions-generator/examples/caching/docker-buildkit.yml +256 -0
- package/skills/global_config/github-actions-generator/examples/security/dependency-review.yml +62 -0
- package/skills/global_config/github-actions-generator/examples/security/sbom-attestation.yml +119 -0
- package/skills/global_config/github-actions-generator/examples/triggers/chatops-commands.yml +475 -0
- package/skills/global_config/github-actions-generator/examples/triggers/repository-dispatch.yml +418 -0
- package/skills/global_config/github-actions-generator/examples/triggers/workflow-orchestration.yml +404 -0
- package/skills/global_config/github-actions-generator/examples/workflows/docker-build-push.yml +68 -0
- package/skills/global_config/github-actions-generator/examples/workflows/go-ci.yml +161 -0
- package/skills/global_config/github-actions-generator/examples/workflows/monorepo-ci.yml +340 -0
- package/skills/global_config/github-actions-generator/examples/workflows/multi-environment-deploy.yml +406 -0
- package/skills/global_config/github-actions-generator/examples/workflows/nodejs-ci.yml +122 -0
- package/skills/global_config/github-actions-generator/examples/workflows/python-ci.yml +157 -0
- package/skills/global_config/github-actions-generator/examples/workflows/scheduled-tasks.yml +376 -0
- package/skills/global_config/github-actions-generator/references/advanced-triggers.md +917 -0
- package/skills/global_config/github-actions-generator/references/best-practices.md +755 -0
- package/skills/global_config/github-actions-generator/references/common-actions.md +715 -0
- package/skills/global_config/github-actions-generator/references/custom-actions.md +320 -0
- package/skills/global_config/github-actions-generator/references/expressions-and-contexts.md +688 -0
- package/skills/global_config/github-actions-generator/references/modern-features.md +421 -0
- package/skills/global_config/github-actions-generator/scripts/test_generator.sh +344 -0
- package/skills/global_config/github-actions-templates/SKILL.md +7 -0
- package/skills/global_config/github-actions-validator/SKILL.md +576 -0
- package/skills/global_config/github-actions-validator/examples/README.md +88 -0
- package/skills/global_config/github-actions-validator/examples/outdated-versions.yml +76 -0
- package/skills/global_config/github-actions-validator/examples/valid-ci.yml +79 -0
- package/skills/global_config/github-actions-validator/examples/with-errors.yml +47 -0
- package/skills/global_config/github-actions-validator/references/act_usage.md +233 -0
- package/skills/global_config/github-actions-validator/references/action_versions.md +122 -0
- package/skills/global_config/github-actions-validator/references/actionlint_usage.md +343 -0
- package/skills/global_config/github-actions-validator/references/common_errors.md +512 -0
- package/skills/global_config/github-actions-validator/references/modern_features.md +384 -0
- package/skills/global_config/github-actions-validator/references/runners.md +317 -0
- package/skills/global_config/github-actions-validator/scripts/install_tools.sh +113 -0
- package/skills/global_config/github-actions-validator/scripts/validate_workflow.sh +910 -0
- package/skills/global_config/github-actions-validator/tests/test_validate_workflow.sh +237 -0
- package/skills/global_config/makefile-generator/SKILL.md +614 -0
- package/skills/global_config/makefile-generator/assets/templates/.gitkeep +1 -0
- package/skills/global_config/makefile-generator/docs/makefile-structure.md +530 -0
- package/skills/global_config/makefile-generator/docs/optimization-guide.md +784 -0
- package/skills/global_config/makefile-generator/docs/patterns-guide.md +642 -0
- package/skills/global_config/makefile-generator/docs/security-guide.md +361 -0
- package/skills/global_config/makefile-generator/docs/targets-guide.md +642 -0
- package/skills/global_config/makefile-generator/docs/variables-guide.md +596 -0
- package/skills/global_config/makefile-generator/scripts/add_standard_targets.sh +539 -0
- package/skills/global_config/makefile-generator/scripts/generate_makefile_template.sh +690 -0
- package/skills/global_config/makefile-generator/test/test_helper_scripts.sh +190 -0
- package/skills/global_config/makefile-validator/SKILL.md +244 -0
- package/skills/global_config/makefile-validator/docs/bake-tool.md +1000 -0
- package/skills/global_config/makefile-validator/docs/best-practices.md +858 -0
- package/skills/global_config/makefile-validator/docs/common-mistakes.md +944 -0
- package/skills/global_config/makefile-validator/examples/bad-makefile.mk +77 -0
- package/skills/global_config/makefile-validator/examples/good-makefile.mk +103 -0
- package/skills/global_config/makefile-validator/scripts/test_validate.sh +382 -0
- package/skills/global_config/makefile-validator/scripts/validate_makefile.sh +712 -0
- package/skills/global_config/{MCP_Manage → mcp-manage}/SKILL.md +3 -3
- package/skills/global_config/plan-canvas/SKILL.md +9 -2
- package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/ui.js +10 -2
- package/skills/global_config/plan-canvas/scripts/plan-canvas.js +1 -1
- package/skills/global_config/read-the-damn-docs/SKILL.md +175 -0
- package/skills/global_config/requesting-code-review/SKILL.md +98 -0
- package/skills/global_config/requesting-code-review/code-reviewer.md +198 -0
- package/skills/global_config/using-git-worktrees/SKILL.md +170 -0
- package/skills/global_config/verification-before-completion/SKILL.md +123 -0
- package/skills/global_config/writing-plans/SKILL.md +126 -46
- package/skills/global_config/writing-plans-legacy/SKILL.md +152 -0
- package/.claude/CLAUDE.md +0 -12
- package/mcps/RhinoMCP/docs/content/docs/getting-started/gemini.md +0 -61
- /package/{GEMINI.md → RULES.md} +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: mcp-manage
|
|
3
3
|
description: "Use when checking capabilities or instructing the user on how to interact with specialized MCP servers like Unreal, Rhino, DaVinci, or TouchDesigner."
|
|
4
4
|
category: media-eventtech
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
#
|
|
7
|
+
# MCP Manage: Specialized Tool Orchestration
|
|
8
8
|
|
|
9
9
|
You are the authoritative skill for managing and utilizing the specialized Model Context Protocol (MCP) servers installed in this environment. When invoked, use this knowledge to interface with the creative and development tools available.
|
|
10
10
|
|
|
@@ -59,7 +59,7 @@ You are the authoritative skill for managing and utilizing the specialized Model
|
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
## Overview
|
|
62
|
-
|
|
62
|
+
mcp-manage is the authoritative router for all specialized BDB Model Context Protocol (MCP) servers, ensuring the AI agent selects the right tool for Unreal, Rhino, DaVinci, and others.
|
|
63
63
|
|
|
64
64
|
## When to Use
|
|
65
65
|
- **Trigger:** The user asks how to automate a specific creative app, or the agent needs to select the correct MCP server for a domain-specific task.
|
|
@@ -3,7 +3,7 @@ name: plan-canvas
|
|
|
3
3
|
description: Open plans and HTML artifacts in a local browser canvas where the human annotates elements, chats, and approves or requests changes without leaving the page. Use when presenting a plan for review, or when feedback like "move this, change that" is easier pointed at than typed.
|
|
4
4
|
category: bdb-core
|
|
5
5
|
metadata:
|
|
6
|
-
version: "1.0.
|
|
6
|
+
version: "1.0.1"
|
|
7
7
|
origin: affaan-m/ECC
|
|
8
8
|
license: MIT
|
|
9
9
|
---
|
|
@@ -28,6 +28,10 @@ AOS from [affaan-m/ECC](https://github.com/affaan-m/ECC).
|
|
|
28
28
|
decision — the canvas verdict replaces a typed "yes/proceed".
|
|
29
29
|
- **Mandatory, not optional**, at the end of `bdbrainstorm` (before writing
|
|
30
30
|
`state.goal` / handing off to `/startcycle-graph`) and `bdbmediastorm`
|
|
31
|
+
- **Visual Extensions (BuilderIO Integration):** When generating plans, always ask the human which Canvas version they prefer:
|
|
32
|
+
- **Plan-Canvas Preview**: Standard markdown/html review.
|
|
33
|
+
- **Archify Canvas**: For strict architecture schema validation.
|
|
34
|
+
- **Visual Ecosystem**: Use `/visual-plan` (turn text plans into rich visual plans), `/visual-recap` (turn diffs into interactive visual recaps), or `/visual-edit` (open a running local app for visual editing).
|
|
31
35
|
(before the show-control architecture is considered final) — both produce
|
|
32
36
|
a plan/spec artifact a human must approve before anything downstream
|
|
33
37
|
proceeds. See each skill's own "Plan Canvas Review" section.
|
|
@@ -75,11 +79,14 @@ If your turn ends with nothing listening, the message sits in the queue and,
|
|
|
75
79
|
from the human's side of the glass, sending appears to do nothing at all.
|
|
76
80
|
|
|
77
81
|
So **run `await` as a background task** when your harness supports one (in
|
|
78
|
-
Claude Code, a Bash call with `run_in_background: true`). It exits the moment
|
|
82
|
+
Claude Code, a Bash call with `run_in_background: true`; in Antigravity, use `WaitMsBeforeAsync: 500`). It exits the moment
|
|
79
83
|
feedback arrives and the harness hands you the JSON, which keeps the loop alive
|
|
80
84
|
across turns instead of dying with the foreground call. A foreground `await`
|
|
81
85
|
works too, but only until the harness time-limits it.
|
|
82
86
|
|
|
87
|
+
> **OpenCode Limitations**: OpenCode currently lacks reactive background tasks (like AGY's `WaitMsBeforeAsync`) or background shells. If you are running in OpenCode, you must poll explicitly if needed (e.g., `aos-plan-canvas await <file> --timeout-ms 10000`), or launch the opencode-subagent to handle the waiting.
|
|
88
|
+
> Furthermore, OpenCode's execution environment often fails to launch the default browser automatically. **Whenever you use `open` or `await`, ALWAYS print the direct Canvas URL to the user in chat (e.g., "🔗 Canvas geöffnet: http://127.0.0.1:4519/canvas/...")** so they can click it manually.
|
|
89
|
+
|
|
83
90
|
One backstop exists, and it is not an excuse to skip the above:
|
|
84
91
|
|
|
85
92
|
- `aos-plan-canvas pending` lists feedback queued with no listener. Check it
|
|
@@ -544,7 +544,11 @@ function renderMarkdownArtifactHtml(bodyHtml, { title, sdkSrc }) {
|
|
|
544
544
|
${TOKENS_CSS}
|
|
545
545
|
*{margin:0;padding:0;box-sizing:border-box}
|
|
546
546
|
body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.65;font-size:14.5px}
|
|
547
|
-
|
|
547
|
+
/* Two tracks: tables, code and diagrams take the whole frame; prose keeps a
|
|
548
|
+
readable measure. A single narrow column starved wide tables, and a single
|
|
549
|
+
wide column made body text unreadable. */
|
|
550
|
+
.doc{max-width:min(1560px,100%);margin:0 auto;padding:44px 36px 90px}
|
|
551
|
+
.doc>p,.doc>ul,.doc>ol,.doc>blockquote{max-width:104ch}
|
|
548
552
|
h1,h2,h3,h4,h5,h6{line-height:1.25;margin:1.6em 0 .55em;letter-spacing:-.01em}
|
|
549
553
|
h1{font-size:26px;margin-top:.3em;padding-bottom:.45em;border-bottom:1px solid var(--border)}
|
|
550
554
|
h1:after{content:'';display:block;width:56px;height:3px;margin-top:14px;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--pink))}
|
|
@@ -563,7 +567,11 @@ ${TOKENS_CSS}
|
|
|
563
567
|
pre code{background:none;border:none;padding:0;font-size:12.5px;line-height:1.55}
|
|
564
568
|
blockquote{border-left:3px solid var(--accent);background:var(--accent-glow);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:8px 14px;color:var(--text2)}
|
|
565
569
|
table{width:100%;border-collapse:collapse;font-size:13px;display:block;overflow-x:auto}
|
|
566
|
-
|
|
570
|
+
/* a clipped column must look scrollable, not truncated: keep the scrollbar visible */
|
|
571
|
+
table::-webkit-scrollbar{height:9px}
|
|
572
|
+
table::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:99px}
|
|
573
|
+
table::-webkit-scrollbar-track{background:var(--bg3);border-radius:99px}
|
|
574
|
+
th,td{text-align:left;padding:7px 10px;border:1px solid var(--border)}
|
|
567
575
|
th{background:var(--bg3);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text2);white-space:nowrap}
|
|
568
576
|
tbody tr:hover{background:var(--surface-hover)}
|
|
569
577
|
hr{border:none;border-top:1px solid var(--border);margin:1.6em 0}
|
|
@@ -37,7 +37,7 @@ const {
|
|
|
37
37
|
resolvePort
|
|
38
38
|
} = require('./lib/plan-canvas/server');
|
|
39
39
|
|
|
40
|
-
const VERSION = '1.0.
|
|
40
|
+
const VERSION = '1.0.1'; // vendored Plan Canvas protocol version; matches SKILL.md metadata.version.
|
|
41
41
|
// Bump when the vendored JS changes, to force a stale detached server to restart.
|
|
42
42
|
|
|
43
43
|
const SAFE_REQUEST_PATHS = new Set([
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: read-the-damn-docs
|
|
3
|
+
description: >-
|
|
4
|
+
Use when implementing, integrating, upgrading, debugging, or answering
|
|
5
|
+
anything involving third-party APIs, libraries, frameworks, CLIs, cloud
|
|
6
|
+
services, model or provider SDKs, fast-moving product behavior, unfamiliar
|
|
7
|
+
repo docs or specs, errors that may indicate API drift, or high-stakes auth,
|
|
8
|
+
security, billing, data, migration, deployment, compliance, or privacy
|
|
9
|
+
behavior. Forces a docs pass before coding from memory.
|
|
10
|
+
category: engineering-method
|
|
11
|
+
source: BuilderIO/skills
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Read The Damn Docs
|
|
15
|
+
|
|
16
|
+
Do not guess where authoritative docs can answer the question. The most common
|
|
17
|
+
correct move is to search for the current official docs, open the relevant
|
|
18
|
+
pages, and read them before writing code. For APIs, versions, provider behavior,
|
|
19
|
+
config, limits, lifecycle hooks, or security-sensitive flows, ground the answer
|
|
20
|
+
in what the docs actually say.
|
|
21
|
+
|
|
22
|
+
**Division of labour with `AGENTS.md`.** `AGENTS.md`'s *Zero guesswork* rule
|
|
23
|
+
states the obligation and the trigger list. This skill is the **procedure** that
|
|
24
|
+
discharges it. If the two ever disagree, the rule in `AGENTS.md` wins and this
|
|
25
|
+
file is the thing that should change.
|
|
26
|
+
|
|
27
|
+
Adapted from [BuilderIO/skills](https://github.com/BuilderIO/skills) (MIT).
|
|
28
|
+
Prose only — no upstream scripts, no agent config, no dependency.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 1. Docs-First Triggers
|
|
33
|
+
|
|
34
|
+
Read docs before proceeding when any of these are true:
|
|
35
|
+
|
|
36
|
+
- The user asks for "latest", "current", "official", "supported", "best
|
|
37
|
+
practice", "recommended", "today", "now", or "look it up".
|
|
38
|
+
- The needed docs are **not** already in the repo or supplied by the user.
|
|
39
|
+
Search for the official docs rather than hoping model memory is current.
|
|
40
|
+
- The task adds, upgrades, configures, or imports a package, SDK, framework,
|
|
41
|
+
plugin, CLI, model, cloud resource, or provider integration.
|
|
42
|
+
- The API is fast-moving or version-sensitive: AI SDKs, model provider APIs,
|
|
43
|
+
Next.js, React, Tailwind, Vite, Drizzle, Prisma, Stripe, GitHub, Slack,
|
|
44
|
+
Notion, browser APIs, deployment platforms, auth libraries, and similar.
|
|
45
|
+
- The implementation depends on auth, OAuth scopes, permissions, secrets,
|
|
46
|
+
webhooks, billing, payments, PII, encryption, data retention, migrations,
|
|
47
|
+
retries, rate limits, quotas, caching, deploys, or compliance.
|
|
48
|
+
- An error mentions deprecation, unknown options, missing exports, invalid
|
|
49
|
+
config, unsupported fields, changed defaults, or version mismatch.
|
|
50
|
+
- The repo has local docs, ADRs, generated schemas, OpenAPI specs, route or
|
|
51
|
+
action registries, design-system docs, or package-level READMEs that could
|
|
52
|
+
define the contract.
|
|
53
|
+
- The choice is expensive to reverse: public wire formats, database schema,
|
|
54
|
+
migration strategy, persistent IDs, event names, customer-visible behavior,
|
|
55
|
+
or external automation contracts.
|
|
56
|
+
- You catch yourself about to write "usually", "probably", "I think", "from
|
|
57
|
+
memory", or code copied from model memory for an external API.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 2. What Counts As Docs
|
|
62
|
+
|
|
63
|
+
Use the most authoritative source available:
|
|
64
|
+
|
|
65
|
+
- **Local** repo docs, specs, ADRs, schemas, generated types, package READMEs,
|
|
66
|
+
and tests — for project-specific behaviour.
|
|
67
|
+
- **Official** product docs, API references, migration guides, changelogs,
|
|
68
|
+
release notes, and SDK source or type definitions — for third-party
|
|
69
|
+
behaviour. Find these with web search when you do not already have the URL.
|
|
70
|
+
- **Package registry metadata** for versions. Before adding a dependency, check
|
|
71
|
+
its current version (`npm view <pkg> version`, `pnpm view <pkg> version`, or
|
|
72
|
+
the ecosystem equivalent), then read the docs for *that* major version.
|
|
73
|
+
- **Source code or type definitions** when official docs are incomplete. Treat
|
|
74
|
+
this as evidence, not folklore.
|
|
75
|
+
|
|
76
|
+
Avoid Stack Overflow, old blog posts, random snippets, and memory as the
|
|
77
|
+
primary source when official docs exist. Use community sources only to debug
|
|
78
|
+
symptoms *after* the authoritative contract is known.
|
|
79
|
+
|
|
80
|
+
**In this environment:** `firecrawl-search` and `firecrawl-scrape` are the
|
|
81
|
+
installed tools for the web pass, and `deja-memory` / `memb_mcp` can surface
|
|
82
|
+
prior project knowledge. Neither substitutes for a docs read.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 3. Required Workflow
|
|
87
|
+
|
|
88
|
+
1. **Identify the exact surface** — package name, installed version, target
|
|
89
|
+
version, provider endpoint, CLI command, config file, local helper, schema,
|
|
90
|
+
or product feature.
|
|
91
|
+
2. **Search for the current official docs**, unless the relevant docs are
|
|
92
|
+
already local or the user supplied a URL. Targeted queries work best:
|
|
93
|
+
`<product> <feature> official docs`, `<package> migration guide`,
|
|
94
|
+
`<provider> API reference`.
|
|
95
|
+
3. **Open and read the docs closest to that surface.** Prefer local docs first
|
|
96
|
+
for internal code, then official upstream docs. For new packages, verify the
|
|
97
|
+
latest version before writing imports, config, or install commands.
|
|
98
|
+
4. **Extract the few facts needed** — option names, imports, lifecycle rules,
|
|
99
|
+
default behaviour, breaking changes, limits, permissions, and examples for
|
|
100
|
+
the current major version.
|
|
101
|
+
5. **Implement or answer using those facts.** If the docs conflict with existing
|
|
102
|
+
code, inspect the local code path and call out the discrepancy — do not
|
|
103
|
+
silently pick one.
|
|
104
|
+
6. **Verify with the smallest useful check** — typecheck, tests, build, CLI dry
|
|
105
|
+
run, API schema validation, or a local reproduction. This is the same
|
|
106
|
+
"narrowest quiet validation" rule the Shipping gate enforces.
|
|
107
|
+
7. **Name what you read** in the final answer, when that evidence affected the
|
|
108
|
+
recommendation or the implementation.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 4. Examples That Must Trigger A Docs Pass
|
|
113
|
+
|
|
114
|
+
- *"Add Tailwind to this app."* — Check the current Tailwind major and its
|
|
115
|
+
install docs before creating config files or assuming old PostCSS setup.
|
|
116
|
+
- *"Stream responses with the AI SDK."* — Verify the current SDK major,
|
|
117
|
+
provider package names, streaming helpers, and runtime examples.
|
|
118
|
+
- *"Wire up Stripe webhooks."* — Read current signature verification, event
|
|
119
|
+
retry, endpoint secret, and framework body-parsing docs before coding.
|
|
120
|
+
- *"Fix this Next.js caching bug."* — Read the docs for the **installed** major
|
|
121
|
+
and router mode before assuming cache invalidation semantics.
|
|
122
|
+
- *"Add Drizzle migrations."* — Read the current kit docs **and** the existing
|
|
123
|
+
repo migration conventions before generating files.
|
|
124
|
+
- *"Create a GitHub Action."* — Read Actions syntax and permissions docs,
|
|
125
|
+
especially `pull_request`, `workflow_run`, OIDC, tokens, and artifacts.
|
|
126
|
+
- *"Why does this OAuth flow fail?"* — Read the provider's scopes, redirect URI,
|
|
127
|
+
PKCE, token refresh, and app-verification docs before changing code.
|
|
128
|
+
- *"Use this repo's plan/comment/action system."* — Read local docs, route and
|
|
129
|
+
action registries, schemas, and tests before inventing endpoints or props.
|
|
130
|
+
- *"Upgrade Vite/React."* — Read the migration guide for the **exact** target
|
|
131
|
+
major before editing config or imports.
|
|
132
|
+
- *"What model should we use?"* — Read current provider model docs, pricing and
|
|
133
|
+
limits pages, and SDK examples before recommending.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## 5. When A Quick Local Read Is Enough
|
|
138
|
+
|
|
139
|
+
Do not search the web for every tiny edit. A docs pass can be local and brief
|
|
140
|
+
when the answer is already in the repo: existing helper usage, nearby tests,
|
|
141
|
+
typed interfaces, generated clients, ADRs, or package READMEs.
|
|
142
|
+
|
|
143
|
+
But if the task depends on an external tool, package, provider, or current
|
|
144
|
+
product behaviour, a search is usually the right first step. For trivial
|
|
145
|
+
language syntax, typo fixes, formatting, or self-contained code with no
|
|
146
|
+
external contract, proceed normally.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## 6. If Docs Are Unavailable
|
|
151
|
+
|
|
152
|
+
If network access, auth, or missing local files prevents reading the docs, say
|
|
153
|
+
that plainly **before** relying on memory. Narrow the uncertainty, inspect
|
|
154
|
+
source or types if available, and do not present the result as
|
|
155
|
+
confirmed-current. A clearly-labelled estimate is useful; an unlabelled one is
|
|
156
|
+
a defect.
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 7. Verification
|
|
161
|
+
|
|
162
|
+
- [ ] Every trigger in §1 was checked before writing code, not after.
|
|
163
|
+
- [ ] The exact version in play was established (installed vs. target), and the
|
|
164
|
+
docs read match that major.
|
|
165
|
+
- [ ] At least one authoritative source backs every external API, option name,
|
|
166
|
+
default, limit, and lifecycle claim in the output.
|
|
167
|
+
- [ ] No claim rests on Stack Overflow, a blog post, or model memory as its
|
|
168
|
+
primary source.
|
|
169
|
+
- [ ] Conflicts between docs and local code were surfaced, not silently
|
|
170
|
+
resolved.
|
|
171
|
+
- [ ] The smallest useful verification check was run and its result reported.
|
|
172
|
+
- [ ] The sources consulted are named in the response where they affected the
|
|
173
|
+
recommendation.
|
|
174
|
+
- [ ] Any remaining uncertainty is stated explicitly, with what would resolve it.
|
|
175
|
+
- [ ] No npm dependency, script, or executable was added by this skill.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: requesting-code-review
|
|
3
|
+
description: Use when completing tasks, implementing major features, or before merging to verify work meets requirements
|
|
4
|
+
category: engineering-method
|
|
5
|
+
source: superpowers
|
|
6
|
+
date_added: "2026-09-25"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Requesting Code Review
|
|
10
|
+
|
|
11
|
+
Dispatch a code reviewer subagent to catch issues before they cascade. The reviewer gets precisely crafted context for evaluation — never your session's history.
|
|
12
|
+
|
|
13
|
+
**Core principle:** Review early, review often.
|
|
14
|
+
|
|
15
|
+
## When to Request Review
|
|
16
|
+
|
|
17
|
+
**Mandatory:**
|
|
18
|
+
- After each task in subagent-driven development
|
|
19
|
+
- After completing major feature
|
|
20
|
+
- Before merge to main
|
|
21
|
+
|
|
22
|
+
**Optional but valuable:**
|
|
23
|
+
- When stuck (fresh perspective)
|
|
24
|
+
- Before refactoring (baseline check)
|
|
25
|
+
- After fixing complex bug
|
|
26
|
+
|
|
27
|
+
## How to Request
|
|
28
|
+
|
|
29
|
+
**1. Get git SHAs:**
|
|
30
|
+
```bash
|
|
31
|
+
BASE_SHA=$(git rev-parse HEAD~1) # or: git merge-base origin/main HEAD
|
|
32
|
+
HEAD_SHA=$(git rev-parse HEAD)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**2. Dispatch code reviewer subagent:**
|
|
36
|
+
|
|
37
|
+
Dispatch a `general-purpose` subagent, filling the template at [code-reviewer.md](code-reviewer.md)
|
|
38
|
+
|
|
39
|
+
**Placeholders:**
|
|
40
|
+
- `{DESCRIPTION}` - Brief summary of what you built
|
|
41
|
+
- `{PLAN_OR_REQUIREMENTS}` - What it should do
|
|
42
|
+
- `{BASE_SHA}` - Starting commit
|
|
43
|
+
- `{HEAD_SHA}` - Ending commit
|
|
44
|
+
|
|
45
|
+
**3. Act on feedback:**
|
|
46
|
+
- Fix Critical issues immediately
|
|
47
|
+
- Fix Important issues before proceeding
|
|
48
|
+
- Note Minor issues for later
|
|
49
|
+
- Push back if reviewer is wrong (with reasoning)
|
|
50
|
+
|
|
51
|
+
## Example
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
[Just completed Task 2: Add verification function]
|
|
55
|
+
|
|
56
|
+
You: Let me request code review before proceeding.
|
|
57
|
+
|
|
58
|
+
BASE_SHA=$(git log --oneline | grep "Task 1" | head -1 | awk '{print $1}')
|
|
59
|
+
HEAD_SHA=$(git rev-parse HEAD)
|
|
60
|
+
|
|
61
|
+
[Dispatch code reviewer subagent]
|
|
62
|
+
DESCRIPTION: Added verifyIndex() and repairIndex() with 4 issue types
|
|
63
|
+
PLAN_OR_REQUIREMENTS: Task 2 from docs/superpowers/plans/deployment-plan.md
|
|
64
|
+
BASE_SHA: a7981ec
|
|
65
|
+
HEAD_SHA: 3df7661
|
|
66
|
+
|
|
67
|
+
[Subagent returns]:
|
|
68
|
+
Strengths: Clean architecture, real tests
|
|
69
|
+
Issues:
|
|
70
|
+
Important: Missing progress indicators
|
|
71
|
+
Minor: Magic number (100) for reporting interval
|
|
72
|
+
Assessment: Ready to proceed
|
|
73
|
+
|
|
74
|
+
You: [Fix progress indicators]
|
|
75
|
+
[Continue to Task 3]
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Common Rationalizations
|
|
79
|
+
|
|
80
|
+
| Excuse | Reality |
|
|
81
|
+
|--------|---------|
|
|
82
|
+
| "I'll just review the diff myself instead of dispatching a reviewer" | You're the coordinator — reviewing the diff inline burns the context window you need to keep driving the work. Dispatch a reviewer subagent: the diff and the evaluation live in its context, and only the findings come back to you. |
|
|
83
|
+
| "The reviewer needs my whole session history to understand the change" | Hand it precisely crafted context, never your session's history. That keeps the reviewer on the work product, not your thought process. |
|
|
84
|
+
|
|
85
|
+
## Red Flags
|
|
86
|
+
|
|
87
|
+
**Never:**
|
|
88
|
+
- Skip review because "it's simple"
|
|
89
|
+
- Ignore Critical issues
|
|
90
|
+
- Proceed with unfixed Important issues
|
|
91
|
+
- Argue with valid technical feedback
|
|
92
|
+
|
|
93
|
+
**If reviewer wrong:**
|
|
94
|
+
- Push back with technical reasoning
|
|
95
|
+
- Show code/tests that prove it works
|
|
96
|
+
- Request clarification
|
|
97
|
+
|
|
98
|
+
See template at: [code-reviewer.md](code-reviewer.md)
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# Code Reviewer Prompt Template
|
|
2
|
+
|
|
3
|
+
Use this template when dispatching a code reviewer subagent.
|
|
4
|
+
|
|
5
|
+
**Purpose:** Review completed work against requirements and code quality standards before it cascades into more work.
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Subagent (general-purpose):
|
|
9
|
+
description: "Review code changes"
|
|
10
|
+
prompt: |
|
|
11
|
+
You are a Senior Code Reviewer with expertise in software architecture,
|
|
12
|
+
design patterns, and best practices. Your job is to review completed work
|
|
13
|
+
against its plan or requirements and identify issues before they cascade.
|
|
14
|
+
|
|
15
|
+
## What Was Implemented
|
|
16
|
+
|
|
17
|
+
[DESCRIPTION]
|
|
18
|
+
|
|
19
|
+
## Requirements / Plan
|
|
20
|
+
|
|
21
|
+
[PLAN_OR_REQUIREMENTS]
|
|
22
|
+
|
|
23
|
+
## Git Range to Review
|
|
24
|
+
|
|
25
|
+
**Base:** [BASE_SHA]
|
|
26
|
+
**Head:** [HEAD_SHA]
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
git diff --stat [BASE_SHA]..[HEAD_SHA]
|
|
30
|
+
git diff [BASE_SHA]..[HEAD_SHA]
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## The spec is a vision document
|
|
34
|
+
|
|
35
|
+
The spec says what the software must do. It does not enumerate every
|
|
36
|
+
input, environment, or condition the software will meet. For behavior
|
|
37
|
+
the spec is silent on, judge by what a reasonable person using this
|
|
38
|
+
software would expect: a reasonable person's expectation is a
|
|
39
|
+
requirement, and a spec's silence is not permission. Grade such
|
|
40
|
+
findings by their effect on that person, not by whether the spec
|
|
41
|
+
mentions the trigger.
|
|
42
|
+
|
|
43
|
+
## Declined to judge
|
|
44
|
+
|
|
45
|
+
Before your verdict, list every behavior you considered and set aside
|
|
46
|
+
as outside the plan or spec, one line each, with the reason. The
|
|
47
|
+
executor rules on each line; nothing you set aside is dropped
|
|
48
|
+
silently. An empty list means you set nothing aside.
|
|
49
|
+
|
|
50
|
+
## Read-Only Review
|
|
51
|
+
|
|
52
|
+
Your review is read-only on this checkout. Do not mutate the working tree, the index, HEAD, or branch state in any way. Use tools like `git show`, `git diff`, and `git log` to inspect history. If you need a working copy of a different revision, check it out into a separate temporary directory (e.g. `git worktree add /tmp/review-[SHA] [SHA]`) — never move HEAD on this checkout.
|
|
53
|
+
|
|
54
|
+
## You Do Not Dispatch Subagents
|
|
55
|
+
|
|
56
|
+
Do all of this review yourself. Never spawn a subagent to review part
|
|
57
|
+
of the diff, and never spawn another reviewer for a second opinion.
|
|
58
|
+
This process already provides every review seat the work gets; a
|
|
59
|
+
reviewer you spawn duplicates one of them at full cost, and its
|
|
60
|
+
verdict counts for nothing. If the diff feels too large for one
|
|
61
|
+
pass, review it in passes yourself and say so in your report.
|
|
62
|
+
|
|
63
|
+
## What to Check
|
|
64
|
+
|
|
65
|
+
**Plan alignment:**
|
|
66
|
+
- Does the implementation match the plan / requirements?
|
|
67
|
+
- Are deviations justified improvements, or problematic departures?
|
|
68
|
+
- Is all planned functionality present?
|
|
69
|
+
|
|
70
|
+
**Code quality:**
|
|
71
|
+
- Clean separation of concerns?
|
|
72
|
+
- Proper error handling?
|
|
73
|
+
- Type safety where applicable?
|
|
74
|
+
- DRY without premature abstraction?
|
|
75
|
+
- Edge cases handled?
|
|
76
|
+
|
|
77
|
+
**Architecture:**
|
|
78
|
+
- Sound design decisions?
|
|
79
|
+
- Reasonable scalability and performance?
|
|
80
|
+
- Security concerns?
|
|
81
|
+
- Integrates cleanly with surrounding code?
|
|
82
|
+
|
|
83
|
+
**Testing:**
|
|
84
|
+
- Tests verify real behavior, not mocks?
|
|
85
|
+
- Edge cases covered?
|
|
86
|
+
- Integration tests where they matter?
|
|
87
|
+
- All tests passing?
|
|
88
|
+
|
|
89
|
+
**Production readiness:**
|
|
90
|
+
- Migration strategy if schema changed?
|
|
91
|
+
- Backward compatibility considered?
|
|
92
|
+
- Documentation complete?
|
|
93
|
+
- No obvious bugs?
|
|
94
|
+
|
|
95
|
+
## Calibration
|
|
96
|
+
|
|
97
|
+
Categorize issues by actual severity. Not everything is Critical.
|
|
98
|
+
Acknowledge what was done well before listing issues — accurate praise
|
|
99
|
+
helps the implementer trust the rest of the feedback.
|
|
100
|
+
|
|
101
|
+
If you find significant deviations from the plan, flag them specifically
|
|
102
|
+
so the implementer can confirm whether the deviation was intentional.
|
|
103
|
+
If you find issues with the plan itself rather than the implementation,
|
|
104
|
+
say so.
|
|
105
|
+
|
|
106
|
+
## Output Format
|
|
107
|
+
|
|
108
|
+
### Strengths
|
|
109
|
+
[What's well done? Be specific.]
|
|
110
|
+
|
|
111
|
+
### Issues
|
|
112
|
+
|
|
113
|
+
#### Critical (Must Fix)
|
|
114
|
+
[Bugs, security issues, data loss risks, broken functionality]
|
|
115
|
+
|
|
116
|
+
#### Important (Should Fix)
|
|
117
|
+
[Architecture problems, missing features, poor error handling, test gaps]
|
|
118
|
+
|
|
119
|
+
#### Minor (Nice to Have)
|
|
120
|
+
[Code style, optimization opportunities, documentation polish]
|
|
121
|
+
|
|
122
|
+
For each issue:
|
|
123
|
+
- File:line reference
|
|
124
|
+
- What's wrong
|
|
125
|
+
- Why it matters
|
|
126
|
+
- How to fix (if not obvious)
|
|
127
|
+
|
|
128
|
+
### Recommendations
|
|
129
|
+
[Improvements for code quality, architecture, or process]
|
|
130
|
+
|
|
131
|
+
### Assessment
|
|
132
|
+
|
|
133
|
+
**Ready to merge?** [Yes | No | With fixes]
|
|
134
|
+
|
|
135
|
+
**Reasoning:** [1-2 sentence technical assessment]
|
|
136
|
+
|
|
137
|
+
## Critical Rules
|
|
138
|
+
|
|
139
|
+
**DO:**
|
|
140
|
+
- Categorize by actual severity
|
|
141
|
+
- Be specific (file:line, not vague)
|
|
142
|
+
- Explain WHY each issue matters
|
|
143
|
+
- Acknowledge strengths
|
|
144
|
+
- Give a clear verdict
|
|
145
|
+
|
|
146
|
+
**DON'T:**
|
|
147
|
+
- Say "looks good" without checking
|
|
148
|
+
- Mark nitpicks as Critical
|
|
149
|
+
- Give feedback on code you didn't actually read
|
|
150
|
+
- Be vague ("improve error handling")
|
|
151
|
+
- Avoid giving a clear verdict
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Placeholders:**
|
|
155
|
+
- `[DESCRIPTION]` — brief summary of what was built
|
|
156
|
+
- `[PLAN_OR_REQUIREMENTS]` — what it should do (plan file path, task text, or requirements)
|
|
157
|
+
- `[BASE_SHA]` — starting commit
|
|
158
|
+
- `[HEAD_SHA]` — ending commit
|
|
159
|
+
|
|
160
|
+
**Reviewer returns:** Strengths, Issues (Critical / Important / Minor), Recommendations, Assessment
|
|
161
|
+
|
|
162
|
+
## Example Output
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
### Strengths
|
|
166
|
+
- Clean database schema with proper migrations (db.ts:15-42)
|
|
167
|
+
- Comprehensive test coverage (18 tests, all edge cases)
|
|
168
|
+
- Good error handling with fallbacks (summarizer.ts:85-92)
|
|
169
|
+
|
|
170
|
+
### Issues
|
|
171
|
+
|
|
172
|
+
#### Important
|
|
173
|
+
1. **Missing help text in CLI wrapper**
|
|
174
|
+
- File: index-conversations:1-31
|
|
175
|
+
- Issue: No --help flag, users won't discover --concurrency
|
|
176
|
+
- Fix: Add --help case with usage examples
|
|
177
|
+
|
|
178
|
+
2. **Date validation missing**
|
|
179
|
+
- File: search.ts:25-27
|
|
180
|
+
- Issue: Invalid dates silently return no results
|
|
181
|
+
- Fix: Validate ISO format, throw error with example
|
|
182
|
+
|
|
183
|
+
#### Minor
|
|
184
|
+
1. **Progress indicators**
|
|
185
|
+
- File: indexer.ts:130
|
|
186
|
+
- Issue: No "X of Y" counter for long operations
|
|
187
|
+
- Impact: Users don't know how long to wait
|
|
188
|
+
|
|
189
|
+
### Recommendations
|
|
190
|
+
- Add progress reporting for user experience
|
|
191
|
+
- Consider config file for excluded projects (portability)
|
|
192
|
+
|
|
193
|
+
### Assessment
|
|
194
|
+
|
|
195
|
+
**Ready to merge: With fixes**
|
|
196
|
+
|
|
197
|
+
**Reasoning:** Core implementation is solid with good architecture and tests. Important issues (help text, date validation) are easily fixed and don't affect core functionality.
|
|
198
|
+
```
|