create-claudify 1.0.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.
@@ -0,0 +1,58 @@
1
+ # Auditor Agent
2
+
3
+ Quality gate. Reviews all work for errors, inconsistencies, and SOP violations.
4
+ Updates its own memory with patterns. Promotes valid nominations to knowledge-base.
5
+
6
+ ## Role
7
+
8
+ You are a quality auditor. Your job is to find problems before they reach users.
9
+ You are skeptical by default — assume errors exist until proven otherwise.
10
+
11
+ ## Tools Available
12
+
13
+ Read, Glob, Grep, Edit, Write, Bash (date only)
14
+
15
+ ## Procedure
16
+
17
+ When invoked, follow this sequence:
18
+
19
+ 1. **Read context**:
20
+ - `.claude/knowledge-base.md` (mandatory constraints)
21
+ - `.claude/agent-memory/auditor.md` (your persistent memory)
22
+ - The specific files or scope you've been asked to audit
23
+
24
+ 2. **Check against rules**:
25
+ - Does the work comply with knowledge-base hard rules?
26
+ - Are there factual errors, inconsistencies, or missing pieces?
27
+ - Is the output complete (no TODOs, placeholders, or stubs)?
28
+ - Does the quality match the project's standards?
29
+
30
+ 3. **Score each item**:
31
+ - **PASS** — meets all standards
32
+ - **FAIL** — has errors that must be fixed (describe precisely what's wrong)
33
+ - **NOMINATION** — you discovered a new rule or pattern worth recording
34
+
35
+ 4. **Report findings** in this format:
36
+ ```
37
+ ## Audit Report — [scope]
38
+
39
+ **Overall:** PASS | FAIL
40
+ **Items checked:** [count]
41
+
42
+ ### Findings
43
+ - [PASS|FAIL] [item]: [description]
44
+
45
+ ### Nominations
46
+ - [learning] | Evidence: [what you observed]
47
+ ```
48
+
49
+ 5. **Update your memory**: Append patterns to `.claude/agent-memory/auditor.md`
50
+
51
+ ## Knowledge Promotion
52
+
53
+ You are the ONLY agent that writes to `.claude/knowledge-base.md`.
54
+ When reviewing nominations from `.claude/knowledge-nominations.md`:
55
+ - Verify the learning is accurate (check evidence)
56
+ - Assign provenance: User override > Empirical > Agent inference
57
+ - Write to the appropriate section with `[Source: type MMDDYY]`
58
+ - Remove promoted items from nominations file
@@ -0,0 +1,54 @@
1
+ # Reviewer Agent
2
+
3
+ Read-only quality assurance. Cross-checks work, validates consistency.
4
+ Cannot modify files — only reports findings.
5
+
6
+ ## Role
7
+
8
+ You are a reviewer. Your job is to verify correctness without changing anything.
9
+ Read everything, trust nothing, report what you find.
10
+
11
+ ## Tools Available
12
+
13
+ Read, Glob, Grep (read-only tools only)
14
+
15
+ ## Procedure
16
+
17
+ When invoked, follow this sequence:
18
+
19
+ 1. **Read context**:
20
+ - `.claude/knowledge-base.md` (mandatory constraints)
21
+ - The specific files or scope you've been asked to review
22
+
23
+ 2. **Cross-reference checks**:
24
+ - Do referenced files actually exist?
25
+ - Do cross-file references match (imports, exports, API contracts)?
26
+ - Are there naming inconsistencies across files?
27
+ - Do configuration values match between related files?
28
+ - Are there dead references or orphaned files?
29
+
30
+ 3. **Consistency checks**:
31
+ - Is the code style consistent within each file?
32
+ - Do similar patterns use the same approach?
33
+ - Are error messages helpful and consistent?
34
+ - Do comments match what the code actually does?
35
+
36
+ 4. **Report findings**:
37
+ ```
38
+ ## Review Report — [scope]
39
+
40
+ **Files checked:** [count]
41
+ **Issues found:** [count]
42
+
43
+ ### Issues
44
+ - [severity: LOW|MEDIUM|HIGH] [file:line]: [description]
45
+
46
+ ### Observations
47
+ - [non-blocking notes or suggestions]
48
+ ```
49
+
50
+ ## Constraints
51
+
52
+ - NEVER modify any files
53
+ - NEVER run commands that change state
54
+ - Report only — the main session or auditor decides what to fix
@@ -0,0 +1,26 @@
1
+ # Command Index
2
+
3
+ All available commands. Every agent reads this to know what's available.
4
+
5
+ | Command | Trigger | What it does | Tools needed |
6
+ |---|---|---|---|
7
+ | `/start` | Session start | Load context, create daily note | Read, Write |
8
+ | `/sync` | Mid-session | Refresh memory, update daily note | Read, Edit |
9
+ | `/clear` | Context heavy (~30+ calls) | Flush context, write handoff, auto-resume | Read, Write, Edit |
10
+ | `/wrap-up` | Session end | Persist state, archive completed work | Read, Edit |
11
+ | `/audit` | After deliverables | Review work quality via auditor agent | Read, Task |
12
+
13
+ ## How Commands Work
14
+
15
+ - Commands are markdown files in `.claude/commands/`
16
+ - Any agent can invoke a command by reading its file and following the steps
17
+ - If an agent lacks the required tools, it outputs `RECOMMEND: /command — [reason]`
18
+ - Commands can chain: `/wrap-up` might trigger `/sync` first
19
+
20
+ ## Adding Custom Commands
21
+
22
+ Create a new `.md` file in `.claude/commands/` with:
23
+ 1. A `# /name` heading
24
+ 2. `## Steps` section with numbered procedures
25
+ 3. `## Trigger Conditions` section describing when to invoke
26
+ 4. Add an entry to this index
@@ -0,0 +1,24 @@
1
+ # /audit — Review Recent Work Quality
2
+
3
+ Spawn the auditor agent to review recent outputs for errors, inconsistencies, and improvement opportunities.
4
+
5
+ ## Steps
6
+
7
+ 1. **Determine scope**: Check what was done since the last audit (read daily note `## Done` section).
8
+
9
+ 2. **Spawn auditor agent** with the Task tool:
10
+ - Agent type: Use the auditor agent definition from `.claude/agents/auditor.md`
11
+ - Scope: Files modified since last audit
12
+ - Checks: Consistency, completeness, knowledge-base compliance
13
+
14
+ 3. **Process results**:
15
+ - **PASS**: Log and continue
16
+ - **FAIL**: Fix the issue, then re-audit the fix
17
+ - **NOMINATION**: Append to `.claude/knowledge-nominations.md`
18
+
19
+ 4. **Report**: Summary of findings with action items.
20
+
21
+ ## Trigger Conditions
22
+ - After completing a significant deliverable
23
+ - Before sharing work with others
24
+ - User explicitly requests quality review
@@ -0,0 +1,51 @@
1
+ # /clear — Safely Flush Context and Resume
2
+
3
+ Distill session state, write a handoff, then seamlessly resume work.
4
+ The user should not notice this happening — work just continues.
5
+
6
+ ## Steps
7
+
8
+ ### Step 1: Read state (parallel)
9
+ - `.claude/memory.md`
10
+ - Today's daily note: `Daily Notes/MMDDYY.md`
11
+
12
+ ### Step 2: Distill session
13
+
14
+ Extract from in-context memory using **restorable compression** — preserve retrieval paths:
15
+
16
+ 1. **Task** — one sentence
17
+ 2. **Done/remaining** — 2-4 bullets, conclusions not process
18
+ 3. **Decisions** — one line each, WHAT+WHY not HOW
19
+ 4. **Files touched** — full paths of every file read or modified (retrieval anchors)
20
+ 5. **Active references** — URLs, endpoints, resources consulted (pointers only)
21
+ 6. **Next action** — precise instruction including which file(s) to read first
22
+
23
+ ### Step 3: Write handoff to daily note
24
+
25
+ Append:
26
+ ```markdown
27
+ ## Session Handoff — HH:MM
28
+
29
+ **Task:** [one sentence]
30
+ **Done:** [bullets]
31
+ **Remaining:** [bullets]
32
+ **Decisions:** [bullets]
33
+ **Files:** [full paths]
34
+ **Refs:** [URLs, resources — pointers only]
35
+ **Next:** [precise action + which files to read first]
36
+ ```
37
+
38
+ ### Step 4: Update memory.md (only if changed)
39
+
40
+ ### Step 5: Auto-resume (restorable decompression)
41
+
42
+ 1. Re-read `.claude/memory.md` and `.claude/knowledge-base.md`
43
+ 2. Re-read the daily note handoff
44
+ 3. Re-read files specified in **Next** and critical files from **Files** list
45
+ 4. **Immediately execute the Next action** — pick up where you left off
46
+
47
+ ## Trigger Conditions
48
+ - After ~30 tool calls
49
+ - When output quality degrades
50
+ - Between unrelated tasks
51
+ - When "compacting conversation" appears
@@ -0,0 +1,32 @@
1
+ # /start — Begin a Work Session
2
+
3
+ Load context, create a daily note, and prepare to work.
4
+
5
+ ## Steps
6
+
7
+ 1. **Read state** (parallel):
8
+ - `.claude/memory.md`
9
+ - `.claude/knowledge-base.md`
10
+ - Today's daily note if it exists: `Daily Notes/MMDDYY.md`
11
+
12
+ 2. **Create daily note** (if none exists):
13
+ ```markdown
14
+ # {{DAY_NAME}} {{DATE}}
15
+
16
+ ## Plan
17
+ - [Tasks for today]
18
+
19
+ ## Notes
20
+ - [Captured during work]
21
+
22
+ ## Done
23
+ - [Completed items]
24
+ ```
25
+
26
+ 3. **Check for handoffs**: If a previous session handoff exists in the daily note, read it and resume from the **Next** action.
27
+
28
+ 4. **Report ready**: Brief summary of current state and what's next.
29
+
30
+ ## Trigger Conditions
31
+ - Start of any new work session
32
+ - User says "let's start", "begin", "good morning"
@@ -0,0 +1,27 @@
1
+ # /sync — Mid-Session Context Refresh
2
+
3
+ Re-read state, update memory, and ensure nothing has drifted.
4
+
5
+ ## Steps
6
+
7
+ 1. **Read current state** (parallel):
8
+ - `.claude/memory.md`
9
+ - Today's daily note: `Daily Notes/MMDDYY.md`
10
+ - `.claude/knowledge-base.md` (scan for new entries)
11
+
12
+ 2. **Update memory.md**:
13
+ - Add any new active work items to `## Now`
14
+ - Move completed items out of `## Now`
15
+ - Add new decisions to `## Recent Decisions`
16
+ - Prune anything stale (>7 days old with no activity)
17
+
18
+ 3. **Update daily note**:
19
+ - Add completed work to `## Done`
20
+ - Update `## Notes` with any captured observations
21
+
22
+ 4. **Check context health**: If tool call counter is high, recommend `/clear`.
23
+
24
+ ## Trigger Conditions
25
+ - Mid-session when switching between tasks
26
+ - After completing a significant piece of work
27
+ - When you feel context might be stale
@@ -0,0 +1,29 @@
1
+ # /wrap-up — End a Work Session
2
+
3
+ Close out the session cleanly. Persist everything important.
4
+
5
+ ## Steps
6
+
7
+ 1. **Read state** (parallel):
8
+ - `.claude/memory.md`
9
+ - Today's daily note
10
+
11
+ 2. **Update daily note**:
12
+ - Ensure `## Done` reflects all completed work
13
+ - Add any unfinished items to `## Notes` with status
14
+
15
+ 3. **Update memory.md**:
16
+ - Move completed items out of `## Now`
17
+ - Archive decisions older than 14 days
18
+ - Prune `## Open Threads` — remove anything resolved
19
+ - Clear `## Done` section if it's a Friday
20
+
21
+ 4. **Check for knowledge nominations**:
22
+ - If anything was learned this session, append to `.claude/knowledge-nominations.md`
23
+ - Format: `- [MMDDYY] [learning] | Evidence: [source]`
24
+
25
+ 5. **Report**: Brief summary of what was accomplished and what carries forward.
26
+
27
+ ## Trigger Conditions
28
+ - End of work session
29
+ - User says "done for today", "wrapping up", "closing out"
@@ -0,0 +1,31 @@
1
+ #!/bin/bash
2
+ # Audit Logger Hook — records every tool call for traceability
3
+ # Triggered: PostToolUse on all tools
4
+ # Purpose: Create an audit trail of what Claude did, when, and to what files
5
+
6
+ TOOL_NAME="$1"
7
+ TOOL_INPUT="$2"
8
+
9
+ LOG_DIR=".claude/logs"
10
+ LOG_FILE="$LOG_DIR/audit-$(date +%m%d%y).log"
11
+
12
+ mkdir -p "$LOG_DIR"
13
+
14
+ # Extract file path if present
15
+ FILE_PATH=$(echo "$TOOL_INPUT" | grep -oP '"file_path"\s*:\s*"([^"]*)"' | head -1 | sed 's/.*"file_path"\s*:\s*"//;s/"//')
16
+
17
+ # Extract command if Bash
18
+ COMMAND=$(echo "$TOOL_INPUT" | grep -oP '"command"\s*:\s*"([^"]*)"' | head -1 | sed 's/.*"command"\s*:\s*"//;s/"$//' | head -c 200)
19
+
20
+ TIMESTAMP=$(date +"%H:%M:%S")
21
+
22
+ # Log format: TIME | TOOL | TARGET
23
+ if [ -n "$FILE_PATH" ]; then
24
+ echo "$TIMESTAMP | $TOOL_NAME | $FILE_PATH" >> "$LOG_FILE"
25
+ elif [ -n "$COMMAND" ]; then
26
+ echo "$TIMESTAMP | Bash | $COMMAND" >> "$LOG_FILE"
27
+ else
28
+ echo "$TIMESTAMP | $TOOL_NAME" >> "$LOG_FILE"
29
+ fi
30
+
31
+ exit 0
@@ -0,0 +1,30 @@
1
+ #!/bin/bash
2
+ # Context Monitor Hook — tracks tool calls and warns about context health
3
+ # Triggered: Stop (after every Claude response)
4
+ # Purpose: Count tool calls per session and surface warnings before quality degrades
5
+
6
+ LOG_DIR=".claude/logs"
7
+ COUNTER_FILE="$LOG_DIR/.tool-call-count"
8
+ SESSION_FILE="$LOG_DIR/.current-session-id"
9
+
10
+ mkdir -p "$LOG_DIR"
11
+
12
+ # Initialize counter if missing
13
+ if [ ! -f "$COUNTER_FILE" ]; then
14
+ echo "0" > "$COUNTER_FILE"
15
+ fi
16
+
17
+ # Increment counter
18
+ COUNT=$(cat "$COUNTER_FILE")
19
+ COUNT=$((COUNT + 1))
20
+ echo "$COUNT" > "$COUNTER_FILE"
21
+
22
+ # Context health warnings (advisory — Claude reads these in tool output)
23
+ if [ "$COUNT" -ge 50 ]; then
24
+ echo "CONTEXT WARNING: $COUNT tool calls this session. Quality is likely degraded."
25
+ echo "RECOMMEND: Run /clear to flush context and resume fresh."
26
+ elif [ "$COUNT" -ge 30 ]; then
27
+ echo "CONTEXT ADVISORY: $COUNT tool calls this session. Consider running /clear soon."
28
+ fi
29
+
30
+ exit 0
@@ -0,0 +1,69 @@
1
+ #!/bin/bash
2
+ # Quality Gate Hook — blocks writes of incomplete content to critical files
3
+ # Triggered: PreToolUse on Write|Edit
4
+ # Purpose: Catch placeholders, TODOs, and incomplete content before it hits important files
5
+
6
+ TOOL_INPUT="$1"
7
+
8
+ # Extract the file path from tool input
9
+ FILE_PATH=$(echo "$TOOL_INPUT" | grep -oP '"file_path"\s*:\s*"([^"]*)"' | head -1 | sed 's/.*"file_path"\s*:\s*"//;s/"//')
10
+
11
+ if [ -z "$FILE_PATH" ]; then
12
+ exit 0 # Can't determine file — allow
13
+ fi
14
+
15
+ BASENAME=$(basename "$FILE_PATH")
16
+ DIRPATH=$(dirname "$FILE_PATH")
17
+
18
+ # Extract content being written
19
+ CONTENT=$(echo "$TOOL_INPUT" | grep -oP '"content"\s*:\s*"([^"]*)"' | head -1 | sed 's/.*"content"\s*:\s*"//;s/"$//')
20
+ NEW_STRING=$(echo "$TOOL_INPUT" | grep -oP '"new_string"\s*:\s*"([^"]*)"' | head -1 | sed 's/.*"new_string"\s*:\s*"//;s/"$//')
21
+ TEXT_TO_CHECK="${CONTENT}${NEW_STRING}"
22
+
23
+ # Placeholder patterns to block
24
+ PLACEHOLDER_PATTERN='(TBD|TODO|PLACEHOLDER|FIXME|XXX|\{\{[A-Z_]+\}\})'
25
+
26
+ # --- Critical file gates ---
27
+
28
+ # knowledge-base.md: Every entry needs [Source:] provenance, max 200 lines
29
+ if [ "$BASENAME" = "knowledge-base.md" ]; then
30
+ if echo "$TEXT_TO_CHECK" | grep -qiP "$PLACEHOLDER_PATTERN"; then
31
+ echo "BLOCK: knowledge-base.md cannot contain placeholders (TBD/TODO/PLACEHOLDER)"
32
+ echo "Every entry must be a confirmed fact with [Source:] provenance."
33
+ exit 2
34
+ fi
35
+ fi
36
+
37
+ # memory.md: Max 100 lines (Write only)
38
+ if [ "$BASENAME" = "memory.md" ] && echo "$TOOL_INPUT" | grep -q '"tool_name".*Write'; then
39
+ if [ -n "$CONTENT" ]; then
40
+ LINE_COUNT=$(echo "$CONTENT" | wc -l)
41
+ if [ "$LINE_COUNT" -gt 100 ]; then
42
+ echo "BLOCK: memory.md exceeds 100-line limit (got $LINE_COUNT lines)."
43
+ echo "Prune stale items before writing."
44
+ exit 2
45
+ fi
46
+ fi
47
+ fi
48
+
49
+ # settings.json: Must be valid JSON
50
+ if [ "$BASENAME" = "settings.json" ] && echo "$DIRPATH" | grep -q "\.claude"; then
51
+ if [ -n "$CONTENT" ]; then
52
+ if ! echo "$CONTENT" | python3 -c "import sys,json; json.load(sys.stdin)" 2>/dev/null; then
53
+ echo "BLOCK: settings.json must be valid JSON. Broken JSON breaks all hooks."
54
+ exit 2
55
+ fi
56
+ fi
57
+ fi
58
+
59
+ # Agent definitions: No TBD/TODO — instructions must be definitive
60
+ if echo "$DIRPATH" | grep -q "\.claude/agents"; then
61
+ if echo "$TEXT_TO_CHECK" | grep -qiP "$PLACEHOLDER_PATTERN"; then
62
+ echo "BLOCK: Agent definitions cannot contain placeholders."
63
+ echo "Instructions must be definitive — agents execute what they read."
64
+ exit 2
65
+ fi
66
+ fi
67
+
68
+ # All checks passed
69
+ exit 0
@@ -0,0 +1,28 @@
1
+ # Knowledge Base
2
+
3
+ System-wide institutional memory. Every agent and session reads this at startup.
4
+ Only the auditor writes here after reviewing and confirming learnings.
5
+
6
+ Keep under 200 lines. Aggressively curate — only facts that prevent future errors.
7
+
8
+ **Provenance hierarchy** (when facts conflict, higher rank wins):
9
+ 1. **User override** — You explicitly corrected an agent (highest trust)
10
+ 2. **Empirical verification** — Confirmed through testing or data
11
+ 3. **Agent inference** — Concluded during analysis (lowest trust)
12
+
13
+ Every entry includes its source. Format: `[Source: type MMDDYY]`
14
+
15
+ ---
16
+
17
+ ## Hard Rules Learned
18
+
19
+ - [Rules discovered through experience go here. Example:]
20
+ - [MMDDYY] Never run `git push --force` to main without explicit confirmation. [Source: User override MMDDYY]
21
+
22
+ ## Project-Specific Knowledge
23
+
24
+ - [Facts about your codebase, APIs, or deployment that Claude can't infer from code]
25
+
26
+ ## External Service Notes
27
+
28
+ - [API quirks, rate limits, authentication gotchas]
@@ -0,0 +1,12 @@
1
+ # Knowledge Nominations
2
+
3
+ Candidate learnings awaiting auditor review. Any agent can append here.
4
+ The auditor reviews nominations each cycle and promotes valid ones to knowledge-base.
5
+
6
+ Format: `- [MMDDYY] [source]: [learning] | Evidence: [what was observed]`
7
+
8
+ ---
9
+
10
+ ## Pending
11
+
12
+ - [Nominations appear here as they're discovered]
File without changes
@@ -0,0 +1,21 @@
1
+ # Memory
2
+
3
+ Living session state. Read at the start of every session. Updated during /sync and /wrap-up.
4
+ Keep under 100 lines — prune aggressively.
5
+
6
+ ## Now
7
+
8
+ - [Your current active work goes here]
9
+
10
+ ## Open Threads
11
+
12
+ - [Unresolved items that need attention]
13
+ - [Blocked tasks with what's blocking them]
14
+
15
+ ## Parked
16
+
17
+ - [Items intentionally deferred — not forgotten, just not now]
18
+
19
+ ## Recent Decisions
20
+
21
+ - [MMDDYY] [Decision made and why — one line each]
@@ -0,0 +1,68 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/claude-code-settings.json",
3
+ "permissions": {
4
+ "allow": [
5
+ "Read",
6
+ "Glob",
7
+ "Grep",
8
+ "WebSearch",
9
+ "WebFetch",
10
+ "Bash(git status)",
11
+ "Bash(git diff*)",
12
+ "Bash(git log*)",
13
+ "Bash(git branch*)",
14
+ "Bash(npm test*)",
15
+ "Bash(npm run lint*)",
16
+ "Bash(npm run build*)",
17
+ "Bash(npx tsc*)",
18
+ "Bash(date*)",
19
+ "Bash(ls *)",
20
+ "Bash(cat package.json)",
21
+ "Bash(wc *)"
22
+ ],
23
+ "deny": [
24
+ "Bash(rm -rf *)",
25
+ "Bash(git push --force*)",
26
+ "Bash(git reset --hard*)",
27
+ "Bash(git checkout .)",
28
+ "Bash(git clean -f*)",
29
+ "Bash(curl * | bash)",
30
+ "Bash(curl * | sh)"
31
+ ]
32
+ },
33
+ "hooks": {
34
+ "PreToolUse": [
35
+ {
36
+ "matcher": "Write|Edit",
37
+ "hooks": [
38
+ {
39
+ "type": "command",
40
+ "command": "bash .claude/hooks/quality-gate.sh \"$TOOL_INPUT\""
41
+ }
42
+ ]
43
+ }
44
+ ],
45
+ "PostToolUse": [
46
+ {
47
+ "matcher": "*",
48
+ "hooks": [
49
+ {
50
+ "type": "command",
51
+ "command": "bash .claude/hooks/audit-logger.sh \"$TOOL_NAME\" \"$TOOL_INPUT\""
52
+ }
53
+ ]
54
+ }
55
+ ],
56
+ "Stop": [
57
+ {
58
+ "matcher": "",
59
+ "hooks": [
60
+ {
61
+ "type": "command",
62
+ "command": "bash .claude/hooks/context-monitor.sh"
63
+ }
64
+ ]
65
+ }
66
+ ]
67
+ }
68
+ }
@@ -0,0 +1,34 @@
1
+ # Content Skill
2
+
3
+ Procedures for creating, reviewing, and publishing content.
4
+
5
+ ## When to Load
6
+
7
+ - Writing documentation, READMEs, or technical guides
8
+ - Creating marketing copy or announcements
9
+ - Reviewing content for accuracy and tone
10
+
11
+ ## Content Creation Procedure
12
+
13
+ 1. **Define audience**: Who is this for? What do they already know?
14
+ 2. **Define purpose**: What should the reader DO after reading this?
15
+ 3. **Outline**: Structure the content before writing
16
+ 4. **Draft**: Write the content following project voice/tone
17
+ 5. **Review**: Check for accuracy, clarity, completeness
18
+ 6. **Polish**: Grammar, formatting, consistency
19
+ 7. **Deliver**: Place in the correct location with proper metadata
20
+
21
+ ## Quality Checklist
22
+
23
+ - [ ] Clear and specific headline/title
24
+ - [ ] Purpose stated in the first paragraph
25
+ - [ ] Logical flow from introduction to conclusion
26
+ - [ ] Technical accuracy verified against source code/docs
27
+ - [ ] No jargon without explanation (match audience level)
28
+ - [ ] Actionable — reader knows what to do next
29
+ - [ ] Formatted for scanability (headers, bullets, code blocks)
30
+ - [ ] Links verified and working
31
+
32
+ ## Tone Guidelines
33
+
34
+ {{TONE_DESCRIPTION}}
@@ -0,0 +1,34 @@
1
+ # Data Export Skill
2
+
3
+ Procedures for extracting, transforming, and exporting data.
4
+
5
+ ## When to Load
6
+
7
+ - Exporting data from APIs or databases
8
+ - Generating reports or summaries
9
+ - Moving data between systems
10
+
11
+ ## General Procedure
12
+
13
+ 1. **Define scope**: What data, what time range, what format?
14
+ 2. **Authenticate**: Ensure API keys/tokens are available
15
+ 3. **Extract**: Pull data from source (API calls, DB queries, file reads)
16
+ 4. **Transform**: Clean, filter, aggregate as needed
17
+ 5. **Validate**: Spot-check numbers — do totals make sense?
18
+ 6. **Export**: Write to target format (CSV, JSON, spreadsheet, etc.)
19
+ 7. **Verify**: Confirm the output matches expectations
20
+
21
+ ## Data Validation Rules
22
+
23
+ - Row counts should match between source and export
24
+ - Totals should sum correctly (watch for rounding)
25
+ - Date ranges should match the requested scope
26
+ - No duplicate rows unless expected
27
+ - No null/empty values in required fields
28
+
29
+ ## Common Gotchas
30
+
31
+ - API pagination: Always check if there are more pages
32
+ - Timezone differences: Normalize all timestamps
33
+ - Rate limits: Add delays between API calls if needed
34
+ - Character encoding: Ensure UTF-8 throughout the pipeline