mirror of
https://github.com/complexcaresolutions/cms.c2sgmbh.git
synced 2026-03-17 22:04:10 +00:00
- Add .claude/ configuration (agents, commands, hooks, get-shit-done workflows) - Add prompts/ directory with development planning documents - Add scripts/setup-tenants/ with tenant configuration - Add docs/screenshots/ - Remove obsolete phase2.2-corrections-report.md - Update pnpm-lock.yaml - Update detect-secrets.sh to ignore setup.sh (env var usage, not secrets) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
182 lines
4.2 KiB
Markdown
182 lines
4.2 KiB
Markdown
---
|
|
name: gsd:add-todo
|
|
description: Capture idea or task as todo from current conversation context
|
|
argument-hint: [optional description]
|
|
allowed-tools:
|
|
- Read
|
|
- Write
|
|
- Bash
|
|
- Glob
|
|
---
|
|
|
|
<objective>
|
|
Capture an idea, task, or issue that surfaces during a GSD session as a structured todo for later work.
|
|
|
|
Enables "thought → capture → continue" flow without losing context or derailing current work.
|
|
</objective>
|
|
|
|
<context>
|
|
@.planning/STATE.md
|
|
</context>
|
|
|
|
<process>
|
|
|
|
<step name="ensure_directory">
|
|
```bash
|
|
mkdir -p .planning/todos/pending .planning/todos/done
|
|
```
|
|
</step>
|
|
|
|
<step name="check_existing_areas">
|
|
```bash
|
|
ls .planning/todos/pending/*.md 2>/dev/null | xargs -I {} grep "^area:" {} 2>/dev/null | cut -d' ' -f2 | sort -u
|
|
```
|
|
|
|
Note existing areas for consistency in infer_area step.
|
|
</step>
|
|
|
|
<step name="extract_content">
|
|
**With arguments:** Use as the title/focus.
|
|
- `/gsd:add-todo Add auth token refresh` → title = "Add auth token refresh"
|
|
|
|
**Without arguments:** Analyze recent conversation to extract:
|
|
- The specific problem, idea, or task discussed
|
|
- Relevant file paths mentioned
|
|
- Technical details (error messages, line numbers, constraints)
|
|
|
|
Formulate:
|
|
- `title`: 3-10 word descriptive title (action verb preferred)
|
|
- `problem`: What's wrong or why this is needed
|
|
- `solution`: Approach hints or "TBD" if just an idea
|
|
- `files`: Relevant paths with line numbers from conversation
|
|
</step>
|
|
|
|
<step name="infer_area">
|
|
Infer area from file paths:
|
|
|
|
| Path pattern | Area |
|
|
|--------------|------|
|
|
| `src/api/*`, `api/*` | `api` |
|
|
| `src/components/*`, `src/ui/*` | `ui` |
|
|
| `src/auth/*`, `auth/*` | `auth` |
|
|
| `src/db/*`, `database/*` | `database` |
|
|
| `tests/*`, `__tests__/*` | `testing` |
|
|
| `docs/*` | `docs` |
|
|
| `.planning/*` | `planning` |
|
|
| `scripts/*`, `bin/*` | `tooling` |
|
|
| No files or unclear | `general` |
|
|
|
|
Use existing area from step 2 if similar match exists.
|
|
</step>
|
|
|
|
<step name="check_duplicates">
|
|
```bash
|
|
grep -l -i "[key words from title]" .planning/todos/pending/*.md 2>/dev/null
|
|
```
|
|
|
|
If potential duplicate found:
|
|
1. Read the existing todo
|
|
2. Compare scope
|
|
|
|
If overlapping, use AskUserQuestion:
|
|
- header: "Duplicate?"
|
|
- question: "Similar todo exists: [title]. What would you like to do?"
|
|
- options:
|
|
- "Skip" — keep existing todo
|
|
- "Replace" — update existing with new context
|
|
- "Add anyway" — create as separate todo
|
|
</step>
|
|
|
|
<step name="create_file">
|
|
```bash
|
|
timestamp=$(date "+%Y-%m-%dT%H:%M")
|
|
date_prefix=$(date "+%Y-%m-%d")
|
|
```
|
|
|
|
Generate slug from title (lowercase, hyphens, no special chars).
|
|
|
|
Write to `.planning/todos/pending/${date_prefix}-${slug}.md`:
|
|
|
|
```markdown
|
|
---
|
|
created: [timestamp]
|
|
title: [title]
|
|
area: [area]
|
|
files:
|
|
- [file:lines]
|
|
---
|
|
|
|
## Problem
|
|
|
|
[problem description - enough context for future Claude to understand weeks later]
|
|
|
|
## Solution
|
|
|
|
[approach hints or "TBD"]
|
|
```
|
|
</step>
|
|
|
|
<step name="update_state">
|
|
If `.planning/STATE.md` exists:
|
|
|
|
1. Count todos: `ls .planning/todos/pending/*.md 2>/dev/null | wc -l`
|
|
2. Update "### Pending Todos" under "## Accumulated Context"
|
|
</step>
|
|
|
|
<step name="git_commit">
|
|
Commit the todo and any updated state:
|
|
|
|
```bash
|
|
git add .planning/todos/pending/[filename]
|
|
[ -f .planning/STATE.md ] && git add .planning/STATE.md
|
|
git commit -m "$(cat <<'EOF'
|
|
docs: capture todo - [title]
|
|
|
|
Area: [area]
|
|
EOF
|
|
)"
|
|
```
|
|
|
|
Confirm: "Committed: docs: capture todo - [title]"
|
|
</step>
|
|
|
|
<step name="confirm">
|
|
```
|
|
Todo saved: .planning/todos/pending/[filename]
|
|
|
|
[title]
|
|
Area: [area]
|
|
Files: [count] referenced
|
|
|
|
---
|
|
|
|
Would you like to:
|
|
|
|
1. Continue with current work
|
|
2. Add another todo
|
|
3. View all todos (/gsd:check-todos)
|
|
```
|
|
</step>
|
|
|
|
</process>
|
|
|
|
<output>
|
|
- `.planning/todos/pending/[date]-[slug].md`
|
|
- Updated `.planning/STATE.md` (if exists)
|
|
</output>
|
|
|
|
<anti_patterns>
|
|
- Don't create todos for work in current plan (that's deviation rule territory)
|
|
- Don't create elaborate solution sections — captures ideas, not plans
|
|
- Don't block on missing information — "TBD" is fine
|
|
</anti_patterns>
|
|
|
|
<success_criteria>
|
|
- [ ] Directory structure exists
|
|
- [ ] Todo file created with valid frontmatter
|
|
- [ ] Problem section has enough context for future Claude
|
|
- [ ] No duplicates (checked and resolved)
|
|
- [ ] Area consistent with existing todos
|
|
- [ ] STATE.md updated if exists
|
|
- [ ] Todo and state committed to git
|
|
</success_criteria>
|