@sniper.ai/core 1.0.1 → 3.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.
- package/README.md +119 -39
- package/agents/analyst.md +30 -0
- package/agents/architect.md +36 -0
- package/agents/backend-dev.md +43 -0
- package/agents/code-reviewer.md +72 -0
- package/agents/frontend-dev.md +43 -0
- package/agents/fullstack-dev.md +44 -0
- package/agents/gate-reviewer.md +62 -0
- package/agents/lead-orchestrator.md +51 -0
- package/agents/product-manager.md +38 -0
- package/agents/qa-engineer.md +37 -0
- package/agents/retro-analyst.md +98 -0
- package/checklists/discover.yaml +23 -0
- package/checklists/implement.yaml +28 -0
- package/checklists/ingest-document.yaml +18 -0
- package/checklists/ingest-extract.yaml +13 -0
- package/checklists/ingest-scan.yaml +18 -0
- package/checklists/multi-faceted-review.yaml +56 -0
- package/checklists/plan.yaml +36 -0
- package/checklists/refactor-analyze.yaml +18 -0
- package/checklists/review.yaml +28 -0
- package/claude-md.template +42 -0
- package/config.template.yaml +156 -0
- package/hooks/settings-hooks.json +31 -0
- package/hooks/signal-hooks.json +11 -0
- package/package.json +23 -5
- package/personas/cognitive/devils-advocate.md +24 -0
- package/personas/cognitive/performance-focused.md +23 -0
- package/personas/cognitive/security-first.md +24 -0
- package/protocols/explore.yaml +18 -0
- package/protocols/feature.yaml +45 -0
- package/protocols/full.yaml +63 -0
- package/protocols/hotfix.yaml +19 -0
- package/protocols/ingest.yaml +39 -0
- package/protocols/patch.yaml +30 -0
- package/protocols/refactor.yaml +41 -0
- package/schemas/checkpoint.schema.yaml +133 -0
- package/schemas/cost.schema.yaml +97 -0
- package/schemas/dependency-graph.schema.yaml +37 -0
- package/schemas/gate-result.schema.yaml +101 -0
- package/schemas/knowledge-manifest.schema.yaml +39 -0
- package/schemas/live-status.schema.yaml +122 -0
- package/schemas/protocol.schema.yaml +100 -0
- package/schemas/retro.schema.yaml +95 -0
- package/schemas/revert-plan.schema.yaml +40 -0
- package/schemas/signal.schema.yaml +39 -0
- package/schemas/velocity.schema.yaml +52 -0
- package/schemas/workspace-lock.schema.yaml +34 -0
- package/schemas/workspace.schema.yaml +82 -0
- package/skills/sniper-flow/SKILL.md +243 -0
- package/skills/sniper-flow-headless/SKILL.md +105 -0
- package/skills/sniper-init/SKILL.md +103 -0
- package/skills/sniper-review/SKILL.md +49 -0
- package/skills/sniper-status/SKILL.md +79 -0
- package/templates/architecture.md +23 -0
- package/templates/checkpoint.yaml +27 -0
- package/templates/codebase-overview.md +19 -0
- package/templates/cost.yaml +23 -0
- package/templates/custom-protocol.yaml +98 -0
- package/templates/knowledge-manifest.yaml +32 -0
- package/templates/live-status.yaml +26 -0
- package/templates/multi-faceted-review-report.md +28 -0
- package/templates/review-report.md +25 -0
- package/templates/signal-record.yaml +37 -0
- package/templates/spec.md +28 -0
- package/templates/story.md +19 -0
- package/templates/velocity.yaml +9 -0
- package/templates/workspace-config.yaml +44 -0
- package/framework/checklists/code-review.md +0 -33
- package/framework/checklists/discover-review.md +0 -33
- package/framework/checklists/doc-review.md +0 -39
- package/framework/checklists/plan-review.md +0 -52
- package/framework/checklists/sprint-review.md +0 -41
- package/framework/checklists/story-review.md +0 -30
- package/framework/claude-md.template +0 -37
- package/framework/commands/sniper-compose.md +0 -237
- package/framework/commands/sniper-discover.md +0 -397
- package/framework/commands/sniper-doc.md +0 -441
- package/framework/commands/sniper-init.md +0 -372
- package/framework/commands/sniper-plan.md +0 -608
- package/framework/commands/sniper-review.md +0 -305
- package/framework/commands/sniper-solve.md +0 -375
- package/framework/commands/sniper-sprint.md +0 -601
- package/framework/commands/sniper-status.md +0 -276
- package/framework/config.template.yaml +0 -117
- package/framework/personas/cognitive/devils-advocate.md +0 -30
- package/framework/personas/cognitive/mentor-explainer.md +0 -29
- package/framework/personas/cognitive/performance-focused.md +0 -30
- package/framework/personas/cognitive/security-first.md +0 -29
- package/framework/personas/cognitive/systems-thinker.md +0 -29
- package/framework/personas/cognitive/user-empathetic.md +0 -29
- package/framework/personas/domain/.gitkeep +0 -0
- package/framework/personas/process/analyst.md +0 -29
- package/framework/personas/process/architect.md +0 -30
- package/framework/personas/process/developer.md +0 -32
- package/framework/personas/process/doc-analyst.md +0 -63
- package/framework/personas/process/doc-reviewer.md +0 -62
- package/framework/personas/process/doc-writer.md +0 -42
- package/framework/personas/process/product-manager.md +0 -32
- package/framework/personas/process/qa-engineer.md +0 -31
- package/framework/personas/process/scrum-master.md +0 -31
- package/framework/personas/process/ux-designer.md +0 -31
- package/framework/personas/technical/ai-ml.md +0 -33
- package/framework/personas/technical/api-design.md +0 -32
- package/framework/personas/technical/backend.md +0 -32
- package/framework/personas/technical/database.md +0 -32
- package/framework/personas/technical/frontend.md +0 -33
- package/framework/personas/technical/infrastructure.md +0 -32
- package/framework/personas/technical/security.md +0 -34
- package/framework/settings.template.json +0 -6
- package/framework/spawn-prompts/_template.md +0 -22
- package/framework/teams/discover.yaml +0 -57
- package/framework/teams/doc.yaml +0 -76
- package/framework/teams/plan.yaml +0 -86
- package/framework/teams/solve.yaml +0 -48
- package/framework/teams/sprint.yaml +0 -68
- package/framework/templates/architecture.md +0 -72
- package/framework/templates/brief.md +0 -52
- package/framework/templates/doc-api.md +0 -53
- package/framework/templates/doc-guide.md +0 -35
- package/framework/templates/doc-readme.md +0 -49
- package/framework/templates/epic.md +0 -33
- package/framework/templates/personas.md +0 -118
- package/framework/templates/prd.md +0 -69
- package/framework/templates/risks.md +0 -64
- package/framework/templates/security.md +0 -90
- package/framework/templates/sprint-review.md +0 -32
- package/framework/templates/story.md +0 -37
- package/framework/templates/ux-spec.md +0 -54
- package/framework/workflows/discover-only.md +0 -39
- package/framework/workflows/full-lifecycle.md +0 -56
- package/framework/workflows/quick-feature.md +0 -44
- package/framework/workflows/sprint-cycle.md +0 -47
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# ─────────────────────────────────────────────────────────────
|
|
2
|
+
# SNIPER Custom Protocol Template
|
|
3
|
+
# ─────────────────────────────────────────────────────────────
|
|
4
|
+
# Copy this file to .sniper/protocols/<name>.yaml and customize.
|
|
5
|
+
# Run `sniper protocol validate <name>` to check your protocol.
|
|
6
|
+
# See built-in protocols in @sniper.ai/core/protocols/ for examples.
|
|
7
|
+
# ─────────────────────────────────────────────────────────────
|
|
8
|
+
|
|
9
|
+
# name (required): Unique identifier for your protocol.
|
|
10
|
+
# Used in --protocol flag: /sniper-flow --protocol my-protocol
|
|
11
|
+
name: my-protocol
|
|
12
|
+
|
|
13
|
+
# description (required): What this protocol accomplishes.
|
|
14
|
+
description: Describe the goal of your custom protocol
|
|
15
|
+
|
|
16
|
+
# budget (required): Maximum token budget for the entire execution.
|
|
17
|
+
# Common ranges: 100K (hotfix), 800K (feature), 2M (full lifecycle)
|
|
18
|
+
budget: 500000
|
|
19
|
+
|
|
20
|
+
# phases (required): Ordered list of phases. Each phase runs sequentially.
|
|
21
|
+
# The protocol engine executes phases top-to-bottom, gating between each.
|
|
22
|
+
phases:
|
|
23
|
+
# ── Phase 1: Plan ──────────────────────────────────────────
|
|
24
|
+
- name: plan
|
|
25
|
+
# description (required): What this phase accomplishes.
|
|
26
|
+
description: Design the approach and break down into tasks
|
|
27
|
+
|
|
28
|
+
# agents (required): Which agent personas to assign.
|
|
29
|
+
# Available built-in agents: analyst, architect, product-manager,
|
|
30
|
+
# fullstack-dev, backend-dev, frontend-dev, qa-engineer,
|
|
31
|
+
# code-reviewer, retro-analyst
|
|
32
|
+
agents:
|
|
33
|
+
- architect
|
|
34
|
+
|
|
35
|
+
# spawn_strategy (required): How to launch agents.
|
|
36
|
+
# "single" — one agent works alone
|
|
37
|
+
# "team" — multiple agents coordinate via TeamCreate
|
|
38
|
+
spawn_strategy: single
|
|
39
|
+
|
|
40
|
+
# gate (optional): Quality gate evaluated before moving to next phase.
|
|
41
|
+
# Omit to skip gating (like hotfix protocol).
|
|
42
|
+
gate:
|
|
43
|
+
# checklist: Name of checklist from packages/core/checklists/
|
|
44
|
+
# Available: discover, plan, implement, review
|
|
45
|
+
checklist: plan
|
|
46
|
+
# human_approval: If true, a human must approve before proceeding.
|
|
47
|
+
human_approval: true
|
|
48
|
+
|
|
49
|
+
# outputs (optional): Expected artifacts this phase produces.
|
|
50
|
+
# Used for tracking and checkpoint reporting.
|
|
51
|
+
outputs:
|
|
52
|
+
- docs/design.md
|
|
53
|
+
|
|
54
|
+
# ── Phase 2: Implement ─────────────────────────────────────
|
|
55
|
+
- name: implement
|
|
56
|
+
description: Build the feature according to the plan
|
|
57
|
+
|
|
58
|
+
agents:
|
|
59
|
+
- fullstack-dev
|
|
60
|
+
- qa-engineer
|
|
61
|
+
spawn_strategy: team
|
|
62
|
+
|
|
63
|
+
# plan_approval (optional): If true, each agent must get their
|
|
64
|
+
# execution plan approved before writing code.
|
|
65
|
+
plan_approval: true
|
|
66
|
+
|
|
67
|
+
gate:
|
|
68
|
+
checklist: implement
|
|
69
|
+
human_approval: false
|
|
70
|
+
|
|
71
|
+
outputs:
|
|
72
|
+
- source code changes
|
|
73
|
+
- test files
|
|
74
|
+
|
|
75
|
+
# coordination (optional): Constraints between agents in team phases.
|
|
76
|
+
# Only meaningful when spawn_strategy is "team".
|
|
77
|
+
# coordination:
|
|
78
|
+
# - between: [fullstack-dev, qa-engineer]
|
|
79
|
+
# topic: Tests must cover all new public APIs
|
|
80
|
+
|
|
81
|
+
# ── Phase 3: Review ────────────────────────────────────────
|
|
82
|
+
- name: review
|
|
83
|
+
description: Code review and final quality check
|
|
84
|
+
|
|
85
|
+
agents:
|
|
86
|
+
- code-reviewer
|
|
87
|
+
spawn_strategy: single
|
|
88
|
+
|
|
89
|
+
gate:
|
|
90
|
+
checklist: review
|
|
91
|
+
human_approval: true
|
|
92
|
+
|
|
93
|
+
outputs:
|
|
94
|
+
- docs/review-report.md
|
|
95
|
+
|
|
96
|
+
# auto_retro (optional, default: false): Whether to run the retro-analyst
|
|
97
|
+
# after protocol completion to record velocity metrics.
|
|
98
|
+
auto_retro: true
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Knowledge Manifest — domain knowledge sources for agent injection
|
|
2
|
+
# Place this file at .sniper/knowledge/manifest.yaml
|
|
3
|
+
# Agents consult this manifest to load relevant domain context before execution
|
|
4
|
+
|
|
5
|
+
# Each source entry declares a Markdown file containing domain expertise.
|
|
6
|
+
# During protocol execution, agents match their task context against topics
|
|
7
|
+
# and tags to selectively load only the knowledge they need.
|
|
8
|
+
|
|
9
|
+
sources:
|
|
10
|
+
# topic: Short identifier for the knowledge domain
|
|
11
|
+
# file: Path relative to .sniper/knowledge/
|
|
12
|
+
# tokens: Estimated token count (used for budget planning — measure with `wc -w file | awk '{print int($1 * 1.3)}'`)
|
|
13
|
+
# tags: Searchable labels for contextual matching (optional)
|
|
14
|
+
# description: What this knowledge covers, so agents know when to load it (optional)
|
|
15
|
+
|
|
16
|
+
- topic: "telephony"
|
|
17
|
+
file: "telephony-protocols.md"
|
|
18
|
+
tokens: 2500
|
|
19
|
+
tags: [voip, sip, pbx, otp]
|
|
20
|
+
description: "VoIP telephony protocols, SIP signaling, and PBX integration patterns"
|
|
21
|
+
|
|
22
|
+
- topic: "compliance"
|
|
23
|
+
file: "tcpa-rules.md"
|
|
24
|
+
tokens: 1800
|
|
25
|
+
tags: [tcpa, compliance, legal, consent]
|
|
26
|
+
description: "TCPA compliance rules for outbound dialing and consent management"
|
|
27
|
+
|
|
28
|
+
- topic: "crm"
|
|
29
|
+
file: "crm-integration.md"
|
|
30
|
+
tokens: 1200
|
|
31
|
+
tags: [salesforce, hubspot, api, leads]
|
|
32
|
+
description: "CRM integration patterns, lead lifecycle, and API conventions"
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Real-time protocol progress
|
|
2
|
+
protocol: ""
|
|
3
|
+
status: "" # idle | running | paused | completed | failed
|
|
4
|
+
current_phase: ""
|
|
5
|
+
started_at: ""
|
|
6
|
+
updated_at: ""
|
|
7
|
+
|
|
8
|
+
phases:
|
|
9
|
+
- name: ""
|
|
10
|
+
status: "" # pending | running | paused | completed | failed
|
|
11
|
+
agents: []
|
|
12
|
+
# - name: analyst
|
|
13
|
+
# status: active | completed | failed
|
|
14
|
+
progress: 0 # percentage
|
|
15
|
+
|
|
16
|
+
gate_results: []
|
|
17
|
+
# - phase: discover
|
|
18
|
+
# result: pass
|
|
19
|
+
# timestamp: ""
|
|
20
|
+
|
|
21
|
+
cost:
|
|
22
|
+
tokens_used: 0
|
|
23
|
+
budget: 0
|
|
24
|
+
percent: 0
|
|
25
|
+
|
|
26
|
+
next_action: "" # Human-readable description of what's next
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Multi-Faceted Review Report
|
|
2
|
+
<!-- Budget: 2000 tokens max -->
|
|
3
|
+
|
|
4
|
+
## Summary
|
|
5
|
+
<!-- ~200 tokens: Overall assessment across all dimensions -->
|
|
6
|
+
|
|
7
|
+
## Scope Validation
|
|
8
|
+
<!-- ~400 tokens: Does the implementation match requirements? -->
|
|
9
|
+
| Requirement | Status | Notes |
|
|
10
|
+
|-------------|--------|-------|
|
|
11
|
+
|
|
12
|
+
## Standards Enforcement
|
|
13
|
+
<!-- ~400 tokens: Does the code follow project conventions? -->
|
|
14
|
+
| Standard | Status | Finding |
|
|
15
|
+
|----------|--------|---------|
|
|
16
|
+
|
|
17
|
+
## Risk Assessment
|
|
18
|
+
<!-- ~400 tokens: Security, performance, reliability, and maintenance risks -->
|
|
19
|
+
| Risk | Severity | Mitigation |
|
|
20
|
+
|------|----------|------------|
|
|
21
|
+
|
|
22
|
+
## Overall Risk Score
|
|
23
|
+
<!-- ~200 tokens: Aggregate risk level (critical/high/medium/low) with justification -->
|
|
24
|
+
|
|
25
|
+
**Risk Level:** <!-- critical | high | medium | low -->
|
|
26
|
+
|
|
27
|
+
## Decision
|
|
28
|
+
<!-- ~200 tokens: APPROVE / REQUEST_CHANGES / COMMENT with reasoning -->
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Review Report
|
|
2
|
+
<!-- Budget: 1000 tokens max -->
|
|
3
|
+
|
|
4
|
+
## Summary
|
|
5
|
+
<!-- ~200 tokens: Overall assessment — pass/fail with brief rationale -->
|
|
6
|
+
|
|
7
|
+
## Checks
|
|
8
|
+
<!-- ~300 tokens: Checklist results -->
|
|
9
|
+
| Check | Status | Notes |
|
|
10
|
+
|-------|--------|-------|
|
|
11
|
+
|
|
12
|
+
## Findings
|
|
13
|
+
<!-- ~400 tokens: Issues found, categorized by severity -->
|
|
14
|
+
|
|
15
|
+
### Blocking
|
|
16
|
+
<!-- Must fix before merge -->
|
|
17
|
+
|
|
18
|
+
### Suggestions
|
|
19
|
+
<!-- Should fix, but not blocking -->
|
|
20
|
+
|
|
21
|
+
### Nits
|
|
22
|
+
<!-- Optional improvements -->
|
|
23
|
+
|
|
24
|
+
## Decision
|
|
25
|
+
<!-- ~100 tokens: APPROVE / REQUEST_CHANGES / COMMENT -->
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Signal Record — captures an external learning for future agent context
|
|
2
|
+
#
|
|
3
|
+
# Signals are stored in .sniper/memory/signals/ and are ingested from
|
|
4
|
+
# CI failures, PR review comments, production errors, or manually.
|
|
5
|
+
# Agents query relevant signals before implementation to avoid repeating mistakes.
|
|
6
|
+
|
|
7
|
+
# Required: one of ci_failure | pr_review_comment | production_error | manual
|
|
8
|
+
type: ci_failure
|
|
9
|
+
|
|
10
|
+
# Required: where this signal originated (e.g., "github-actions", "pr-42", "datadog")
|
|
11
|
+
source: github-actions
|
|
12
|
+
|
|
13
|
+
# Required: ISO 8601 timestamp of when the signal was observed
|
|
14
|
+
timestamp: "2026-01-15T10:30:00Z"
|
|
15
|
+
|
|
16
|
+
# Required: one-line summary of what happened
|
|
17
|
+
summary: "Jest test suite failed — missing mock for PaymentService"
|
|
18
|
+
|
|
19
|
+
# Optional: full error message, review comment text, or stack trace
|
|
20
|
+
details: |
|
|
21
|
+
FAIL src/services/payment.test.ts
|
|
22
|
+
TypeError: Cannot read properties of undefined (reading 'charge')
|
|
23
|
+
Expected PaymentService to be mocked in test setup.
|
|
24
|
+
|
|
25
|
+
# Optional: the takeaway to apply in future work
|
|
26
|
+
learning: "Always mock external service dependencies in unit tests before calling the handler."
|
|
27
|
+
|
|
28
|
+
# Optional: tags for matching this signal to relevant agent context
|
|
29
|
+
relevance_tags:
|
|
30
|
+
- testing
|
|
31
|
+
- mocking
|
|
32
|
+
- payment-service
|
|
33
|
+
|
|
34
|
+
# Optional: file paths that were involved
|
|
35
|
+
affected_files:
|
|
36
|
+
- src/services/payment.test.ts
|
|
37
|
+
- src/services/payment.ts
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Specification
|
|
2
|
+
<!-- Budget: 3000 tokens max -->
|
|
3
|
+
|
|
4
|
+
## Context
|
|
5
|
+
<!-- ~300 tokens: What exists today and why this work is needed -->
|
|
6
|
+
|
|
7
|
+
## Problem
|
|
8
|
+
<!-- ~400 tokens: What specific problem are we solving -->
|
|
9
|
+
|
|
10
|
+
## Users
|
|
11
|
+
<!-- ~200 tokens: Who are the users and what do they need -->
|
|
12
|
+
|
|
13
|
+
## Requirements
|
|
14
|
+
<!-- ~1000 tokens: EARS-format requirements -->
|
|
15
|
+
<!-- Use: "The <system> shall <action>" for each requirement -->
|
|
16
|
+
|
|
17
|
+
### Functional Requirements
|
|
18
|
+
|
|
19
|
+
### Non-Functional Requirements
|
|
20
|
+
|
|
21
|
+
## Out of Scope
|
|
22
|
+
<!-- ~200 tokens: Explicitly list what this work does NOT cover -->
|
|
23
|
+
|
|
24
|
+
## Success Metrics
|
|
25
|
+
<!-- ~200 tokens: How we measure success -->
|
|
26
|
+
|
|
27
|
+
## Open Questions
|
|
28
|
+
<!-- ~200 tokens: Unresolved questions that need answers before planning -->
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Story: [TITLE]
|
|
2
|
+
<!-- Budget: 1500 tokens max -->
|
|
3
|
+
|
|
4
|
+
## Context
|
|
5
|
+
<!-- ~200 tokens: Why this story exists, link to architecture/spec -->
|
|
6
|
+
|
|
7
|
+
## Task
|
|
8
|
+
<!-- ~400 tokens: What needs to be done, specific and actionable -->
|
|
9
|
+
|
|
10
|
+
## Acceptance Criteria
|
|
11
|
+
<!-- ~600 tokens: EARS-format criteria -->
|
|
12
|
+
<!-- Each criterion must be independently testable -->
|
|
13
|
+
|
|
14
|
+
1. When [event], the system shall [action]
|
|
15
|
+
2. The system shall [action]
|
|
16
|
+
3. If [condition], then the system shall [action]
|
|
17
|
+
|
|
18
|
+
## Technical Notes
|
|
19
|
+
<!-- ~300 tokens: Implementation hints, relevant code locations, gotchas -->
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# SNIPER Workspace Configuration
|
|
2
|
+
# Place this file at .sniper-workspace/config.yaml in your workspace root.
|
|
3
|
+
# A workspace coordinates multiple SNIPER-enabled projects that share
|
|
4
|
+
# conventions, architectural decisions, and memory.
|
|
5
|
+
|
|
6
|
+
# Workspace name — used in status output and logs
|
|
7
|
+
name: "my-workspace"
|
|
8
|
+
|
|
9
|
+
# Projects managed by this workspace.
|
|
10
|
+
# Each entry maps a logical name to a relative directory path.
|
|
11
|
+
projects:
|
|
12
|
+
- name: api
|
|
13
|
+
path: ./services/api # relative to workspace root
|
|
14
|
+
type: api # optional label (api, frontend, library, cli, etc.)
|
|
15
|
+
- name: web
|
|
16
|
+
path: ./apps/web
|
|
17
|
+
type: frontend
|
|
18
|
+
|
|
19
|
+
# Shared conventions and decisions applied to every project in the workspace.
|
|
20
|
+
# These supplement (not replace) each project's own .sniper/config.yaml.
|
|
21
|
+
shared:
|
|
22
|
+
# Coding conventions enforced across all projects
|
|
23
|
+
conventions:
|
|
24
|
+
- "All public APIs must have OpenAPI specs"
|
|
25
|
+
- "Use structured logging (JSON) in all services"
|
|
26
|
+
- "Error responses follow RFC 7807 Problem Details"
|
|
27
|
+
|
|
28
|
+
# Patterns to avoid workspace-wide
|
|
29
|
+
anti_patterns:
|
|
30
|
+
- "No direct database access from frontend projects"
|
|
31
|
+
- "No shared mutable state between services"
|
|
32
|
+
|
|
33
|
+
# Architecture Decision Records
|
|
34
|
+
architectural_decisions:
|
|
35
|
+
- id: ADR-001
|
|
36
|
+
title: Event-driven communication between services
|
|
37
|
+
decision: Use an event bus for inter-service communication instead of direct HTTP calls.
|
|
38
|
+
rationale: Reduces coupling and improves resilience when services are unavailable.
|
|
39
|
+
date: "2025-12-01"
|
|
40
|
+
|
|
41
|
+
# Shared memory directory for cross-project context.
|
|
42
|
+
# Agents can read from this directory to understand workspace-wide patterns.
|
|
43
|
+
memory:
|
|
44
|
+
directory: .sniper-workspace/memory
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Per-Story Code Review Checklist
|
|
2
|
-
|
|
3
|
-
Used by QA engineer and team lead to review individual story implementations.
|
|
4
|
-
|
|
5
|
-
## Functionality
|
|
6
|
-
- [ ] All acceptance criteria from the story are implemented
|
|
7
|
-
- [ ] Error cases are handled (not just the happy path)
|
|
8
|
-
- [ ] Edge cases considered (empty input, max values, concurrent access)
|
|
9
|
-
|
|
10
|
-
## Code Quality
|
|
11
|
-
- [ ] Code is readable — another developer can understand it without explanation
|
|
12
|
-
- [ ] No dead code, commented-out code, or TODO items left behind
|
|
13
|
-
- [ ] Functions are focused — each does one thing
|
|
14
|
-
- [ ] Naming is clear and consistent with codebase conventions
|
|
15
|
-
- [ ] No unnecessary complexity — simplest solution that works
|
|
16
|
-
|
|
17
|
-
## Testing
|
|
18
|
-
- [ ] Unit tests cover the public API of new modules
|
|
19
|
-
- [ ] Integration tests verify end-to-end behavior
|
|
20
|
-
- [ ] Tests are deterministic (no timing dependencies, no flakiness)
|
|
21
|
-
- [ ] Test names describe the behavior being tested
|
|
22
|
-
|
|
23
|
-
## Security
|
|
24
|
-
- [ ] User input is validated before processing
|
|
25
|
-
- [ ] SQL queries use parameterized statements
|
|
26
|
-
- [ ] No secrets in code or config
|
|
27
|
-
- [ ] Auth checks in place for protected endpoints
|
|
28
|
-
|
|
29
|
-
## Performance
|
|
30
|
-
- [ ] No N+1 query patterns
|
|
31
|
-
- [ ] Database queries are indexed appropriately
|
|
32
|
-
- [ ] Large datasets use pagination
|
|
33
|
-
- [ ] No blocking operations on the main thread
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Discovery Review Checklist
|
|
2
|
-
|
|
3
|
-
Gate mode: **FLEXIBLE** (auto-advance, async review)
|
|
4
|
-
|
|
5
|
-
## Project Brief (`docs/brief.md`)
|
|
6
|
-
- [ ] Problem statement is specific and evidence-based
|
|
7
|
-
- [ ] At least 3 direct competitors identified with features and pricing
|
|
8
|
-
- [ ] Unique value proposition clearly differentiates from competitors
|
|
9
|
-
- [ ] Target market segment is defined with size estimates
|
|
10
|
-
- [ ] Key assumptions are listed explicitly
|
|
11
|
-
- [ ] Technical constraints are identified
|
|
12
|
-
- [ ] v1 scope recommendation separates in-scope from out-of-scope
|
|
13
|
-
- [ ] Open questions are documented for planning phase
|
|
14
|
-
|
|
15
|
-
## Risk Assessment (`docs/risks.md`)
|
|
16
|
-
- [ ] Technical feasibility risks are identified with specifics
|
|
17
|
-
- [ ] Integration risks are assessed (third-party APIs, services)
|
|
18
|
-
- [ ] Compliance and regulatory risks are documented
|
|
19
|
-
- [ ] Scalability concerns are noted with thresholds
|
|
20
|
-
- [ ] Each risk has a mitigation strategy
|
|
21
|
-
- [ ] Assumptions are challenged — at least 2 devil's advocate findings
|
|
22
|
-
|
|
23
|
-
## User Personas (`docs/personas.md`)
|
|
24
|
-
- [ ] At least 2 distinct user personas defined
|
|
25
|
-
- [ ] Each persona has: role, goals, pain points, workflows
|
|
26
|
-
- [ ] Primary user journey mapped for each persona
|
|
27
|
-
- [ ] Key friction points identified
|
|
28
|
-
- [ ] Personas are realistic (not idealized)
|
|
29
|
-
|
|
30
|
-
## Overall
|
|
31
|
-
- [ ] All three artifacts are internally consistent
|
|
32
|
-
- [ ] No critical contradictions between brief, risks, and personas
|
|
33
|
-
- [ ] Sufficient depth for planning phase to begin
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# Documentation Review Checklist
|
|
2
|
-
|
|
3
|
-
Gate mode: **FLEXIBLE** (auto-advance, async review)
|
|
4
|
-
|
|
5
|
-
## README.md
|
|
6
|
-
- [ ] Has a clear one-line project description
|
|
7
|
-
- [ ] Quick-start instructions use real commands that work from project root
|
|
8
|
-
- [ ] Prerequisites list actual runtime requirements with versions
|
|
9
|
-
- [ ] Features list matches actual project capabilities
|
|
10
|
-
- [ ] Tech stack table is accurate
|
|
11
|
-
- [ ] Project structure tree matches actual directory layout
|
|
12
|
-
- [ ] No placeholder text or unfilled template sections
|
|
13
|
-
|
|
14
|
-
## Setup Guide (`docs/setup.md`)
|
|
15
|
-
- [ ] Installation steps produce a running environment
|
|
16
|
-
- [ ] Environment variables documented with descriptions
|
|
17
|
-
- [ ] Database setup instructions are complete (if applicable)
|
|
18
|
-
- [ ] All referenced scripts and commands exist
|
|
19
|
-
|
|
20
|
-
## Architecture Overview (`docs/architecture.md`)
|
|
21
|
-
- [ ] Component diagram or description matches actual codebase
|
|
22
|
-
- [ ] Data flow description is accurate
|
|
23
|
-
- [ ] Technology choices listed match actual stack
|
|
24
|
-
- [ ] Directory structure matches reality
|
|
25
|
-
|
|
26
|
-
## API Reference (`docs/api.md`)
|
|
27
|
-
- [ ] All public endpoints are documented
|
|
28
|
-
- [ ] Request/response examples use realistic data
|
|
29
|
-
- [ ] Authentication method is accurately described
|
|
30
|
-
- [ ] Error codes match actual API behavior
|
|
31
|
-
|
|
32
|
-
## General Quality
|
|
33
|
-
- [ ] All code examples are syntactically valid
|
|
34
|
-
- [ ] All internal links between docs resolve correctly
|
|
35
|
-
- [ ] Consistent terminology across all documentation
|
|
36
|
-
- [ ] No contradictions between docs
|
|
37
|
-
- [ ] No TODO markers or placeholder text remaining
|
|
38
|
-
- [ ] Managed section tags (`<!-- sniper:managed -->`) are properly formed
|
|
39
|
-
- [ ] Documentation is concise — no filler or marketing language
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# Planning Review Checklist
|
|
2
|
-
|
|
3
|
-
Gate mode: **STRICT** (human MUST approve before Phase 3)
|
|
4
|
-
|
|
5
|
-
## PRD (`docs/prd.md`)
|
|
6
|
-
- [ ] Problem statement includes evidence (not just assertions)
|
|
7
|
-
- [ ] User stories follow "As a [persona], I want, so that" format
|
|
8
|
-
- [ ] P0 requirements are minimal — only what's critical for v1
|
|
9
|
-
- [ ] Every requirement has testable acceptance criteria
|
|
10
|
-
- [ ] Non-functional requirements have specific measurable targets
|
|
11
|
-
- [ ] Success metrics have numbers (not vague "improve X")
|
|
12
|
-
- [ ] Out-of-scope explicitly names features users might expect
|
|
13
|
-
- [ ] No duplicate requirements
|
|
14
|
-
|
|
15
|
-
## Architecture (`docs/architecture.md`)
|
|
16
|
-
- [ ] Every technology choice includes: what, why, alternatives considered
|
|
17
|
-
- [ ] Component diagram shows clear boundaries and interfaces
|
|
18
|
-
- [ ] Data models include field types, constraints, indexes, relationships
|
|
19
|
-
- [ ] API contracts are specific enough for independent frontend/backend implementation
|
|
20
|
-
- [ ] Infrastructure specifies sizing, scaling triggers, cost estimates
|
|
21
|
-
- [ ] Cross-cutting concerns addressed (auth, logging, errors, config)
|
|
22
|
-
- [ ] Non-functional targets have implementation strategies
|
|
23
|
-
- [ ] Security architecture aligns with `docs/security.md`
|
|
24
|
-
|
|
25
|
-
## UX Specification (`docs/ux-spec.md`)
|
|
26
|
-
- [ ] Information architecture maps all pages/views
|
|
27
|
-
- [ ] Screen inventory covers all user-facing screens
|
|
28
|
-
- [ ] User flows include error paths, not just happy paths
|
|
29
|
-
- [ ] Component specs include all states (default, hover, active, disabled, loading, error)
|
|
30
|
-
- [ ] Responsive breakpoints specify actual layout changes
|
|
31
|
-
- [ ] Accessibility requirements name specific WCAG criteria
|
|
32
|
-
- [ ] UX flows align with PRD user stories
|
|
33
|
-
|
|
34
|
-
## Security Requirements (`docs/security.md`)
|
|
35
|
-
- [ ] Authentication model specified (OAuth, JWT, session, etc.)
|
|
36
|
-
- [ ] Authorization model specified (RBAC, ABAC, etc.)
|
|
37
|
-
- [ ] Data encryption strategy covers at-rest and in-transit
|
|
38
|
-
- [ ] Compliance requirements name specific regulations
|
|
39
|
-
- [ ] Threat model identifies top attack vectors
|
|
40
|
-
- [ ] Security testing requirements are defined
|
|
41
|
-
|
|
42
|
-
## Cross-Document Consistency
|
|
43
|
-
- [ ] Architecture API contracts match UX component data needs
|
|
44
|
-
- [ ] Security requirements are implementable within architecture choices
|
|
45
|
-
- [ ] PRD requirements are fully coverable by architecture design
|
|
46
|
-
- [ ] No orphaned requirements (in PRD but not in architecture)
|
|
47
|
-
|
|
48
|
-
## Approval
|
|
49
|
-
**Reviewer:** _______________
|
|
50
|
-
**Date:** _______________
|
|
51
|
-
**Decision:** APPROVED / NEEDS REVISION
|
|
52
|
-
**Feedback:**
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# Sprint Review Checklist
|
|
2
|
-
|
|
3
|
-
Gate mode: **STRICT** (human MUST review code before merge)
|
|
4
|
-
|
|
5
|
-
## Code Quality
|
|
6
|
-
- [ ] All code passes linting (no warnings or errors)
|
|
7
|
-
- [ ] All code passes static type checking (language-appropriate strict mode)
|
|
8
|
-
- [ ] No type escape hatches introduced (e.g. `any` in TS, `Any` in Python, `interface{}` in Go)
|
|
9
|
-
- [ ] No hardcoded secrets, API keys, or credentials
|
|
10
|
-
- [ ] Error handling on all async operations
|
|
11
|
-
- [ ] Follows existing codebase patterns and conventions
|
|
12
|
-
|
|
13
|
-
## Testing
|
|
14
|
-
- [ ] All stories have corresponding tests
|
|
15
|
-
- [ ] Tests pass (0 failures)
|
|
16
|
-
- [ ] Test coverage meets project minimum threshold
|
|
17
|
-
- [ ] Integration tests cover API endpoints
|
|
18
|
-
- [ ] Edge cases and error paths are tested
|
|
19
|
-
- [ ] No flaky tests introduced
|
|
20
|
-
|
|
21
|
-
## Acceptance Criteria
|
|
22
|
-
- [ ] Every acceptance criterion from every sprint story is verified
|
|
23
|
-
- [ ] Deviations from acceptance criteria are documented and justified
|
|
24
|
-
|
|
25
|
-
## Architecture Compliance
|
|
26
|
-
- [ ] Code follows the architecture patterns from `docs/architecture.md`
|
|
27
|
-
- [ ] API contracts match the spec (endpoints, payloads, status codes)
|
|
28
|
-
- [ ] Data models match the schema design
|
|
29
|
-
- [ ] File ownership boundaries respected (no cross-boundary edits)
|
|
30
|
-
|
|
31
|
-
## Security
|
|
32
|
-
- [ ] No new security vulnerabilities introduced (OWASP Top 10)
|
|
33
|
-
- [ ] Input validation on all user-facing endpoints
|
|
34
|
-
- [ ] Authentication and authorization enforced where required
|
|
35
|
-
- [ ] Sensitive data encrypted and handled properly
|
|
36
|
-
|
|
37
|
-
## Approval
|
|
38
|
-
**Reviewer:** _______________
|
|
39
|
-
**Date:** _______________
|
|
40
|
-
**Decision:** APPROVED / NEEDS REVISION
|
|
41
|
-
**Feedback:**
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Story Review Checklist
|
|
2
|
-
|
|
3
|
-
Gate mode: **FLEXIBLE** (auto-advance, async review)
|
|
4
|
-
|
|
5
|
-
## Epic Structure (`docs/epics/*.md`)
|
|
6
|
-
- [ ] Epics number between 6-12 (enough granularity, not too fragmented)
|
|
7
|
-
- [ ] No overlap between epics — each requirement maps to exactly one epic
|
|
8
|
-
- [ ] Epic dependencies form a DAG (no circular dependencies)
|
|
9
|
-
- [ ] Each epic has clear scope boundaries (in/out)
|
|
10
|
-
- [ ] Architecture context is EMBEDDED in each epic, not just referenced
|
|
11
|
-
- [ ] Complexity estimates are realistic
|
|
12
|
-
|
|
13
|
-
## Story Quality (`docs/stories/*.md`)
|
|
14
|
-
- [ ] Each story is self-contained — a developer can implement from the story file alone
|
|
15
|
-
- [ ] PRD context is EMBEDDED (copied), not just referenced
|
|
16
|
-
- [ ] Architecture context is EMBEDDED (data models, API contracts, patterns)
|
|
17
|
-
- [ ] UX context is EMBEDDED for frontend stories
|
|
18
|
-
- [ ] Acceptance criteria use Given/When/Then format
|
|
19
|
-
- [ ] Every acceptance criterion is testable
|
|
20
|
-
- [ ] Test requirements are specified (unit, integration, e2e)
|
|
21
|
-
- [ ] File ownership is assigned (which directories the story touches)
|
|
22
|
-
- [ ] Dependencies on other stories are declared
|
|
23
|
-
- [ ] Complexity estimate (S/M/L/XL) is assigned
|
|
24
|
-
- [ ] No story is XL — if so, it should be split
|
|
25
|
-
|
|
26
|
-
## Coverage
|
|
27
|
-
- [ ] All P0 PRD requirements are covered by stories
|
|
28
|
-
- [ ] All P1 PRD requirements are covered by stories
|
|
29
|
-
- [ ] All architecture components have at least one implementing story
|
|
30
|
-
- [ ] Story dependency chains allow reasonable sprint planning
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# SNIPER Project
|
|
2
|
-
|
|
3
|
-
## Framework
|
|
4
|
-
This project uses SNIPER (Spawn, Navigate, Implement, Parallelize, Evaluate, Release).
|
|
5
|
-
See `.sniper/config.yaml` for project settings.
|
|
6
|
-
|
|
7
|
-
## Quick Reference
|
|
8
|
-
- Framework workflows: `.sniper/workflows/`
|
|
9
|
-
- Persona layers: `.sniper/personas/`
|
|
10
|
-
- Team definitions: `.sniper/teams/`
|
|
11
|
-
- Artifact templates: `.sniper/templates/`
|
|
12
|
-
- Quality gates: `.sniper/checklists/`
|
|
13
|
-
- Project artifacts: `docs/`
|
|
14
|
-
- Domain context: `.sniper/domain-packs/{pack-name}/`
|
|
15
|
-
|
|
16
|
-
## Commands
|
|
17
|
-
- `/sniper-init` — Initialize SNIPER in a new project
|
|
18
|
-
- `/sniper-discover` — Phase 1: Discovery & Analysis (parallel team)
|
|
19
|
-
- `/sniper-plan` — Phase 2: Planning & Architecture (parallel team)
|
|
20
|
-
- `/sniper-solve` — Phase 3: Epic Sharding & Story Creation (sequential)
|
|
21
|
-
- `/sniper-sprint` — Phase 4: Implementation Sprint (parallel team)
|
|
22
|
-
- `/sniper-review` — Run review gate for current phase
|
|
23
|
-
- `/sniper-compose` — Create a spawn prompt from persona layers
|
|
24
|
-
- `/sniper-status` — Show lifecycle status and artifact state
|
|
25
|
-
|
|
26
|
-
## Agent Teams Rules
|
|
27
|
-
When spawning teammates, always:
|
|
28
|
-
1. Read the relevant team YAML from `.sniper/teams/`
|
|
29
|
-
2. Compose spawn prompts using `/sniper-compose` with the layers specified in the YAML
|
|
30
|
-
3. Assign file ownership boundaries from `config.yaml` ownership rules
|
|
31
|
-
4. Create tasks with dependencies from the team YAML
|
|
32
|
-
5. Enter delegate mode (Shift+Tab) — the lead coordinates, it does not code
|
|
33
|
-
6. Require plan approval for tasks marked `plan_approval: true`
|
|
34
|
-
7. When a phase completes, run `/sniper-review` before advancing
|
|
35
|
-
|
|
36
|
-
## Code Standards
|
|
37
|
-
See `.sniper/config.yaml` → stack section for language/framework specifics.
|