Commit Graph

6 Commits

Author SHA1 Message Date
Dominik Seemann bb81a48727 Create done.md 2026-05-07 10:14:46 +02:00
Dominik Seemann 8144290fc6 feat(claude): add CC-SDD planning workflow and /plan command (Step 4)
Adopt CC-SDD (Kiro) as the project's spec-driven planning tool, with
plans persisted in .kiro/specs/ and a checkpoint after every task
(strictest cadence — no code without an approved plan).

CC-SDD install (via npx cc-sdd@latest --claude --lang en):
- .kiro/settings/rules/: EARS format, gap-analysis, design and
  requirements review gates, design discovery, tasks generation,
  steering principles, parallel-task analysis.
- .kiro/settings/templates/: specs (init, requirements, design, tasks,
  research) and steering (product/tech/structure plus optional
  api-standards/auth/db/deployment/error-handling/security/testing).
- .claude/commands/kiro/: 11 Kiro slash commands — spec-init,
  spec-requirements, spec-design, spec-tasks, spec-impl, spec-status,
  steering, steering-custom, validate-gap, validate-design,
  validate-impl.

Local additions:
- .claude/commands/plan.md: /plan [task] wrapper that picks up the task
  from $ARGUMENTS or a single .ticket/<n>.md snapshot, walks the Kiro
  flow (steering -> spec-init -> spec-requirements -> validate-gap ->
  spec-design -> validate-design -> spec-tasks) and stops for human
  approval after each artefact. Refuses "just code it" requests.
- .claude/hooks/session_start.sh: extend to print active tickets
  (.ticket/*.md) and open specs (.kiro/specs/*/) with phase from
  spec.json, alongside the existing branch/state line.

Documentation: .claude/onboarding/step4_workflow/01_tool_decision.md
2026-05-06 18:01:41 +02:00
Dominik Seemann 52f78d9fe3 feat(claude): add /ticket and /ticket-list commands for GitHub Issues (Step 3)
Adapt the Notion onboarding prompt — originally Jira/MCP-oriented — to
this project's actual issue tracker (GitHub at
salestech-group/MiroFish) using the gh CLI.

Slash commands (.claude/commands/):
- /ticket <number>: fetch a GitHub issue via gh, self-assign, try to
  add an in-progress label (skips silently if the label doesn't exist),
  and snapshot the issue (frontmatter + body) to .ticket/<n>.md so
  later planning steps can read the description without refetching.
- /ticket-list: interactive overview of issues; asks for filters
  (open/closed, status, assignee, milestone, labels) and runs a single
  gh issue list with the answers, rendering a compact markdown table.

Workspace:
- .ticket/repo.md declares the target repo (GitHub equivalent of the
  Jira "board.md" referenced in the prompt).
- .gitignore: ignore .ticket/* except repo.md and .gitkeep so cached
  ticket markdowns stay local.

Settings:
- Allow-list gh issue view/list/edit/comment, gh repo view,
  gh pr view/list, gh auth status to avoid permission prompts.

Documentation: .claude/onboarding/step3_planning/01_ticket_sync.md
2026-05-06 17:55:42 +02:00
Dominik Seemann 76f719e760 chore(claude): expand permissions and add session/env-guard hooks (Step 2)
Permissions:
- Allow npm run/test/install, uv run/sync, docker (compose), and the
  common read-only/staging git commands so routine work doesn't trigger
  permission prompts.
- Deny Read/Write/Edit on uploads/ and .codegraph/ (auto-generated and
  user-data paths) in addition to the existing .env*/secrets/ blocks.

Hooks:
- SessionStart: print branch, ahead/behind vs upstream, and working-tree
  state at session start so context is visible immediately.
- PreToolUse (Read|Write|Edit|Bash|NotebookEdit): defence-in-depth
  guard that intercepts attempts to access .env / secrets/ paths (and
  bash commands targeting them) with a friendly, logged refusal on top
  of the permissions.deny rules.

PostToolUse formatter is intentionally skipped — the project has no
configured formatter (per the Step 1 conventions decision).
The Stop hook (quality gate) will be configured in Step 6.

Documentation: .claude/onboarding/step2_setup/01_settings_analysis.md
2026-05-06 17:44:16 +02:00
Dominik Seemann 9a77b5921d docs: update CLAUDE.md and resolve README merge conflicts (Step 1)
Bring repo docs in line with the Graphiti+Neo4j migration and prepare
the codebase for Spec-Driven Development.

CLAUDE.md:
- Promote Neo4j + Graphiti to primary memory/graph layer; mark Zep
  Cloud as deprecated / compat-only.
- Document the full env-var surface: NEO4J_*, EMBEDDING_MODEL, optional
  LLM_BOOST_* block.
- Codify must-respect implementation rules (Task model for long ops,
  reasoning-output stripping, simulation IPC, subprocess cleanup,
  startup recovery, per-project group_id isolation, chat prefix
  injection).
- Note i18n (vue-i18n + /locales/) and Docker prerequisite for dev.

README.md / README-EN.md / README-ZH.md:
- Resolve unresolved merge-conflict markers in README.md left over from
  the feat/graphiti-neo4j-migration merge (file was broken Markdown).
- Lead with Docker as the recommended deployment path; keep source
  install as a documented alternative.
- Replace Zep env vars with NEO4J_URI / NEO4J_USER / NEO4J_PASSWORD /
  EMBEDDING_MODEL across all three READMEs.
- Add optional LLM_BOOST_* block with omit-if-unused note.
- Fix language-switcher links between the three READMEs.

.claude/onboarding/step1_codebase/:
- Document repo analysis, CLAUDE.md conventions decisions, and README
  resolution choices.
2026-05-06 17:38:44 +02:00
Dominik Seemann 44eb4588bf chore(claude): set up workspace rules and code conventions (Step 0)
Bootstrap Claude Code Spec-Driven Development:
- .claude/settings.json: allow safe bash (cd, ls, find, cat, mkdir),
  deny .env/secrets and destructive git/rm commands
- .claude/rules/: markdown, file-paths, commits, error-handling,
  dev-guidelines (mirrors Salestech Products Development Guidelines)
- .claude/onboarding/step0_preparation/01_code_conventions.md:
  document the configuration applied
- .gitignore: track project-level .claude/ config; keep
  settings.local.json and .codegraph/ ignored
2026-05-06 17:22:09 +02:00