codymaster 4.1.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/CHANGELOG.md +50 -0
- package/README.md +285 -0
- package/adapters/antigravity.js +15 -0
- package/adapters/claude-code.js +17 -0
- package/adapters/cursor.js +16 -0
- package/commands/bootstrap.md +49 -0
- package/commands/build.md +48 -0
- package/commands/content.md +48 -0
- package/commands/continuity.md +60 -0
- package/commands/debug.md +51 -0
- package/commands/demo.md +96 -0
- package/commands/deploy.md +51 -0
- package/commands/plan.md +42 -0
- package/commands/review.md +55 -0
- package/commands/track.md +46 -0
- package/commands/ux.md +46 -0
- package/dist/agent-dispatch.js +161 -0
- package/dist/chains/builtin.js +85 -0
- package/dist/continuity.js +385 -0
- package/dist/dashboard.js +926 -0
- package/dist/data.js +122 -0
- package/dist/index.js +2434 -0
- package/dist/judge.js +252 -0
- package/dist/parallel-dispatch.js +359 -0
- package/dist/parallel-quality.js +172 -0
- package/dist/skill-chain.js +258 -0
- package/install.sh +513 -0
- package/package.json +79 -0
- package/skills/.content-factory-state.json +132 -0
- package/skills/.git 2/logs/refs/heads/main +1 -0
- package/skills/.git 2/logs/refs/remotes/origin/main +1 -0
- package/skills/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
- package/skills/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
- package/skills/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
- package/skills/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
- package/skills/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
- package/skills/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
- package/skills/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
- package/skills/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
- package/skills/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
- package/skills/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
- package/skills/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
- package/skills/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
- package/skills/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
- package/skills/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
- package/skills/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
- package/skills/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
- package/skills/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
- package/skills/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
- package/skills/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
- package/skills/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
- package/skills/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
- package/skills/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
- package/skills/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
- package/skills/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
- package/skills/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
- package/skills/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
- package/skills/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
- package/skills/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
- package/skills/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
- package/skills/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
- package/skills/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
- package/skills/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
- package/skills/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
- package/skills/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
- package/skills/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
- package/skills/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
- package/skills/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
- package/skills/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
- package/skills/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
- package/skills/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
- package/skills/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
- package/skills/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
- package/skills/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
- package/skills/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +5 -0
- package/skills/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
- package/skills/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
- package/skills/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
- package/skills/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
- package/skills/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
- package/skills/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
- package/skills/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
- package/skills/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
- package/skills/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
- package/skills/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
- package/skills/.git 2/refs/heads/main +1 -0
- package/skills/.git 2/refs/remotes/origin/main +1 -0
- package/skills/.pytest_cache 2/v/cache/nodeids +76 -0
- package/skills/.pytest_cache 2/v/cache/stepwise +1 -0
- package/skills/_shared/helpers.md +123 -0
- package/skills/_shared/outputs-convention.md +24 -0
- package/skills/cm-ads-tracker/SKILL.md +109 -0
- package/skills/cm-ads-tracker/evals/evals.json +55 -0
- package/skills/cm-ads-tracker/references/gtm-architecture.md +321 -0
- package/skills/cm-ads-tracker/references/industry-events.md +294 -0
- package/skills/cm-ads-tracker/references/platforms-api.md +238 -0
- package/skills/cm-ads-tracker/templates/capi-payload.md +79 -0
- package/skills/cm-ads-tracker/templates/datalayer-push.js +104 -0
- package/skills/cm-ads-tracker/templates/gtm-variables.js +56 -0
- package/skills/cm-brainstorm-idea/SKILL.md +423 -0
- package/skills/cm-code-review/SKILL.md +151 -0
- package/skills/cm-content-factory/SKILL.md +416 -0
- package/skills/cm-continuity/SKILL.md +399 -0
- package/skills/cm-dashboard/SKILL.md +533 -0
- package/skills/cm-dashboard/ui/app.js +1270 -0
- package/skills/cm-dashboard/ui/index.html +206 -0
- package/skills/cm-dashboard/ui/style.css +440 -0
- package/skills/cm-debugging/SKILL.md +412 -0
- package/skills/cm-deep-search/SKILL.md +242 -0
- package/skills/cm-design-system/SKILL.md +97 -0
- package/skills/cm-design-system/resources/halo-modern.md +40 -0
- package/skills/cm-design-system/resources/lunaris-advanced.md +40 -0
- package/skills/cm-design-system/resources/nitro-enterprise.md +39 -0
- package/skills/cm-design-system/resources/shadcn-default.md +37 -0
- package/skills/cm-dockit/README.md +100 -0
- package/skills/cm-dockit/SKILL.md +302 -0
- package/skills/cm-dockit/index.html +443 -0
- package/skills/cm-dockit/package-lock.json +1850 -0
- package/skills/cm-dockit/package.json +14 -0
- package/skills/cm-dockit/prompts/analysis.md +34 -0
- package/skills/cm-dockit/prompts/api-reference.md +24 -0
- package/skills/cm-dockit/prompts/architecture.md +21 -0
- package/skills/cm-dockit/prompts/data-flow.md +20 -0
- package/skills/cm-dockit/prompts/database.md +21 -0
- package/skills/cm-dockit/prompts/deployment.md +22 -0
- package/skills/cm-dockit/prompts/flows.md +21 -0
- package/skills/cm-dockit/prompts/jtbd.md +20 -0
- package/skills/cm-dockit/prompts/personas.md +24 -0
- package/skills/cm-dockit/prompts/sop-modules.md +40 -0
- package/skills/cm-dockit/scripts/doc-gen.sh +121 -0
- package/skills/cm-dockit/scripts/dockit-dashboard.sh +142 -0
- package/skills/cm-dockit/scripts/dockit-runner.sh +607 -0
- package/skills/cm-dockit/scripts/dockit-task.sh +166 -0
- package/skills/cm-dockit/skills/analyze-codebase.md +174 -0
- package/skills/cm-dockit/skills/api-reference.md +237 -0
- package/skills/cm-dockit/skills/changelog-guide.md +195 -0
- package/skills/cm-dockit/skills/content-guidelines.md +190 -0
- package/skills/cm-dockit/skills/sop-guide.md +184 -0
- package/skills/cm-dockit/skills/tech-docs.md +287 -0
- package/skills/cm-dockit/templates/markdown/structure.md +60 -0
- package/skills/cm-dockit/templates/vitepress-premium/.vitepress/config.mts +110 -0
- package/skills/cm-dockit/templates/vitepress-premium/.vitepress/theme/custom.css +189 -0
- package/skills/cm-dockit/templates/vitepress-premium/.vitepress/theme/index.ts +4 -0
- package/skills/cm-dockit/templates/vitepress-premium/package.json +19 -0
- package/skills/cm-dockit/templates/vitepress-premium/tests/frontend.test.ts +45 -0
- package/skills/cm-dockit/tests/runner.test.ts +66 -0
- package/skills/cm-dockit/workflows/export-markdown.md +82 -0
- package/skills/cm-dockit/workflows/generate-docs.md +68 -0
- package/skills/cm-dockit/workflows/setup-vitepress.md +181 -0
- package/skills/cm-example/SKILL.md +26 -0
- package/skills/cm-execution/SKILL.md +268 -0
- package/skills/cm-git-worktrees/SKILL.md +164 -0
- package/skills/cm-how-it-work/SKILL.md +189 -0
- package/skills/cm-identity-guard/SKILL.md +412 -0
- package/skills/cm-jtbd/SKILL.md +98 -0
- package/skills/cm-planning/SKILL.md +130 -0
- package/skills/cm-project-bootstrap/SKILL.md +161 -0
- package/skills/cm-project-bootstrap/templates/AGENTS.md +42 -0
- package/skills/cm-project-bootstrap/templates/frontend-safety.test.js +51 -0
- package/skills/cm-project-bootstrap/templates/i18n-sync.test.js +38 -0
- package/skills/cm-project-bootstrap/templates/pr-template.md +12 -0
- package/skills/cm-project-bootstrap/templates/project-identity.json +29 -0
- package/skills/cm-project-bootstrap/templates/vitest.config.js +10 -0
- package/skills/cm-quality-gate/SKILL.md +218 -0
- package/skills/cm-readit/SKILL.md +289 -0
- package/skills/cm-readit/audio-player.md +206 -0
- package/skills/cm-readit/examples/blog-reader.js +352 -0
- package/skills/cm-readit/examples/voice-cro.js +390 -0
- package/skills/cm-readit/tts-engine.md +262 -0
- package/skills/cm-readit/ui-patterns.md +362 -0
- package/skills/cm-readit/voice-cro.md +223 -0
- package/skills/cm-safe-deploy/SKILL.md +120 -0
- package/skills/cm-safe-deploy/templates/deploy.sh +89 -0
- package/skills/cm-safe-i18n/SKILL.md +473 -0
- package/skills/cm-secret-shield/SKILL.md +580 -0
- package/skills/cm-skill-chain/SKILL.md +78 -0
- package/skills/cm-skill-index/SKILL.md +318 -0
- package/skills/cm-skill-mastery/SKILL.md +169 -0
- package/skills/cm-start/SKILL.md +65 -0
- package/skills/cm-status/SKILL.md +12 -0
- package/skills/cm-tdd/SKILL.md +370 -0
- package/skills/cm-terminal/SKILL.md +177 -0
- package/skills/cm-test-gate/SKILL.md +242 -0
- package/skills/cm-ui-preview/SKILL.md +291 -0
- package/skills/cm-ux-master/DESIGN_STANDARD_TEMPLATE.md +54 -0
- package/skills/cm-ux-master/SKILL.md +114 -0
- package/skills/cro-methodology/SKILL.md +98 -0
- package/skills/cro-methodology/references/COPYWRITING.md +178 -0
- package/skills/cro-methodology/references/OBJECTIONS.md +135 -0
- package/skills/cro-methodology/references/PERSUASION.md +158 -0
- package/skills/cro-methodology/references/RESEARCH.md +220 -0
- package/skills/cro-methodology/references/funnel-analysis.md +365 -0
- package/skills/cro-methodology/references/testing-methodology.md +330 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# ============================================================
|
|
3
|
+
# DocKit Master v2 — Task Worker
|
|
4
|
+
# Executes a single documentation generation task
|
|
5
|
+
# ============================================================
|
|
6
|
+
set -euo pipefail
|
|
7
|
+
|
|
8
|
+
# ── Colors ──────────────────────────────────────────────────
|
|
9
|
+
RED='\033[0;31m'; GREEN='\033[0;32m'; CYAN='\033[0;36m'
|
|
10
|
+
YELLOW='\033[1;33m'; BOLD='\033[1m'; DIM='\033[2m'; NC='\033[0m'
|
|
11
|
+
|
|
12
|
+
log() { echo -e "${DIM}$(date +%H:%M:%S)${NC} [task:${TASK_ID:-?}] $1"; }
|
|
13
|
+
|
|
14
|
+
# ── Parse Args ──────────────────────────────────────────────
|
|
15
|
+
TASK_ID=""
|
|
16
|
+
PROJECT_PATH=""
|
|
17
|
+
OUTPUT_PATH=""
|
|
18
|
+
ENGINE="gemini"
|
|
19
|
+
SKILL_DIR=""
|
|
20
|
+
LANGUAGE="vi"
|
|
21
|
+
|
|
22
|
+
while [[ $# -gt 0 ]]; do
|
|
23
|
+
case $1 in
|
|
24
|
+
--task-id) TASK_ID="$2"; shift 2 ;;
|
|
25
|
+
--project) PROJECT_PATH="$2"; shift 2 ;;
|
|
26
|
+
--output) OUTPUT_PATH="$2"; shift 2 ;;
|
|
27
|
+
--engine) ENGINE="$2"; shift 2 ;;
|
|
28
|
+
--skill-dir) SKILL_DIR="$2"; shift 2 ;;
|
|
29
|
+
--language) LANGUAGE="$2"; shift 2 ;;
|
|
30
|
+
*) shift ;;
|
|
31
|
+
esac
|
|
32
|
+
done
|
|
33
|
+
|
|
34
|
+
if [[ -z "$TASK_ID" || -z "$PROJECT_PATH" || -z "$OUTPUT_PATH" ]]; then
|
|
35
|
+
echo "Usage: dockit-task.sh --task-id ID --project PATH --output PATH --engine ENGINE --skill-dir DIR"
|
|
36
|
+
exit 1
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
PROMPTS_DIR="${SKILL_DIR}/prompts"
|
|
40
|
+
PROJECT_NAME="$(basename "$PROJECT_PATH")"
|
|
41
|
+
|
|
42
|
+
# ── Prompt Builder ──────────────────────────────────────────
|
|
43
|
+
build_prompt() {
|
|
44
|
+
local prompt_file="$PROMPTS_DIR/${TASK_ID}.md"
|
|
45
|
+
|
|
46
|
+
if [[ -f "$prompt_file" ]]; then
|
|
47
|
+
# Load from prompts directory and substitute variables
|
|
48
|
+
sed -e "s|{{PROJECT_PATH}}|$PROJECT_PATH|g" \
|
|
49
|
+
-e "s|{{PROJECT_NAME}}|$PROJECT_NAME|g" \
|
|
50
|
+
-e "s|{{OUTPUT_PATH}}|$OUTPUT_PATH|g" \
|
|
51
|
+
-e "s|{{LANGUAGE}}|$LANGUAGE|g" \
|
|
52
|
+
"$prompt_file"
|
|
53
|
+
else
|
|
54
|
+
# Fallback: generate a generic prompt
|
|
55
|
+
cat << PROMPT
|
|
56
|
+
You are DocKit Master, a documentation generator.
|
|
57
|
+
|
|
58
|
+
Task: Generate the "$TASK_ID" documentation for the project at: $PROJECT_PATH
|
|
59
|
+
|
|
60
|
+
Language: $LANGUAGE
|
|
61
|
+
Output file: $OUTPUT_PATH
|
|
62
|
+
|
|
63
|
+
Instructions:
|
|
64
|
+
1. Scan the project codebase thoroughly
|
|
65
|
+
2. Generate comprehensive documentation
|
|
66
|
+
3. Write the output as a Markdown file
|
|
67
|
+
4. Include YAML frontmatter with title, description, keywords
|
|
68
|
+
5. Use Mermaid diagrams where helpful
|
|
69
|
+
6. Include tables for structured data
|
|
70
|
+
|
|
71
|
+
Write the complete file content for: $OUTPUT_PATH
|
|
72
|
+
PROMPT
|
|
73
|
+
fi
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
# ── Execute via Gemini CLI ──────────────────────────────────
|
|
77
|
+
run_gemini() {
|
|
78
|
+
local prompt
|
|
79
|
+
prompt="$(build_prompt)"
|
|
80
|
+
|
|
81
|
+
log "Running via Gemini CLI..."
|
|
82
|
+
|
|
83
|
+
# Create temp prompt file
|
|
84
|
+
local tmp_prompt="/tmp/dockit-prompt-${TASK_ID}-$$.md"
|
|
85
|
+
echo "$prompt" > "$tmp_prompt"
|
|
86
|
+
|
|
87
|
+
# Run Gemini CLI
|
|
88
|
+
# The exact command depends on Gemini CLI version
|
|
89
|
+
local result_file="/tmp/dockit-result-${TASK_ID}-$$.md"
|
|
90
|
+
|
|
91
|
+
if command -v gemini &>/dev/null; then
|
|
92
|
+
# Try Gemini CLI with file output
|
|
93
|
+
gemini -p "$(cat "$tmp_prompt")" > "$result_file" 2>/dev/null
|
|
94
|
+
|
|
95
|
+
if [[ -f "$result_file" ]] && [[ -s "$result_file" ]]; then
|
|
96
|
+
mkdir -p "$(dirname "$OUTPUT_PATH")"
|
|
97
|
+
cp "$result_file" "$OUTPUT_PATH"
|
|
98
|
+
log "✅ Output written to: $OUTPUT_PATH"
|
|
99
|
+
rm -f "$tmp_prompt" "$result_file"
|
|
100
|
+
return 0
|
|
101
|
+
fi
|
|
102
|
+
fi
|
|
103
|
+
|
|
104
|
+
# Fallback: save prompt for manual execution
|
|
105
|
+
log "⚠️ Gemini CLI execution failed. Saving prompt for manual use."
|
|
106
|
+
mkdir -p "$(dirname "$OUTPUT_PATH")"
|
|
107
|
+
echo "<!-- DOCKIT: Task $TASK_ID - Prompt saved, needs manual execution -->" > "$OUTPUT_PATH"
|
|
108
|
+
echo "<!-- Run: gemini -p \"\$(cat $tmp_prompt)\" > $OUTPUT_PATH -->" >> "$OUTPUT_PATH"
|
|
109
|
+
cat "$tmp_prompt" >> "$OUTPUT_PATH"
|
|
110
|
+
rm -f "$result_file"
|
|
111
|
+
return 1
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
# ── Execute via Prompt Copy ─────────────────────────────────
|
|
115
|
+
run_prompt_copy() {
|
|
116
|
+
local prompt
|
|
117
|
+
prompt="$(build_prompt)"
|
|
118
|
+
|
|
119
|
+
log "Saving prompt for manual execution..."
|
|
120
|
+
mkdir -p "$(dirname "$OUTPUT_PATH")"
|
|
121
|
+
|
|
122
|
+
# Save the prompt
|
|
123
|
+
local prompt_save="$PROJECT_PATH/docs/_prompts/${TASK_ID}.md"
|
|
124
|
+
mkdir -p "$(dirname "$prompt_save")"
|
|
125
|
+
echo "$prompt" > "$prompt_save"
|
|
126
|
+
|
|
127
|
+
# Create placeholder output
|
|
128
|
+
cat > "$OUTPUT_PATH" << PLACEHOLDER
|
|
129
|
+
---
|
|
130
|
+
title: "$TASK_ID (pending)"
|
|
131
|
+
description: "This document needs to be generated manually"
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
# $TASK_ID
|
|
135
|
+
|
|
136
|
+
> ⚠️ This document was not auto-generated. Run the prompt manually:
|
|
137
|
+
> \`$prompt_save\`
|
|
138
|
+
|
|
139
|
+
Paste the prompt into Gemini CLI or Antigravity to generate this document.
|
|
140
|
+
PLACEHOLDER
|
|
141
|
+
|
|
142
|
+
log "Prompt saved: $prompt_save"
|
|
143
|
+
return 0 # Don't fail, just mark as needing manual work
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
# ═══════════════════════════════════════════════════════════
|
|
147
|
+
# MAIN
|
|
148
|
+
# ═══════════════════════════════════════════════════════════
|
|
149
|
+
|
|
150
|
+
log "Starting task: $TASK_ID"
|
|
151
|
+
log "Project: $PROJECT_PATH"
|
|
152
|
+
log "Output: $OUTPUT_PATH"
|
|
153
|
+
log "Engine: $ENGINE"
|
|
154
|
+
|
|
155
|
+
case "$ENGINE" in
|
|
156
|
+
gemini)
|
|
157
|
+
run_gemini
|
|
158
|
+
;;
|
|
159
|
+
prompt|*)
|
|
160
|
+
run_prompt_copy
|
|
161
|
+
;;
|
|
162
|
+
esac
|
|
163
|
+
|
|
164
|
+
exit_code=$?
|
|
165
|
+
log "Task $TASK_ID finished with exit code $exit_code"
|
|
166
|
+
exit $exit_code
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Analyze Codebase — UX Master Edition
|
|
2
|
+
|
|
3
|
+
Deeply analyze the codebase to create metadata for other documentation generation skills. Produces a comprehensive analysis with architecture diagrams, dependency graphs, and framework detection.
|
|
4
|
+
|
|
5
|
+
## Procedure
|
|
6
|
+
|
|
7
|
+
### 1. Scan Project Root
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
- Read README.md, package.json, Makefile, docker-compose.yml, etc.
|
|
11
|
+
- List all top-level directories
|
|
12
|
+
- Count files by extension to detect languages
|
|
13
|
+
- Identify monorepo structure if applicable
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### 2. Detect Tech Stack
|
|
17
|
+
|
|
18
|
+
| Signal | Detected As |
|
|
19
|
+
|--------|------------|
|
|
20
|
+
| `package.json` + `next.config.*` | Next.js |
|
|
21
|
+
| `package.json` + `vite.config.*` | Vite + React/Vue |
|
|
22
|
+
| `package.json` + `nuxt.config.*` | Nuxt.js |
|
|
23
|
+
| `package.json` + `svelte.config.*` | SvelteKit |
|
|
24
|
+
| `package.json` + `astro.config.*` | Astro |
|
|
25
|
+
| `requirements.txt` / `pyproject.toml` | Python |
|
|
26
|
+
| `go.mod` | Go |
|
|
27
|
+
| `Cargo.toml` | Rust |
|
|
28
|
+
| `pom.xml` / `build.gradle` | Java |
|
|
29
|
+
| `*.csproj` | .NET/C# |
|
|
30
|
+
| `docker-compose.yml` | Containerized |
|
|
31
|
+
| `Dockerfile` | Docker |
|
|
32
|
+
| `deno.json` / `deno.jsonc` | Deno |
|
|
33
|
+
| `bun.lockb` / `bunfig.toml` | Bun |
|
|
34
|
+
| `tauri.conf.json` | Tauri |
|
|
35
|
+
| `electron-builder.yml` | Electron |
|
|
36
|
+
| `Makefile` | Build automation |
|
|
37
|
+
| `setup.py` / `setup.cfg` | Python package |
|
|
38
|
+
|
|
39
|
+
### 3. Map Architecture
|
|
40
|
+
|
|
41
|
+
Identify and document:
|
|
42
|
+
|
|
43
|
+
1. **Presentation Layer** — Routes, pages, components, views
|
|
44
|
+
2. **Business Logic** — Services, controllers, handlers, middleware
|
|
45
|
+
3. **Data Layer** — Models, migrations, repositories, ORM config
|
|
46
|
+
4. **Infrastructure** — Config, Docker, CI/CD, deployment scripts
|
|
47
|
+
5. **External Integrations** — API clients, webhooks, SDKs
|
|
48
|
+
6. **Testing** — Test framework, test directories, coverage config
|
|
49
|
+
|
|
50
|
+
### 4. Identify Key Entry Points
|
|
51
|
+
|
|
52
|
+
- Web server startup file (e.g., `index.ts`, `main.py`, `main.go`, `app.py`)
|
|
53
|
+
- Route registration files
|
|
54
|
+
- Database migration files
|
|
55
|
+
- Environment/config files
|
|
56
|
+
- CLI entry points (`bin/`, `scripts/`)
|
|
57
|
+
|
|
58
|
+
### 5. Extract Route Map
|
|
59
|
+
|
|
60
|
+
Scan route/controller files and build a table:
|
|
61
|
+
|
|
62
|
+
| Method | Path | Handler | Auth | Middleware | Description |
|
|
63
|
+
|--------|------|---------|------|------------|-------------|
|
|
64
|
+
| GET | /api/users | getUsers | Yes | rateLimit | List users |
|
|
65
|
+
| POST | /api/users | createUser | Yes | validate | Create user |
|
|
66
|
+
|
|
67
|
+
### 6. Extract Database Schema
|
|
68
|
+
|
|
69
|
+
From migration files or ORM models, build:
|
|
70
|
+
|
|
71
|
+
- Table list with columns, types, and constraints
|
|
72
|
+
- Relationships (FK, many-to-many, polymorphic)
|
|
73
|
+
- Indexes and unique constraints
|
|
74
|
+
- Enum types
|
|
75
|
+
|
|
76
|
+
### 7. Analyze Dependencies
|
|
77
|
+
|
|
78
|
+
Build a dependency overview:
|
|
79
|
+
|
|
80
|
+
| Category | Package | Version | Purpose |
|
|
81
|
+
|----------|---------|---------|---------|
|
|
82
|
+
| Core | express | 4.18 | HTTP server |
|
|
83
|
+
| Database | prisma | 5.0 | ORM |
|
|
84
|
+
| Auth | jsonwebtoken | 9.0 | JWT handling |
|
|
85
|
+
| Testing | jest | 29.0 | Unit tests |
|
|
86
|
+
|
|
87
|
+
### 8. Detect Test Coverage
|
|
88
|
+
|
|
89
|
+
- Identify test framework (Jest, Pytest, Go test, etc.)
|
|
90
|
+
- Count test files vs source files
|
|
91
|
+
- Note CI/CD test integration
|
|
92
|
+
|
|
93
|
+
### 9. Output
|
|
94
|
+
|
|
95
|
+
Generate `docs/analysis.md` (note: NO underscore prefix — breaks auto-sidebar detection) with all findings:
|
|
96
|
+
|
|
97
|
+
```markdown
|
|
98
|
+
---
|
|
99
|
+
title: "Codebase Analysis"
|
|
100
|
+
description: "Automated analysis of the project codebase"
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
# Codebase Analysis
|
|
104
|
+
|
|
105
|
+
> **Quick Reference**
|
|
106
|
+
> - **Project**: [name from package.json/README]
|
|
107
|
+
> - **Type**: [Web App / API / Library / CLI / SDK]
|
|
108
|
+
> - **Languages**: [TypeScript, Python, etc.]
|
|
109
|
+
> - **Frameworks**: [Next.js, FastAPI, etc.]
|
|
110
|
+
> - **Lines of Code**: ~[estimate]
|
|
111
|
+
|
|
112
|
+
## Architecture
|
|
113
|
+
|
|
114
|
+
```mermaid
|
|
115
|
+
graph TB
|
|
116
|
+
|
|
117
|
+
subgraph Presentation
|
|
118
|
+
UI["🖥️ Frontend"]
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
subgraph Business
|
|
122
|
+
API["⚙️ API Server"]
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
subgraph Data
|
|
126
|
+
DB["🗄️ Database"]
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
UI --> API --> DB
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Directory Structure
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
[Annotated tree — show only important directories]
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Dependencies
|
|
139
|
+
|
|
140
|
+
| Category | Package | Version | Purpose |
|
|
141
|
+
|----------|---------|---------|---------|
|
|
142
|
+
|
|
143
|
+
## Route Map
|
|
144
|
+
|
|
145
|
+
| Method | Path | Handler | Auth | Description |
|
|
146
|
+
|--------|------|---------|------|-------------|
|
|
147
|
+
|
|
148
|
+
## Database Schema
|
|
149
|
+
|
|
150
|
+
| Table | Columns | Relationships |
|
|
151
|
+
|-------|---------|---------------|
|
|
152
|
+
|
|
153
|
+
## Key Files
|
|
154
|
+
|
|
155
|
+
| File | Role | Lines |
|
|
156
|
+
|------|------|-------|
|
|
157
|
+
| src/index.ts | Entry point | 150 |
|
|
158
|
+
| src/routes/ | API routes | — |
|
|
159
|
+
|
|
160
|
+
## Test Coverage
|
|
161
|
+
|
|
162
|
+
| Framework | Test Files | Coverage |
|
|
163
|
+
|-----------|-----------|----------|
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Rules
|
|
167
|
+
|
|
168
|
+
- **TRACE actual code** — never guess from filenames
|
|
169
|
+
- **Cite every finding**: `(file_path:line_number)`
|
|
170
|
+
- **Output file**: `analysis.md` (**NOT** `_analysis.md` — underscore breaks auto-sidebar)
|
|
171
|
+
- Use Mermaid diagrams — do NOT hardcode colors (let native theming handle light/dark)
|
|
172
|
+
- If a section cannot be determined, state **"Undetermined — requires further inspection"**
|
|
173
|
+
- **Quick Reference card** at top of output
|
|
174
|
+
- **Include dependency analysis** — essential for understanding the project
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
# API Reference Generator — UX Master Edition
|
|
2
|
+
|
|
3
|
+
Automatically generate API reference documentation with multi-language SDK examples and visual request flows.
|
|
4
|
+
|
|
5
|
+
## Input Required
|
|
6
|
+
|
|
7
|
+
- `docs/_analysis.md` (output from analyze-codebase)
|
|
8
|
+
- Access to route files, controllers, middleware, type definitions
|
|
9
|
+
|
|
10
|
+
## Content Guidelines
|
|
11
|
+
|
|
12
|
+
**Before generating, read `skills/content-guidelines.md` for:**
|
|
13
|
+
- Writing style rules
|
|
14
|
+
- Mermaid theme-neutral rules
|
|
15
|
+
|
|
16
|
+
## Procedure
|
|
17
|
+
|
|
18
|
+
### 1. Scan Route Files
|
|
19
|
+
|
|
20
|
+
Detect routing patterns by framework:
|
|
21
|
+
|
|
22
|
+
| Framework | Route Pattern |
|
|
23
|
+
|-----------|--------------|
|
|
24
|
+
| Express.js | `router.get('/path', handler)` |
|
|
25
|
+
| Next.js API | `app/api/*/route.ts` |
|
|
26
|
+
| FastAPI | `@app.get('/path')` |
|
|
27
|
+
| Hono | `app.get('/path', handler)` |
|
|
28
|
+
| Go (chi/gin) | `r.Get("/path", handler)` |
|
|
29
|
+
| NestJS | `@Get('/path')` decorator |
|
|
30
|
+
| Bun / Elysia | `app.get('/path', handler)` |
|
|
31
|
+
| Deno / Fresh | `GET /api/path` handler exports |
|
|
32
|
+
|
|
33
|
+
### 2. Extract Endpoint Details
|
|
34
|
+
|
|
35
|
+
For each endpoint, extract:
|
|
36
|
+
- HTTP method + path (with params)
|
|
37
|
+
- Middleware / guards (auth, rate limit)
|
|
38
|
+
- Request body schema (from types/validators)
|
|
39
|
+
- Response schema (from return types)
|
|
40
|
+
- Status codes (from error handlers)
|
|
41
|
+
|
|
42
|
+
### 3. Group by Resource
|
|
43
|
+
|
|
44
|
+
Organize endpoints by resource:
|
|
45
|
+
```
|
|
46
|
+
/api/users → Users
|
|
47
|
+
/api/orders → Orders
|
|
48
|
+
/api/products → Products
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 4. Generate Files
|
|
52
|
+
|
|
53
|
+
Output to `docs/api/[resource].md`
|
|
54
|
+
|
|
55
|
+
## API Reference Template
|
|
56
|
+
|
|
57
|
+
```markdown
|
|
58
|
+
---
|
|
59
|
+
title: "[Resource Name] API"
|
|
60
|
+
description: "API reference for [resource]"
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
# [Resource Name] API
|
|
64
|
+
|
|
65
|
+
> **Quick Reference**
|
|
66
|
+
> - **Base URL**: `[base_url]/api/[resource]`
|
|
67
|
+
> - **Auth**: Bearer Token / API Key / None
|
|
68
|
+
> - **Rate Limit**: [X requests/min]
|
|
69
|
+
> - **Content-Type**: `application/json`
|
|
70
|
+
|
|
71
|
+
## Endpoints Overview
|
|
72
|
+
|
|
73
|
+
| Method | Endpoint | Description | Auth |
|
|
74
|
+
|--------|----------|-------------|------|
|
|
75
|
+
| GET | `/api/resource` | List items | ✅ |
|
|
76
|
+
| GET | `/api/resource/:id` | Get details | ✅ |
|
|
77
|
+
| POST | `/api/resource` | Create item | ✅ |
|
|
78
|
+
| PUT | `/api/resource/:id` | Update item | ✅ |
|
|
79
|
+
| DELETE | `/api/resource/:id` | Delete item | ✅ |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## GET /api/resource
|
|
84
|
+
|
|
85
|
+
List all [resource].
|
|
86
|
+
|
|
87
|
+
### Parameters
|
|
88
|
+
|
|
89
|
+
| Name | Location | Type | Required | Default | Description |
|
|
90
|
+
|------|----------|------|----------|---------|-------------|
|
|
91
|
+
| page | query | number | ❌ | 1 | Page number |
|
|
92
|
+
| limit | query | number | ❌ | 20 | Items per page |
|
|
93
|
+
| sort | query | string | ❌ | `created_at` | Sort field |
|
|
94
|
+
|
|
95
|
+
### Response
|
|
96
|
+
|
|
97
|
+
**200 OK**
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"data": [...],
|
|
101
|
+
"total": 100,
|
|
102
|
+
"page": 1,
|
|
103
|
+
"limit": 20
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**401 Unauthorized**
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"error": "Authentication required",
|
|
111
|
+
"code": "AUTH_REQUIRED"
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Examples
|
|
116
|
+
|
|
117
|
+
<details>
|
|
118
|
+
<summary>cURL</summary>
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
curl -X GET "https://api.example.com/api/resource?page=1&limit=10" \
|
|
122
|
+
-H "Authorization: Bearer <token>"
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
</details>
|
|
126
|
+
|
|
127
|
+
<details>
|
|
128
|
+
<summary>Python</summary>
|
|
129
|
+
|
|
130
|
+
```python
|
|
131
|
+
import requests
|
|
132
|
+
|
|
133
|
+
response = requests.get(
|
|
134
|
+
"https://api.example.com/api/resource",
|
|
135
|
+
params={"page": 1, "limit": 10},
|
|
136
|
+
headers={"Authorization": f"Bearer {token}"}
|
|
137
|
+
)
|
|
138
|
+
data = response.json()
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
</details>
|
|
142
|
+
|
|
143
|
+
<details>
|
|
144
|
+
<summary>JavaScript (fetch)</summary>
|
|
145
|
+
|
|
146
|
+
```javascript
|
|
147
|
+
const response = await fetch('/api/resource?page=1&limit=10', {
|
|
148
|
+
headers: { 'Authorization': `Bearer ${token}` }
|
|
149
|
+
});
|
|
150
|
+
const data = await response.json();
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
</details>
|
|
154
|
+
|
|
155
|
+
<details>
|
|
156
|
+
<summary>Go</summary>
|
|
157
|
+
|
|
158
|
+
```go
|
|
159
|
+
req, _ := http.NewRequest("GET", "https://api.example.com/api/resource?page=1", nil)
|
|
160
|
+
req.Header.Set("Authorization", "Bearer "+token)
|
|
161
|
+
resp, _ := http.DefaultClient.Do(req)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
</details>
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Index File
|
|
168
|
+
|
|
169
|
+
Generate `docs/api/index.md`:
|
|
170
|
+
|
|
171
|
+
```markdown
|
|
172
|
+
---
|
|
173
|
+
title: "API Reference"
|
|
174
|
+
description: "API reference documentation"
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
# API Reference
|
|
178
|
+
|
|
179
|
+
> **Quick Reference**
|
|
180
|
+
> - **Base URL**: `[detected base URL]`
|
|
181
|
+
> - **Auth Method**: [Bearer token / API key / OAuth2]
|
|
182
|
+
> - **Response Format**: JSON
|
|
183
|
+
> - **API Version**: [v1 / v2]
|
|
184
|
+
|
|
185
|
+
## Authentication
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# Include this header in all authenticated requests
|
|
189
|
+
Authorization: Bearer <your_access_token>
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
:::warning
|
|
193
|
+
API keys should never be exposed in client-side code. Use server-side proxying or environment variables.
|
|
194
|
+
:::
|
|
195
|
+
|
|
196
|
+
## Endpoints
|
|
197
|
+
|
|
198
|
+
| Resource | Endpoints | Base Path | Auth |
|
|
199
|
+
|----------|-----------|-----------|------|
|
|
200
|
+
| Users | 5 | /api/users | ✅ |
|
|
201
|
+
| Orders | 4 | /api/orders | ✅ |
|
|
202
|
+
|
|
203
|
+
## Error Codes
|
|
204
|
+
|
|
205
|
+
| Code | Name | Description |
|
|
206
|
+
|------|------|-------------|
|
|
207
|
+
| 400 | Bad Request | Invalid or missing request data |
|
|
208
|
+
| 401 | Unauthorized | Authentication required |
|
|
209
|
+
| 403 | Forbidden | Insufficient permissions |
|
|
210
|
+
| 404 | Not Found | Resource does not exist |
|
|
211
|
+
| 422 | Unprocessable | Validation failed |
|
|
212
|
+
| 429 | Too Many Requests | Rate limit exceeded |
|
|
213
|
+
| 500 | Server Error | Internal server error |
|
|
214
|
+
|
|
215
|
+
## Rate Limiting
|
|
216
|
+
|
|
217
|
+
| Tier | Limit | Window |
|
|
218
|
+
|------|-------|--------|
|
|
219
|
+
| Free | 60 req | per minute |
|
|
220
|
+
| Pro | 600 req | per minute |
|
|
221
|
+
|
|
222
|
+
:::tip
|
|
223
|
+
Rate limit headers are included in every response:
|
|
224
|
+
`X-RateLimit-Remaining`, `X-RateLimit-Reset`
|
|
225
|
+
:::
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## Rules
|
|
229
|
+
|
|
230
|
+
- **Quick Reference card** at top of every API page
|
|
231
|
+
- **Extract schemas from actual type definitions** — never guess
|
|
232
|
+
- **Include real validation rules** from validators (Zod, Joi, class-validator)
|
|
233
|
+
- **Show both success and error responses** for every endpoint
|
|
234
|
+
- **Multi-language SDK examples** using `<details>` (cURL, Python, JS, Go)
|
|
235
|
+
- **Use `:::warning` admonition** for security-related notes
|
|
236
|
+
- **Use `:::tip` admonition** for usage tips
|
|
237
|
+
- **Cite source**: `(file_path:line_number)` for each endpoint
|