@dv.nghiem/flowdeck 0.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/LICENSE +21 -0
- package/README.md +136 -0
- package/bin/flowdeck.js +108 -0
- package/dist/agents/architect.d.ts +3 -0
- package/dist/agents/architect.d.ts.map +1 -0
- package/dist/agents/code-explorer.d.ts +3 -0
- package/dist/agents/code-explorer.d.ts.map +1 -0
- package/dist/agents/coder.d.ts +3 -0
- package/dist/agents/coder.d.ts.map +1 -0
- package/dist/agents/debug.d.ts +4 -0
- package/dist/agents/debug.d.ts.map +1 -0
- package/dist/agents/doc-updater.d.ts +3 -0
- package/dist/agents/doc-updater.d.ts.map +1 -0
- package/dist/agents/flowdeck.d.ts +5 -0
- package/dist/agents/flowdeck.d.ts.map +1 -0
- package/dist/agents/index.d.ts +38 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/mapper.d.ts +3 -0
- package/dist/agents/mapper.d.ts.map +1 -0
- package/dist/agents/orchestrator.d.ts +10 -0
- package/dist/agents/orchestrator.d.ts.map +1 -0
- package/dist/agents/performance.d.ts +4 -0
- package/dist/agents/performance.d.ts.map +1 -0
- package/dist/agents/planner.d.ts +3 -0
- package/dist/agents/planner.d.ts.map +1 -0
- package/dist/agents/policy-enforcer.d.ts +3 -0
- package/dist/agents/policy-enforcer.d.ts.map +1 -0
- package/dist/agents/researcher.d.ts +3 -0
- package/dist/agents/researcher.d.ts.map +1 -0
- package/dist/agents/reviewer.d.ts +3 -0
- package/dist/agents/reviewer.d.ts.map +1 -0
- package/dist/agents/risk-analyst.d.ts +3 -0
- package/dist/agents/risk-analyst.d.ts.map +1 -0
- package/dist/agents/security-auditor.d.ts +3 -0
- package/dist/agents/security-auditor.d.ts.map +1 -0
- package/dist/agents/specialist.d.ts +5 -0
- package/dist/agents/specialist.d.ts.map +1 -0
- package/dist/agents/tester.d.ts +3 -0
- package/dist/agents/tester.d.ts.map +1 -0
- package/dist/agents/types.d.ts +20 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/writer.d.ts +3 -0
- package/dist/agents/writer.d.ts.map +1 -0
- package/dist/commands/analysis/analysis.test.d.ts +2 -0
- package/dist/commands/analysis/analysis.test.d.ts.map +1 -0
- package/dist/commands/analysis/analyze-change.d.ts +148 -0
- package/dist/commands/analysis/analyze-change.d.ts.map +1 -0
- package/dist/commands/analysis/evaluate-risk.d.ts +77 -0
- package/dist/commands/analysis/evaluate-risk.d.ts.map +1 -0
- package/dist/commands/analysis/guarded-edit.d.ts +72 -0
- package/dist/commands/analysis/guarded-edit.d.ts.map +1 -0
- package/dist/commands/execution/deploy-check.d.ts +91 -0
- package/dist/commands/execution/deploy-check.d.ts.map +1 -0
- package/dist/commands/execution/fix-bug.d.ts +187 -0
- package/dist/commands/execution/fix-bug.d.ts.map +1 -0
- package/dist/commands/execution/new-feature.d.ts +171 -0
- package/dist/commands/execution/new-feature.d.ts.map +1 -0
- package/dist/commands/execution/review-code.d.ts +130 -0
- package/dist/commands/execution/review-code.d.ts.map +1 -0
- package/dist/commands/execution/write-docs.d.ts +94 -0
- package/dist/commands/execution/write-docs.d.ts.map +1 -0
- package/dist/commands/governance/approve.d.ts +80 -0
- package/dist/commands/governance/approve.d.ts.map +1 -0
- package/dist/commands/intelligence/blast-radius.d.ts +67 -0
- package/dist/commands/intelligence/blast-radius.d.ts.map +1 -0
- package/dist/commands/intelligence/impact-radar.d.ts +71 -0
- package/dist/commands/intelligence/impact-radar.d.ts.map +1 -0
- package/dist/commands/intelligence/intelligence.test.d.ts +2 -0
- package/dist/commands/intelligence/intelligence.test.d.ts.map +1 -0
- package/dist/commands/intelligence/regression-predict.d.ts +75 -0
- package/dist/commands/intelligence/regression-predict.d.ts.map +1 -0
- package/dist/commands/intelligence/review-route.d.ts +65 -0
- package/dist/commands/intelligence/review-route.d.ts.map +1 -0
- package/dist/commands/intelligence/test-gap.d.ts +73 -0
- package/dist/commands/intelligence/test-gap.d.ts.map +1 -0
- package/dist/commands/intelligence/translate-intent.d.ts +87 -0
- package/dist/commands/intelligence/translate-intent.d.ts.map +1 -0
- package/dist/commands/intelligence/volatility-map-cmd.d.ts +68 -0
- package/dist/commands/intelligence/volatility-map-cmd.d.ts.map +1 -0
- package/dist/commands/planning/ask.d.ts +62 -0
- package/dist/commands/planning/ask.d.ts.map +1 -0
- package/dist/commands/planning/ask.test.d.ts +2 -0
- package/dist/commands/planning/ask.test.d.ts.map +1 -0
- package/dist/commands/planning/dashboard.d.ts +30 -0
- package/dist/commands/planning/dashboard.d.ts.map +1 -0
- package/dist/commands/planning/discuss.d.ts +39 -0
- package/dist/commands/planning/discuss.d.ts.map +1 -0
- package/dist/commands/planning/plan.d.ts +67 -0
- package/dist/commands/planning/plan.d.ts.map +1 -0
- package/dist/commands/planning/roadmap.d.ts +105 -0
- package/dist/commands/planning/roadmap.d.ts.map +1 -0
- package/dist/commands/setup/doctor.d.ts +10 -0
- package/dist/commands/setup/doctor.d.ts.map +1 -0
- package/dist/commands/setup/map-codebase.d.ts +62 -0
- package/dist/commands/setup/map-codebase.d.ts.map +1 -0
- package/dist/commands/setup/new-project.d.ts +19 -0
- package/dist/commands/setup/new-project.d.ts.map +1 -0
- package/dist/commands/setup/settings.d.ts +57 -0
- package/dist/commands/setup/settings.d.ts.map +1 -0
- package/dist/commands/state/checkpoint.d.ts +27 -0
- package/dist/commands/state/checkpoint.d.ts.map +1 -0
- package/dist/commands/state/multi-repo.d.ts +63 -0
- package/dist/commands/state/multi-repo.d.ts.map +1 -0
- package/dist/commands/state/progress.d.ts +57 -0
- package/dist/commands/state/progress.d.ts.map +1 -0
- package/dist/commands/state/resume.d.ts +11 -0
- package/dist/commands/state/resume.d.ts.map +1 -0
- package/dist/commands/state/workspace-commands.d.ts +207 -0
- package/dist/commands/state/workspace-commands.d.ts.map +1 -0
- package/dist/dashboard/lib/port-finder.d.ts +10 -0
- package/dist/dashboard/lib/port-finder.d.ts.map +1 -0
- package/dist/dashboard/lib/port-finder.test.d.ts +2 -0
- package/dist/dashboard/lib/port-finder.test.d.ts.map +1 -0
- package/dist/dashboard/lib/state-reader.d.ts +3 -0
- package/dist/dashboard/lib/state-reader.d.ts.map +1 -0
- package/dist/dashboard/server.d.ts +2 -0
- package/dist/dashboard/server.d.ts.map +1 -0
- package/dist/dashboard/server.mjs +13649 -0
- package/dist/dashboard/types.d.ts +72 -0
- package/dist/dashboard/types.d.ts.map +1 -0
- package/dist/dashboard/views/index.ejs +391 -0
- package/dist/dashboard/views/partials/blockers.ejs +10 -0
- package/dist/dashboard/views/partials/header.ejs +20 -0
- package/dist/dashboard/views/partials/phase-timeline.ejs +40 -0
- package/dist/dashboard/views/partials/progress.ejs +12 -0
- package/dist/hooks/approval-hook.d.ts +13 -0
- package/dist/hooks/approval-hook.d.ts.map +1 -0
- package/dist/hooks/compaction-hook.d.ts +23 -0
- package/dist/hooks/compaction-hook.d.ts.map +1 -0
- package/dist/hooks/context-window-monitor.d.ts +21 -0
- package/dist/hooks/context-window-monitor.d.ts.map +1 -0
- package/dist/hooks/decision-trace-hook.d.ts +13 -0
- package/dist/hooks/decision-trace-hook.d.ts.map +1 -0
- package/dist/hooks/file-tracker.d.ts +29 -0
- package/dist/hooks/file-tracker.d.ts.map +1 -0
- package/dist/hooks/guard-rails.d.ts +33 -0
- package/dist/hooks/guard-rails.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +5 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/notifications.d.ts +21 -0
- package/dist/hooks/notifications.d.ts.map +1 -0
- package/dist/hooks/patch-trust.d.ts +27 -0
- package/dist/hooks/patch-trust.d.ts.map +1 -0
- package/dist/hooks/patch-trust.test.d.ts +2 -0
- package/dist/hooks/patch-trust.test.d.ts.map +1 -0
- package/dist/hooks/session-events.d.ts +8 -0
- package/dist/hooks/session-events.d.ts.map +1 -0
- package/dist/hooks/session-idle-hook.d.ts +21 -0
- package/dist/hooks/session-idle-hook.d.ts.map +1 -0
- package/dist/hooks/session-start.d.ts +10 -0
- package/dist/hooks/session-start.d.ts.map +1 -0
- package/dist/hooks/shell-env-hook.d.ts +21 -0
- package/dist/hooks/shell-env-hook.d.ts.map +1 -0
- package/dist/hooks/telemetry-hook.d.ts +25 -0
- package/dist/hooks/telemetry-hook.d.ts.map +1 -0
- package/dist/hooks/todo-hook.d.ts +25 -0
- package/dist/hooks/todo-hook.d.ts.map +1 -0
- package/dist/hooks/tool-guard.d.ts +41 -0
- package/dist/hooks/tool-guard.d.ts.map +1 -0
- package/dist/hooks/tool-guard.test.d.ts +2 -0
- package/dist/hooks/tool-guard.test.d.ts.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6639 -0
- package/dist/lib/confirmation.d.ts +20 -0
- package/dist/lib/confirmation.d.ts.map +1 -0
- package/dist/lib/impact-radar.d.ts +35 -0
- package/dist/lib/impact-radar.d.ts.map +1 -0
- package/dist/lib/signatures.d.ts +12 -0
- package/dist/lib/signatures.d.ts.map +1 -0
- package/dist/lib/timestamps.d.ts +23 -0
- package/dist/lib/timestamps.d.ts.map +1 -0
- package/dist/mcp/index.d.ts +20 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/services/agent-performance.d.ts +29 -0
- package/dist/services/agent-performance.d.ts.map +1 -0
- package/dist/services/approval-manager.d.ts +30 -0
- package/dist/services/approval-manager.d.ts.map +1 -0
- package/dist/services/index.d.ts +7 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/model-router.d.ts +35 -0
- package/dist/services/model-router.d.ts.map +1 -0
- package/dist/services/policy-compiler.d.ts +27 -0
- package/dist/services/policy-compiler.d.ts.map +1 -0
- package/dist/services/run-trace.d.ts +34 -0
- package/dist/services/run-trace.d.ts.map +1 -0
- package/dist/services/services.test.d.ts +2 -0
- package/dist/services/services.test.d.ts.map +1 -0
- package/dist/services/telemetry.d.ts +34 -0
- package/dist/services/telemetry.d.ts.map +1 -0
- package/dist/tools/agent-dispatch.test.d.ts +2 -0
- package/dist/tools/agent-dispatch.test.d.ts.map +1 -0
- package/dist/tools/codebase-state.d.ts +4 -0
- package/dist/tools/codebase-state.d.ts.map +1 -0
- package/dist/tools/context-generator.d.ts +3 -0
- package/dist/tools/context-generator.d.ts.map +1 -0
- package/dist/tools/council.d.ts +4 -0
- package/dist/tools/council.d.ts.map +1 -0
- package/dist/tools/decision-trace.d.ts +16 -0
- package/dist/tools/decision-trace.d.ts.map +1 -0
- package/dist/tools/delegate.d.ts +4 -0
- package/dist/tools/delegate.d.ts.map +1 -0
- package/dist/tools/failure-replay.d.ts +19 -0
- package/dist/tools/failure-replay.d.ts.map +1 -0
- package/dist/tools/failure-replay.test.d.ts +2 -0
- package/dist/tools/failure-replay.test.d.ts.map +1 -0
- package/dist/tools/hash-edit.d.ts +3 -0
- package/dist/tools/hash-edit.d.ts.map +1 -0
- package/dist/tools/planning-state-lib.d.ts +65 -0
- package/dist/tools/planning-state-lib.d.ts.map +1 -0
- package/dist/tools/planning-state.d.ts +3 -0
- package/dist/tools/planning-state.d.ts.map +1 -0
- package/dist/tools/policy-engine.d.ts +19 -0
- package/dist/tools/policy-engine.d.ts.map +1 -0
- package/dist/tools/repo-memory.d.ts +20 -0
- package/dist/tools/repo-memory.d.ts.map +1 -0
- package/dist/tools/repo-memory.test.d.ts +2 -0
- package/dist/tools/repo-memory.test.d.ts.map +1 -0
- package/dist/tools/run-parallel.d.ts +4 -0
- package/dist/tools/run-parallel.d.ts.map +1 -0
- package/dist/tools/run-pipeline.d.ts +4 -0
- package/dist/tools/run-pipeline.d.ts.map +1 -0
- package/dist/tools/volatility-map.d.ts +18 -0
- package/dist/tools/volatility-map.d.ts.map +1 -0
- package/dist/tools/volatility-map.test.d.ts +2 -0
- package/dist/tools/volatility-map.test.d.ts.map +1 -0
- package/dist/tools/workspace-state.d.ts +3 -0
- package/dist/tools/workspace-state.d.ts.map +1 -0
- package/docs/USER_GUIDE.md +20 -0
- package/docs/agents.md +562 -0
- package/docs/best-practices.md +47 -0
- package/docs/command-migration.md +175 -0
- package/docs/commands/fd-analyze-change.md +107 -0
- package/docs/commands/fd-ask.md +51 -0
- package/docs/commands/fd-checkpoint.md +10 -0
- package/docs/commands/fd-dashboard.md +11 -0
- package/docs/commands/fd-deploy-check.md +11 -0
- package/docs/commands/fd-discuss.md +28 -0
- package/docs/commands/fd-evaluate-risk.md +134 -0
- package/docs/commands/fd-fix-bug.md +24 -0
- package/docs/commands/fd-guarded-edit.md +105 -0
- package/docs/commands/fd-map-codebase.md +27 -0
- package/docs/commands/fd-multi-repo.md +63 -0
- package/docs/commands/fd-new-feature.md +25 -0
- package/docs/commands/fd-new-project.md +24 -0
- package/docs/commands/fd-plan.md +33 -0
- package/docs/commands/fd-progress.md +11 -0
- package/docs/commands/fd-resume.md +10 -0
- package/docs/commands/fd-review-code.md +29 -0
- package/docs/commands/fd-roadmap.md +10 -0
- package/docs/commands/fd-settings.md +10 -0
- package/docs/commands/fd-write-docs.md +10 -0
- package/docs/commands.md +476 -0
- package/docs/configuration.md +211 -0
- package/docs/feature-integration-architecture.md +255 -0
- package/docs/index.md +75 -0
- package/docs/installation.md +134 -0
- package/docs/intelligence.md +294 -0
- package/docs/multi-repo.md +201 -0
- package/docs/notifications.md +170 -0
- package/docs/parallel-execution.md +227 -0
- package/docs/quick-start.md +174 -0
- package/docs/rules.md +459 -0
- package/docs/skills.md +408 -0
- package/docs/workflows.md +376 -0
- package/package.json +58 -0
- package/postinstall.mjs +102 -0
- package/src/rules/README.md +37 -0
- package/src/rules/common/agent-orchestration.md +86 -0
- package/src/rules/common/coding-style.md +120 -0
- package/src/rules/common/git-workflow.md +77 -0
- package/src/rules/common/security.md +94 -0
- package/src/rules/common/testing.md +105 -0
- package/src/rules/golang/patterns.md +187 -0
- package/src/rules/java/patterns.md +204 -0
- package/src/rules/python/patterns.md +141 -0
- package/src/rules/rust/patterns.md +210 -0
- package/src/rules/typescript/patterns.md +168 -0
- package/src/skills/api-design/SKILL.md +143 -0
- package/src/skills/arch-constraint-guard/SKILL.md +61 -0
- package/src/skills/blast-radius-preview/SKILL.md +65 -0
- package/src/skills/change-impact-radar/SKILL.md +63 -0
- package/src/skills/code-review/SKILL.md +108 -0
- package/src/skills/code-tour/SKILL.md +101 -0
- package/src/skills/codebase-mapping/SKILL.md +87 -0
- package/src/skills/codebase-onboarding/SKILL.md +133 -0
- package/src/skills/confidence-aware-planning/SKILL.md +67 -0
- package/src/skills/context-load/SKILL.md +63 -0
- package/src/skills/debug-flow/SKILL.md +75 -0
- package/src/skills/decision-trace/SKILL.md +72 -0
- package/src/skills/dependency-audit/SKILL.md +126 -0
- package/src/skills/deploy-check/SKILL.md +87 -0
- package/src/skills/documentation-writer/SKILL.md +154 -0
- package/src/skills/failure-replay-engine/SKILL.md +59 -0
- package/src/skills/git-release/SKILL.md +94 -0
- package/src/skills/git-workflow/SKILL.md +177 -0
- package/src/skills/golang-patterns/SKILL.md +511 -0
- package/src/skills/human-review-routing/SKILL.md +65 -0
- package/src/skills/intent-translator/SKILL.md +57 -0
- package/src/skills/java-patterns/SKILL.md +479 -0
- package/src/skills/multi-repo/SKILL.md +187 -0
- package/src/skills/parallel-execute/SKILL.md +92 -0
- package/src/skills/patch-trust-score/SKILL.md +44 -0
- package/src/skills/performance-profiling/SKILL.md +153 -0
- package/src/skills/plan-task/SKILL.md +101 -0
- package/src/skills/python-patterns/SKILL.md +529 -0
- package/src/skills/refactor-guide/SKILL.md +117 -0
- package/src/skills/regression-prediction/SKILL.md +57 -0
- package/src/skills/repo-memory-graph/SKILL.md +49 -0
- package/src/skills/rust-patterns/SKILL.md +492 -0
- package/src/skills/security-scan/SKILL.md +91 -0
- package/src/skills/self-healing-policies/SKILL.md +76 -0
- package/src/skills/tdd-workflow/SKILL.md +126 -0
- package/src/skills/test-coverage/SKILL.md +94 -0
- package/src/skills/test-gap-detector/SKILL.md +58 -0
- package/src/skills/volatility-map/SKILL.md +52 -0
- package/src/workflows/debug-flow.md +119 -0
- package/src/workflows/deploy-check-flow.md +98 -0
- package/src/workflows/discuss-flow.md +97 -0
- package/src/workflows/execute-flow.md +233 -0
- package/src/workflows/execute-phase.md +142 -0
- package/src/workflows/fix-bug-flow.md +210 -0
- package/src/workflows/map-codebase-flow.md +92 -0
- package/src/workflows/multi-repo-flow.md +226 -0
- package/src/workflows/parallel-execution-flow.md +236 -0
- package/src/workflows/plan-flow.md +126 -0
- package/src/workflows/plan-phase.md +101 -0
- package/src/workflows/refactor-flow.md +122 -0
- package/src/workflows/review-code-flow.md +105 -0
- package/src/workflows/spec-driven-flow.md +43 -0
- package/src/workflows/write-docs-flow.md +95 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deploy-check
|
|
3
|
+
description: Pre-deployment checklist covering tests, security scan, CVE audit, and code review. Returns a go/no-go decision. Use before every production deployment.
|
|
4
|
+
origin: FlowDeck
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Deploy Check Skill
|
|
8
|
+
|
|
9
|
+
Systematic pre-deployment verification. Returns GO or NO-GO with specific blockers.
|
|
10
|
+
|
|
11
|
+
## When to Activate
|
|
12
|
+
|
|
13
|
+
Activate before any production deployment or release.
|
|
14
|
+
|
|
15
|
+
## Core Principles
|
|
16
|
+
|
|
17
|
+
- Every check must pass before GO
|
|
18
|
+
- Any CRITICAL or HIGH finding = NO-GO
|
|
19
|
+
- No exceptions without explicit documented approval
|
|
20
|
+
|
|
21
|
+
## Workflow
|
|
22
|
+
|
|
23
|
+
1. Run test suite — all tests must pass
|
|
24
|
+
2. Run security scan — check for OWASP Top 10 issues
|
|
25
|
+
3. Run CVE audit — `npm audit --audit-level=moderate`
|
|
26
|
+
4. Run code review — check recent changes for quality issues
|
|
27
|
+
5. Check conventional commits — verify commit messages are valid
|
|
28
|
+
6. Validate environment variables — confirm all required vars are set
|
|
29
|
+
7. Aggregate findings — determine GO or NO-GO
|
|
30
|
+
|
|
31
|
+
## Checklist
|
|
32
|
+
|
|
33
|
+
### Tests
|
|
34
|
+
- [ ] `npm test` exits with code 0
|
|
35
|
+
- [ ] Coverage ≥ 80% (or project threshold)
|
|
36
|
+
- [ ] No skipped or pending tests (without documented reason)
|
|
37
|
+
|
|
38
|
+
### Security Scan
|
|
39
|
+
- [ ] No hardcoded credentials (grep for common patterns)
|
|
40
|
+
- [ ] No SQL string concatenation
|
|
41
|
+
- [ ] Auth middleware on all protected routes
|
|
42
|
+
- [ ] Input validation at all API boundaries
|
|
43
|
+
- [ ] No sensitive data in logs
|
|
44
|
+
|
|
45
|
+
### CVE Audit
|
|
46
|
+
```bash
|
|
47
|
+
npm audit --audit-level=moderate
|
|
48
|
+
```
|
|
49
|
+
- [ ] Zero critical vulnerabilities
|
|
50
|
+
- [ ] Zero high vulnerabilities (or documented exceptions)
|
|
51
|
+
|
|
52
|
+
### Code Review
|
|
53
|
+
- [ ] No CRITICAL or HIGH severity findings
|
|
54
|
+
- [ ] No TODO/FIXME in changed files (unless pre-existing)
|
|
55
|
+
- [ ] Error handling present on all new code paths
|
|
56
|
+
|
|
57
|
+
### Conventional Commits
|
|
58
|
+
- [ ] All commits since last release follow `type(scope): description` format
|
|
59
|
+
- [ ] Valid types: feat, fix, refactor, docs, test, chore, perf, ci
|
|
60
|
+
- [ ] Breaking changes marked with `!` or `BREAKING CHANGE:` footer
|
|
61
|
+
|
|
62
|
+
### Environment Variables
|
|
63
|
+
- [ ] All required env vars documented in `.env.example`
|
|
64
|
+
- [ ] No `.env` file committed to git
|
|
65
|
+
- [ ] Production environment has all required vars set
|
|
66
|
+
- [ ] No dev/test values used in production config
|
|
67
|
+
|
|
68
|
+
## Output Format
|
|
69
|
+
|
|
70
|
+
```markdown
|
|
71
|
+
## Deploy Check Report
|
|
72
|
+
|
|
73
|
+
### Verdict: GO ✅ | NO-GO ❌
|
|
74
|
+
|
|
75
|
+
### Blockers (if NO-GO)
|
|
76
|
+
- [specific issue that must be fixed]
|
|
77
|
+
|
|
78
|
+
### Warnings (GO with notes)
|
|
79
|
+
- [non-blocking issues to track]
|
|
80
|
+
|
|
81
|
+
### Passing
|
|
82
|
+
- ✅ Tests: 127 passing, 0 failing
|
|
83
|
+
- ✅ Security: no CRITICAL or HIGH findings
|
|
84
|
+
- ✅ CVE audit: 0 vulnerabilities
|
|
85
|
+
- ✅ Conventional commits: valid
|
|
86
|
+
- ✅ Environment variables: all present
|
|
87
|
+
```
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: documentation-writer
|
|
3
|
+
description: Writes technical documentation including README, API docs, changelogs, and inline comments. Activate when documentation needs to be created or updated.
|
|
4
|
+
origin: FlowDeck
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Documentation Writer Skill
|
|
8
|
+
|
|
9
|
+
Writes documentation that developers actually read. Accurate over comprehensive. Examples over prose.
|
|
10
|
+
|
|
11
|
+
## When to Activate
|
|
12
|
+
|
|
13
|
+
Activate when:
|
|
14
|
+
- New code was written and needs documentation
|
|
15
|
+
- Existing docs are outdated or wrong
|
|
16
|
+
- A README needs to be created
|
|
17
|
+
- API docs need to be updated after a signature change
|
|
18
|
+
|
|
19
|
+
## Core Principles
|
|
20
|
+
|
|
21
|
+
- **Accurate over comprehensive** — wrong docs are worse than no docs
|
|
22
|
+
- **Examples over prose** — show, don't describe
|
|
23
|
+
- **Keep it current** — every code change triggers a doc review
|
|
24
|
+
|
|
25
|
+
## Workflow
|
|
26
|
+
|
|
27
|
+
1. Identify what changed (git diff)
|
|
28
|
+
2. Find affected documentation (grep for function/class names)
|
|
29
|
+
3. Update each doc with accurate content
|
|
30
|
+
4. Verify all code examples work
|
|
31
|
+
|
|
32
|
+
## README Structure
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
# Project Name
|
|
36
|
+
|
|
37
|
+
One-sentence description of what this does.
|
|
38
|
+
|
|
39
|
+
[] [] []
|
|
40
|
+
|
|
41
|
+
## Quick Start
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npm install my-package
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
import { myFunction } from 'my-package';
|
|
49
|
+
const result = myFunction('input');
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Installation
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npm install my-package
|
|
56
|
+
# or
|
|
57
|
+
yarn add my-package
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Usage
|
|
61
|
+
|
|
62
|
+
[Most common use cases with working examples]
|
|
63
|
+
|
|
64
|
+
## API Reference
|
|
65
|
+
|
|
66
|
+
[Link to detailed API docs or inline for small libraries]
|
|
67
|
+
|
|
68
|
+
## Contributing
|
|
69
|
+
|
|
70
|
+
[How to contribute, run tests, submit PRs]
|
|
71
|
+
|
|
72
|
+
## License
|
|
73
|
+
|
|
74
|
+
MIT
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## API Doc Format
|
|
78
|
+
|
|
79
|
+
```markdown
|
|
80
|
+
### `functionName(param1, param2?)`
|
|
81
|
+
|
|
82
|
+
One sentence: what it does.
|
|
83
|
+
|
|
84
|
+
**Parameters:**
|
|
85
|
+
| Name | Type | Required | Description |
|
|
86
|
+
|------|------|----------|-------------|
|
|
87
|
+
| param1 | string | Yes | The user's email address |
|
|
88
|
+
| param2 | Options | No | Config (default: `{}`) |
|
|
89
|
+
|
|
90
|
+
**Returns:** `Promise<User>` — the created user.
|
|
91
|
+
|
|
92
|
+
**Throws:** `ValidationError` if email is invalid.
|
|
93
|
+
|
|
94
|
+
**Example:**
|
|
95
|
+
```typescript
|
|
96
|
+
const user = await createUser('me@example.com');
|
|
97
|
+
console.log(user.id); // "usr_abc123"
|
|
98
|
+
```
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Changelog Format
|
|
102
|
+
|
|
103
|
+
Follow [Keep a Changelog](https://keepachangelog.com):
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
## [Unreleased]
|
|
107
|
+
|
|
108
|
+
### Added
|
|
109
|
+
- User can now reset password via email link
|
|
110
|
+
|
|
111
|
+
### Fixed
|
|
112
|
+
- Login button was disabled after failed attempt
|
|
113
|
+
|
|
114
|
+
### Changed
|
|
115
|
+
- `createUser()` now accepts `Options` instead of separate parameters
|
|
116
|
+
|
|
117
|
+
### Deprecated
|
|
118
|
+
- `getUserData()` — use `fetchUserProfile()` instead
|
|
119
|
+
|
|
120
|
+
### Removed
|
|
121
|
+
- Removed `legacyAuth()` (deprecated in v1.1)
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Inline Comment Guidelines
|
|
125
|
+
|
|
126
|
+
**DO comment:**
|
|
127
|
+
```typescript
|
|
128
|
+
// Binary search: O(log n) — dataset is always sorted on insert
|
|
129
|
+
function findUser(users: User[], id: string): User | null { ... }
|
|
130
|
+
|
|
131
|
+
// WARNING: mutates input array for performance — clone before passing if needed
|
|
132
|
+
function sortInPlace(items: Item[]): void { ... }
|
|
133
|
+
|
|
134
|
+
// Using exponential backoff: API rate limit is 1 req/sec sustained
|
|
135
|
+
async function fetchWithRetry(url: string, retries = 3): Promise<Response> { ... }
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**DON'T comment:**
|
|
139
|
+
```typescript
|
|
140
|
+
// increment counter
|
|
141
|
+
counter++;
|
|
142
|
+
|
|
143
|
+
// return user email
|
|
144
|
+
return user.email;
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Quality Checklist
|
|
148
|
+
|
|
149
|
+
- [ ] All code examples are syntactically correct
|
|
150
|
+
- [ ] Examples work when pasted into the project
|
|
151
|
+
- [ ] No dead links
|
|
152
|
+
- [ ] Consistent terminology throughout
|
|
153
|
+
- [ ] README quick start works on a fresh clone
|
|
154
|
+
- [ ] Changelog entry added for all meaningful changes
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: failure-replay-engine
|
|
3
|
+
description: Learn from reverted commits, failed deployments, flaky tests, and bug fixes so the agent avoids repeating the same mistakes in this repo.
|
|
4
|
+
origin: FlowDeck
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Failure Replay Engine
|
|
8
|
+
|
|
9
|
+
FlowDeck remembers every failure that has been recorded in this repo. Before making a change, check the failure history for patterns that match your current task.
|
|
10
|
+
|
|
11
|
+
## Failure Types Tracked
|
|
12
|
+
|
|
13
|
+
| Type | Example |
|
|
14
|
+
|------|---------|
|
|
15
|
+
| reverted_commit | A commit that was rolled back within 48h |
|
|
16
|
+
| failed_deployment | A deployment that caused incidents |
|
|
17
|
+
| flaky_test | A test that fails intermittently |
|
|
18
|
+
| bug_fix | A fix for a production bug |
|
|
19
|
+
| build_failure | A change that broke CI |
|
|
20
|
+
|
|
21
|
+
## Workflow
|
|
22
|
+
|
|
23
|
+
### Before Making a Change
|
|
24
|
+
|
|
25
|
+
1. Query `.codebase/FAILURES.json` for failures matching the affected paths
|
|
26
|
+
2. If a pattern is found with `recurrence_count >= 2`, surface a warning
|
|
27
|
+
3. Include the failure context in your planning rationale
|
|
28
|
+
|
|
29
|
+
### After a Failure is Identified
|
|
30
|
+
|
|
31
|
+
1. Record it with the `failure-replay` tool
|
|
32
|
+
2. Include: type, description, affected_paths, root_cause, fix_applied, tags
|
|
33
|
+
|
|
34
|
+
### Recording a Failure
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{ "action": "record", "entry": {
|
|
38
|
+
"id": "auth-jwt-expiry-2024-03",
|
|
39
|
+
"type": "bug_fix",
|
|
40
|
+
"description": "JWT tokens expired before refreshing, locking out users",
|
|
41
|
+
"affected_paths": ["src/services/auth.ts", "src/middleware/validate-token.ts"],
|
|
42
|
+
"root_cause": "Clock skew between services caused premature expiry",
|
|
43
|
+
"fix_applied": "Added 30s clock skew buffer to expiry check",
|
|
44
|
+
"tags": ["auth", "jwt", "timing"]
|
|
45
|
+
}}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Querying Before Editing
|
|
49
|
+
|
|
50
|
+
Always query before touching auth, payment, schema, or async paths:
|
|
51
|
+
```json
|
|
52
|
+
{ "action": "query", "query": { "path_prefix": "src/services/auth", "limit": 5 } }
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Guidance
|
|
56
|
+
|
|
57
|
+
- Recurring failures (recurrence_count ≥ 3) indicate a systemic issue — escalate to architect
|
|
58
|
+
- Mark failures as resolved only after a regression test is green for 2 consecutive CI runs
|
|
59
|
+
- Do not delete failure records — they are the repo's institutional memory
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-release
|
|
3
|
+
description: Create consistent releases and changelogs from merged PRs. Proposes semantic version bump, drafts release notes, and provides a copy-pasteable release command.
|
|
4
|
+
origin: FlowDeck
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Git Release Skill
|
|
8
|
+
|
|
9
|
+
Creates releases with consistent versioning, accurate changelogs, and proper tagging.
|
|
10
|
+
|
|
11
|
+
## When to Activate
|
|
12
|
+
|
|
13
|
+
Activate when:
|
|
14
|
+
- A milestone is complete and ready to ship
|
|
15
|
+
- You need to cut a release tag
|
|
16
|
+
- You need to generate a CHANGELOG entry
|
|
17
|
+
|
|
18
|
+
## Core Principles
|
|
19
|
+
|
|
20
|
+
- Semver strictly: major.minor.patch
|
|
21
|
+
- Conventional commits drive the version bump automatically
|
|
22
|
+
- Changelog is for humans: group by type, use plain language
|
|
23
|
+
- One release per tag — no force-pushing tags
|
|
24
|
+
|
|
25
|
+
## Workflow
|
|
26
|
+
|
|
27
|
+
1. **Collect commits** — `git log [last-tag]..HEAD --oneline`
|
|
28
|
+
2. **Determine version bump** from commits:
|
|
29
|
+
- Breaking change (`!` or `BREAKING CHANGE:`) → major bump
|
|
30
|
+
- `feat:` → minor bump
|
|
31
|
+
- `fix:`, `refactor:`, `perf:` → patch bump
|
|
32
|
+
- `docs:`, `test:`, `chore:` → no version bump (unless last release)
|
|
33
|
+
3. **Draft changelog** — group commits by type
|
|
34
|
+
4. **Update CHANGELOG.md** — prepend new version under `## Unreleased`
|
|
35
|
+
5. **Tag and push** — provide the exact commands
|
|
36
|
+
|
|
37
|
+
## Conventional Commits Types
|
|
38
|
+
|
|
39
|
+
| Type | Version Bump | Description |
|
|
40
|
+
|------|-------------|-------------|
|
|
41
|
+
| `feat` | minor | New feature |
|
|
42
|
+
| `fix` | patch | Bug fix |
|
|
43
|
+
| `perf` | patch | Performance improvement |
|
|
44
|
+
| `refactor` | patch | Code change, no behavior change |
|
|
45
|
+
| `docs` | none | Documentation only |
|
|
46
|
+
| `test` | none | Adding or updating tests |
|
|
47
|
+
| `chore` | none | Maintenance, dependencies |
|
|
48
|
+
| `ci` | none | CI/CD configuration |
|
|
49
|
+
| `feat!` or `BREAKING CHANGE:` | major | Breaking API change |
|
|
50
|
+
|
|
51
|
+
## Changelog Format
|
|
52
|
+
|
|
53
|
+
Follow Keep a Changelog (keepachangelog.com):
|
|
54
|
+
|
|
55
|
+
```markdown
|
|
56
|
+
## [1.2.0] — 2024-01-15
|
|
57
|
+
|
|
58
|
+
### Added
|
|
59
|
+
- User authentication via JWT (feat: add JWT auth)
|
|
60
|
+
- Password reset via email (feat: add password reset)
|
|
61
|
+
|
|
62
|
+
### Fixed
|
|
63
|
+
- Token expiry calculation was off by one day (fix: correct token expiry)
|
|
64
|
+
|
|
65
|
+
### Changed
|
|
66
|
+
- Migrated from bcrypt to argon2 for better security (refactor: use argon2)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Release Commands
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# After updating CHANGELOG.md
|
|
73
|
+
git add CHANGELOG.md
|
|
74
|
+
git commit -m "chore(release): v1.2.0"
|
|
75
|
+
git tag -a v1.2.0 -m "Release v1.2.0"
|
|
76
|
+
git push origin main --tags
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Output Format
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
## Release Proposal: v[X.Y.Z]
|
|
83
|
+
|
|
84
|
+
**Version bump**: patch | minor | major
|
|
85
|
+
**Reason**: [breaking change / new feature / bug fix]
|
|
86
|
+
|
|
87
|
+
### CHANGELOG entry (copy into CHANGELOG.md):
|
|
88
|
+
[formatted changelog section]
|
|
89
|
+
|
|
90
|
+
### Release commands:
|
|
91
|
+
```bash
|
|
92
|
+
[copy-pasteable commands]
|
|
93
|
+
```
|
|
94
|
+
```
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-workflow
|
|
3
|
+
description: Branching strategies, conventional commits, PR templates, and merge vs rebase guidance. Activate when starting features, creating PRs, or managing releases.
|
|
4
|
+
origin: FlowDeck
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Git Workflow Skill
|
|
8
|
+
|
|
9
|
+
Clean, reviewable git history. Small commits, descriptive messages, reviewed before merge.
|
|
10
|
+
|
|
11
|
+
## When to Activate
|
|
12
|
+
|
|
13
|
+
Activate when:
|
|
14
|
+
- Starting a new feature or bug fix
|
|
15
|
+
- Creating a pull request
|
|
16
|
+
- Managing a release
|
|
17
|
+
- Resolving merge conflicts
|
|
18
|
+
|
|
19
|
+
## Core Principles
|
|
20
|
+
|
|
21
|
+
- **Small, atomic commits** — one logical change per commit
|
|
22
|
+
- **Descriptive messages** — reader understands the change without reading the diff
|
|
23
|
+
- **Linear history preferred** — rebase local branches before creating PR
|
|
24
|
+
- **Review before merge** — no self-merges on shared branches
|
|
25
|
+
|
|
26
|
+
## Branch Naming Convention
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
feature/user-authentication — new features
|
|
30
|
+
fix/login-redirect-loop — bug fixes
|
|
31
|
+
chore/update-dependencies — maintenance
|
|
32
|
+
release/v1.2.0 — release preparation
|
|
33
|
+
hotfix/critical-null-dereference — urgent production fixes
|
|
34
|
+
refactor/extract-auth-middleware — code restructuring
|
|
35
|
+
docs/update-api-reference — documentation only
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Conventional Commits Format
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
type(scope): description
|
|
42
|
+
|
|
43
|
+
[optional body]
|
|
44
|
+
|
|
45
|
+
[optional footer]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Types
|
|
49
|
+
| Type | Version Bump | When to Use |
|
|
50
|
+
|------|-------------|-------------|
|
|
51
|
+
| `feat` | minor | New feature for the user |
|
|
52
|
+
| `fix` | patch | Bug fix for the user |
|
|
53
|
+
| `perf` | patch | Performance improvement |
|
|
54
|
+
| `refactor` | patch | Code change, no behavior change |
|
|
55
|
+
| `docs` | none | Documentation only |
|
|
56
|
+
| `test` | none | Adding or fixing tests |
|
|
57
|
+
| `chore` | none | Dependencies, tooling, CI |
|
|
58
|
+
| `ci` | none | CI/CD configuration |
|
|
59
|
+
| `build` | none | Build system changes |
|
|
60
|
+
|
|
61
|
+
### Examples
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
feat(auth): add JWT token refresh endpoint
|
|
65
|
+
fix(auth): correct token expiry off-by-one error
|
|
66
|
+
perf(db): replace N+1 query with single JOIN
|
|
67
|
+
refactor(user): extract password validation to separate module
|
|
68
|
+
docs(api): document authentication endpoints
|
|
69
|
+
test(auth): add coverage for token expiry edge cases
|
|
70
|
+
chore(deps): update express to 4.18.2
|
|
71
|
+
ci(github): add node 20 to test matrix
|
|
72
|
+
feat!: remove deprecated v1 API endpoints
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Breaking Changes
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
feat!: remove deprecated getUserData() function
|
|
79
|
+
|
|
80
|
+
BREAKING CHANGE: getUserData() has been removed.
|
|
81
|
+
Use fetchUserProfile() instead.
|
|
82
|
+
Migration: replace all calls to getUserData() with fetchUserProfile().
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## PR Template
|
|
86
|
+
|
|
87
|
+
**Title**: Same format as a commit: `feat(auth): add password reset`
|
|
88
|
+
|
|
89
|
+
**Description**:
|
|
90
|
+
```markdown
|
|
91
|
+
## What
|
|
92
|
+
[What this PR does in 1-3 sentences]
|
|
93
|
+
|
|
94
|
+
## Why
|
|
95
|
+
[Why this change is needed]
|
|
96
|
+
|
|
97
|
+
## How to Test
|
|
98
|
+
1. [Step 1]
|
|
99
|
+
2. [Step 2]
|
|
100
|
+
3. Expected result: [what should happen]
|
|
101
|
+
|
|
102
|
+
## Checklist
|
|
103
|
+
- [ ] Tests added or updated
|
|
104
|
+
- [ ] Documentation updated
|
|
105
|
+
- [ ] No breaking changes (or documented)
|
|
106
|
+
- [ ] Ran `npm test` locally
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Rebase vs Merge
|
|
110
|
+
|
|
111
|
+
| Situation | Strategy | Command |
|
|
112
|
+
|-----------|---------|---------|
|
|
113
|
+
| Local feature branch before PR | Rebase | `git rebase main` |
|
|
114
|
+
| PR integration to main | Merge (preserves history) | GitHub "Merge PR" |
|
|
115
|
+
| Small feature PR | Squash merge | GitHub "Squash and merge" |
|
|
116
|
+
| Long-lived branch | Merge (preserves branch history) | `git merge --no-ff` |
|
|
117
|
+
| Force-push to shared branch | Never | — |
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
# Before creating PR — rebase to clean up
|
|
121
|
+
git fetch origin
|
|
122
|
+
git rebase origin/main
|
|
123
|
+
git push --force-with-lease # safe force push (only if no one else pushed)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Release Process
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
# 1. Create release branch
|
|
130
|
+
git checkout -b release/v1.2.0
|
|
131
|
+
|
|
132
|
+
# 2. Update version
|
|
133
|
+
npm version minor # updates package.json + creates tag
|
|
134
|
+
|
|
135
|
+
# 3. Update CHANGELOG
|
|
136
|
+
# (add entry under ## [1.2.0])
|
|
137
|
+
|
|
138
|
+
# 4. Commit
|
|
139
|
+
git add CHANGELOG.md package.json
|
|
140
|
+
git commit -m "chore(release): v1.2.0"
|
|
141
|
+
|
|
142
|
+
# 5. Tag
|
|
143
|
+
git tag -a v1.2.0 -m "Release v1.2.0"
|
|
144
|
+
|
|
145
|
+
# 6. Push
|
|
146
|
+
git push origin release/v1.2.0 --tags
|
|
147
|
+
|
|
148
|
+
# 7. Create PR → merge → done
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Git Commands Reference
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
# Undo last commit (keep changes staged)
|
|
155
|
+
git reset --soft HEAD~1
|
|
156
|
+
|
|
157
|
+
# Undo last commit (discard changes)
|
|
158
|
+
git reset --hard HEAD~1
|
|
159
|
+
|
|
160
|
+
# Fix commit message
|
|
161
|
+
git commit --amend -m "new message"
|
|
162
|
+
|
|
163
|
+
# Squash last 3 commits
|
|
164
|
+
git rebase -i HEAD~3
|
|
165
|
+
|
|
166
|
+
# Cherry-pick a commit to another branch
|
|
167
|
+
git cherry-pick [commit-sha]
|
|
168
|
+
|
|
169
|
+
# Find when a bug was introduced
|
|
170
|
+
git bisect start
|
|
171
|
+
git bisect bad # current is broken
|
|
172
|
+
git bisect good [good-sha] # last known good
|
|
173
|
+
|
|
174
|
+
# Stash changes
|
|
175
|
+
git stash # save
|
|
176
|
+
git stash pop # restore
|
|
177
|
+
```
|