@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,23 @@
|
|
|
1
|
+
# Performance-Focused Thinking
|
|
2
|
+
|
|
3
|
+
Apply this cognitive lens to all decisions:
|
|
4
|
+
|
|
5
|
+
## Efficiency-First Evaluation
|
|
6
|
+
|
|
7
|
+
- **Measure before optimizing**: Never guess at bottlenecks. Profile first, optimize second.
|
|
8
|
+
- **Complexity awareness**: Know the Big-O of your data structures and algorithms. O(n^2) is a red flag for any collection that could grow.
|
|
9
|
+
- **Resource consciousness**: Consider memory allocation, network round-trips, and I/O operations as costs.
|
|
10
|
+
|
|
11
|
+
## Performance Checklist
|
|
12
|
+
|
|
13
|
+
When reviewing or writing code, always check:
|
|
14
|
+
1. **N+1 queries** — Is the code making a query per item in a loop? Batch instead.
|
|
15
|
+
2. **Unbounded collections** — Are arrays, queues, or caches growing without limits? Add bounds.
|
|
16
|
+
3. **Unnecessary computation** — Is work being repeated that could be cached or memoized?
|
|
17
|
+
4. **Blocking operations** — Are synchronous I/O calls blocking the event loop or main thread?
|
|
18
|
+
5. **Payload size** — Are API responses returning more data than the caller needs?
|
|
19
|
+
6. **Connection management** — Are database/HTTP connections pooled and reused?
|
|
20
|
+
|
|
21
|
+
## Tradeoff Framework
|
|
22
|
+
|
|
23
|
+
Performance improvements must justify their complexity cost. A 10% speedup that doubles code complexity is rarely worth it. A 10x speedup that adds one line is always worth it.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Security-First Thinking
|
|
2
|
+
|
|
3
|
+
Apply this cognitive lens to all decisions:
|
|
4
|
+
|
|
5
|
+
## Threat-First Decision Framework
|
|
6
|
+
|
|
7
|
+
- **Before implementing**: Ask "How could this be abused?" for every external input, API endpoint, and data flow
|
|
8
|
+
- **Default deny**: Require explicit allowlisting over blocklisting. Reject unknown inputs.
|
|
9
|
+
- **Least privilege**: Request minimum permissions. Scope access to what's needed now, not what might be needed later.
|
|
10
|
+
- **Defense in depth**: Never rely on a single security control. Validate at boundaries AND internally.
|
|
11
|
+
|
|
12
|
+
## Security Evaluation Checklist
|
|
13
|
+
|
|
14
|
+
When reviewing or writing code, always check:
|
|
15
|
+
1. Input validation — Is all external input sanitized before use?
|
|
16
|
+
2. Authentication — Is the caller verified before any action?
|
|
17
|
+
3. Authorization — Does the caller have permission for THIS specific action?
|
|
18
|
+
4. Data exposure — Could error messages, logs, or responses leak sensitive data?
|
|
19
|
+
5. Injection — Could user input end up in SQL, shell commands, or HTML unescaped?
|
|
20
|
+
6. Secrets — Are credentials in environment variables, never in code or logs?
|
|
21
|
+
|
|
22
|
+
## When In Doubt
|
|
23
|
+
|
|
24
|
+
Flag the security concern explicitly rather than making assumptions. A false positive is far cheaper than a vulnerability.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
name: explore
|
|
2
|
+
description: Exploratory analysis — understand a codebase or problem space
|
|
3
|
+
budget: 500000 # 500K tokens
|
|
4
|
+
|
|
5
|
+
phases:
|
|
6
|
+
- name: discover
|
|
7
|
+
description: Research, analyze, and document findings
|
|
8
|
+
agents:
|
|
9
|
+
- analyst
|
|
10
|
+
spawn_strategy: single
|
|
11
|
+
gate:
|
|
12
|
+
checklist: discover
|
|
13
|
+
human_approval: false
|
|
14
|
+
outputs:
|
|
15
|
+
- docs/spec.md
|
|
16
|
+
- docs/codebase-overview.md
|
|
17
|
+
|
|
18
|
+
auto_retro: false # Exploration doesn't need retros
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
name: feature
|
|
2
|
+
description: Incremental feature — plan, implement, review
|
|
3
|
+
budget: 800000 # 800K tokens
|
|
4
|
+
|
|
5
|
+
phases:
|
|
6
|
+
- name: plan
|
|
7
|
+
description: Feature design and story creation
|
|
8
|
+
agents:
|
|
9
|
+
- architect
|
|
10
|
+
- product-manager
|
|
11
|
+
spawn_strategy: team
|
|
12
|
+
gate:
|
|
13
|
+
checklist: plan
|
|
14
|
+
human_approval: true
|
|
15
|
+
outputs:
|
|
16
|
+
- docs/architecture.md
|
|
17
|
+
- docs/prd.md
|
|
18
|
+
- docs/stories/
|
|
19
|
+
|
|
20
|
+
- name: implement
|
|
21
|
+
description: Feature implementation
|
|
22
|
+
agents:
|
|
23
|
+
- fullstack-dev
|
|
24
|
+
- qa-engineer
|
|
25
|
+
spawn_strategy: team
|
|
26
|
+
plan_approval: true
|
|
27
|
+
gate:
|
|
28
|
+
checklist: implement
|
|
29
|
+
human_approval: false
|
|
30
|
+
outputs:
|
|
31
|
+
- source code changes
|
|
32
|
+
- test files
|
|
33
|
+
|
|
34
|
+
- name: review
|
|
35
|
+
description: Code review
|
|
36
|
+
agents:
|
|
37
|
+
- code-reviewer
|
|
38
|
+
spawn_strategy: single
|
|
39
|
+
gate:
|
|
40
|
+
checklist: review
|
|
41
|
+
human_approval: true
|
|
42
|
+
outputs:
|
|
43
|
+
- docs/review-report.md
|
|
44
|
+
|
|
45
|
+
auto_retro: true
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
name: full
|
|
2
|
+
description: Complete project lifecycle — discovery through review
|
|
3
|
+
budget: 2000000 # 2M tokens
|
|
4
|
+
|
|
5
|
+
phases:
|
|
6
|
+
- name: discover
|
|
7
|
+
description: Research, analyze codebase, produce discovery spec
|
|
8
|
+
agents:
|
|
9
|
+
- analyst
|
|
10
|
+
spawn_strategy: single # One agent, no team needed
|
|
11
|
+
gate:
|
|
12
|
+
checklist: discover
|
|
13
|
+
human_approval: false
|
|
14
|
+
outputs:
|
|
15
|
+
- docs/spec.md
|
|
16
|
+
- docs/codebase-overview.md
|
|
17
|
+
|
|
18
|
+
- name: plan
|
|
19
|
+
description: Architecture design, PRD creation, story breakdown
|
|
20
|
+
agents:
|
|
21
|
+
- architect
|
|
22
|
+
- product-manager
|
|
23
|
+
spawn_strategy: team # Multiple agents, use TeamCreate
|
|
24
|
+
coordination:
|
|
25
|
+
- between: [architect, product-manager]
|
|
26
|
+
topic: Architecture must be approved before stories reference it
|
|
27
|
+
gate:
|
|
28
|
+
checklist: plan
|
|
29
|
+
human_approval: true # Human reviews the plan before implementation
|
|
30
|
+
outputs:
|
|
31
|
+
- docs/architecture.md
|
|
32
|
+
- docs/prd.md
|
|
33
|
+
- docs/stories/
|
|
34
|
+
|
|
35
|
+
- name: implement
|
|
36
|
+
description: Code implementation with worktree isolation
|
|
37
|
+
agents:
|
|
38
|
+
- fullstack-dev
|
|
39
|
+
- qa-engineer
|
|
40
|
+
spawn_strategy: team
|
|
41
|
+
plan_approval: true # Each agent must get plan approved before coding
|
|
42
|
+
gate:
|
|
43
|
+
checklist: implement
|
|
44
|
+
human_approval: false
|
|
45
|
+
outputs:
|
|
46
|
+
- source code changes
|
|
47
|
+
- test files
|
|
48
|
+
|
|
49
|
+
- name: review
|
|
50
|
+
description: Code review and final quality gate
|
|
51
|
+
agents:
|
|
52
|
+
- code-reviewer
|
|
53
|
+
spawn_strategy: single
|
|
54
|
+
gate:
|
|
55
|
+
# Uses multi-faceted-review checklist when review.multi_model is enabled in config;
|
|
56
|
+
# otherwise falls back to standard review checklist
|
|
57
|
+
checklist: review
|
|
58
|
+
multi_model_checklist: multi-faceted-review
|
|
59
|
+
human_approval: true # Human final sign-off
|
|
60
|
+
outputs:
|
|
61
|
+
- docs/review-report.md
|
|
62
|
+
|
|
63
|
+
auto_retro: true # Trigger retro-analyst after completion
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name: hotfix
|
|
2
|
+
description: Critical fix — fastest path to production
|
|
3
|
+
budget: 100000 # 100K tokens
|
|
4
|
+
|
|
5
|
+
phases:
|
|
6
|
+
- name: implement
|
|
7
|
+
description: Emergency fix with minimal overhead
|
|
8
|
+
agents:
|
|
9
|
+
- fullstack-dev
|
|
10
|
+
spawn_strategy: single
|
|
11
|
+
plan_approval: false
|
|
12
|
+
gate:
|
|
13
|
+
checklist: implement
|
|
14
|
+
blocking: false
|
|
15
|
+
outputs:
|
|
16
|
+
- source code changes
|
|
17
|
+
- test files
|
|
18
|
+
|
|
19
|
+
auto_retro: false # Hotfixes are too urgent for retros
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
name: ingest
|
|
2
|
+
description: Codebase ingestion — scan, document, extract conventions
|
|
3
|
+
budget: 1000000 # 1M tokens
|
|
4
|
+
|
|
5
|
+
phases:
|
|
6
|
+
- name: scan
|
|
7
|
+
description: Deep scan of existing codebase
|
|
8
|
+
agents:
|
|
9
|
+
- analyst
|
|
10
|
+
spawn_strategy: single
|
|
11
|
+
gate:
|
|
12
|
+
checklist: ingest-scan
|
|
13
|
+
human_approval: false
|
|
14
|
+
outputs:
|
|
15
|
+
- docs/codebase-overview.md
|
|
16
|
+
|
|
17
|
+
- name: document
|
|
18
|
+
description: Generate documentation from code analysis
|
|
19
|
+
agents:
|
|
20
|
+
- analyst
|
|
21
|
+
spawn_strategy: single
|
|
22
|
+
gate:
|
|
23
|
+
checklist: ingest-document
|
|
24
|
+
human_approval: false
|
|
25
|
+
outputs:
|
|
26
|
+
- docs/spec.md
|
|
27
|
+
|
|
28
|
+
- name: extract
|
|
29
|
+
description: Extract conventions, patterns, and anti-patterns
|
|
30
|
+
agents:
|
|
31
|
+
- analyst
|
|
32
|
+
spawn_strategy: single
|
|
33
|
+
gate:
|
|
34
|
+
checklist: ingest-extract
|
|
35
|
+
human_approval: false
|
|
36
|
+
outputs:
|
|
37
|
+
- .sniper/conventions.yaml
|
|
38
|
+
|
|
39
|
+
auto_retro: false
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
name: patch
|
|
2
|
+
description: Quick fix — implement and review only
|
|
3
|
+
budget: 200000 # 200K tokens
|
|
4
|
+
|
|
5
|
+
phases:
|
|
6
|
+
- name: implement
|
|
7
|
+
description: Bug fix or small change
|
|
8
|
+
agents:
|
|
9
|
+
- fullstack-dev
|
|
10
|
+
spawn_strategy: single
|
|
11
|
+
plan_approval: false # Quick fixes skip plan approval
|
|
12
|
+
gate:
|
|
13
|
+
checklist: implement
|
|
14
|
+
human_approval: false
|
|
15
|
+
outputs:
|
|
16
|
+
- source code changes
|
|
17
|
+
- test files
|
|
18
|
+
|
|
19
|
+
- name: review
|
|
20
|
+
description: Code review
|
|
21
|
+
agents:
|
|
22
|
+
- code-reviewer
|
|
23
|
+
spawn_strategy: single
|
|
24
|
+
gate:
|
|
25
|
+
checklist: review
|
|
26
|
+
human_approval: true
|
|
27
|
+
outputs:
|
|
28
|
+
- docs/review-report.md
|
|
29
|
+
|
|
30
|
+
auto_retro: false # Patches are too small for retros
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: refactor
|
|
2
|
+
description: Code improvement — analyze, refactor, and review
|
|
3
|
+
budget: 600000 # 600K tokens
|
|
4
|
+
|
|
5
|
+
phases:
|
|
6
|
+
- name: analyze
|
|
7
|
+
description: Analyze code structure and identify refactoring targets
|
|
8
|
+
agents:
|
|
9
|
+
- analyst
|
|
10
|
+
spawn_strategy: single
|
|
11
|
+
gate:
|
|
12
|
+
checklist: refactor-analyze
|
|
13
|
+
human_approval: false
|
|
14
|
+
outputs:
|
|
15
|
+
- docs/spec.md
|
|
16
|
+
|
|
17
|
+
- name: implement
|
|
18
|
+
description: Apply refactoring changes
|
|
19
|
+
agents:
|
|
20
|
+
- fullstack-dev
|
|
21
|
+
spawn_strategy: single
|
|
22
|
+
plan_approval: false
|
|
23
|
+
gate:
|
|
24
|
+
checklist: implement
|
|
25
|
+
human_approval: false
|
|
26
|
+
outputs:
|
|
27
|
+
- source code changes
|
|
28
|
+
- test files
|
|
29
|
+
|
|
30
|
+
- name: review
|
|
31
|
+
description: Review refactored code
|
|
32
|
+
agents:
|
|
33
|
+
- code-reviewer
|
|
34
|
+
spawn_strategy: single
|
|
35
|
+
gate:
|
|
36
|
+
checklist: review
|
|
37
|
+
human_approval: true
|
|
38
|
+
outputs:
|
|
39
|
+
- docs/review-report.md
|
|
40
|
+
|
|
41
|
+
auto_retro: true
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
$schema: "https://json-schema.org/draft/2020-12/schema"
|
|
2
|
+
$id: "https://sniper.ai/schemas/checkpoint"
|
|
3
|
+
title: Phase Checkpoint
|
|
4
|
+
description: Schema for SNIPER phase checkpoint files that track progress through lifecycle phases.
|
|
5
|
+
type: object
|
|
6
|
+
required:
|
|
7
|
+
- protocol
|
|
8
|
+
- phase
|
|
9
|
+
- timestamp
|
|
10
|
+
- status
|
|
11
|
+
properties:
|
|
12
|
+
protocol:
|
|
13
|
+
type: string
|
|
14
|
+
description: The SNIPER protocol version identifier.
|
|
15
|
+
phase:
|
|
16
|
+
type: string
|
|
17
|
+
description: The lifecycle phase this checkpoint belongs to (e.g. discover, plan, implement, review).
|
|
18
|
+
timestamp:
|
|
19
|
+
type: string
|
|
20
|
+
format: date-time
|
|
21
|
+
description: ISO 8601 timestamp of when this checkpoint was recorded.
|
|
22
|
+
status:
|
|
23
|
+
type: string
|
|
24
|
+
enum:
|
|
25
|
+
- in_progress
|
|
26
|
+
- completed
|
|
27
|
+
- failed
|
|
28
|
+
description: Current status of the phase.
|
|
29
|
+
agents:
|
|
30
|
+
type: array
|
|
31
|
+
description: List of agents participating in this phase.
|
|
32
|
+
items:
|
|
33
|
+
type: object
|
|
34
|
+
required:
|
|
35
|
+
- name
|
|
36
|
+
- status
|
|
37
|
+
- tasks_completed
|
|
38
|
+
- tasks_total
|
|
39
|
+
properties:
|
|
40
|
+
name:
|
|
41
|
+
type: string
|
|
42
|
+
description: Agent persona name.
|
|
43
|
+
status:
|
|
44
|
+
type: string
|
|
45
|
+
enum:
|
|
46
|
+
- active
|
|
47
|
+
- completed
|
|
48
|
+
- failed
|
|
49
|
+
description: Current status of the agent.
|
|
50
|
+
tasks_completed:
|
|
51
|
+
type: integer
|
|
52
|
+
minimum: 0
|
|
53
|
+
description: Number of tasks the agent has completed.
|
|
54
|
+
tasks_total:
|
|
55
|
+
type: integer
|
|
56
|
+
minimum: 0
|
|
57
|
+
description: Total number of tasks assigned to the agent.
|
|
58
|
+
gate_result:
|
|
59
|
+
oneOf:
|
|
60
|
+
- type: "null"
|
|
61
|
+
- type: object
|
|
62
|
+
required:
|
|
63
|
+
- result
|
|
64
|
+
- blocking_failures
|
|
65
|
+
properties:
|
|
66
|
+
result:
|
|
67
|
+
type: string
|
|
68
|
+
enum:
|
|
69
|
+
- pass
|
|
70
|
+
- fail
|
|
71
|
+
description: Overall gate review result.
|
|
72
|
+
blocking_failures:
|
|
73
|
+
type: integer
|
|
74
|
+
minimum: 0
|
|
75
|
+
description: Number of blocking check failures.
|
|
76
|
+
description: Gate review result, or null if the gate has not been run yet.
|
|
77
|
+
artifacts_produced:
|
|
78
|
+
type: array
|
|
79
|
+
description: List of artifacts produced during this phase.
|
|
80
|
+
items:
|
|
81
|
+
type: object
|
|
82
|
+
required:
|
|
83
|
+
- path
|
|
84
|
+
- status
|
|
85
|
+
properties:
|
|
86
|
+
path:
|
|
87
|
+
type: string
|
|
88
|
+
description: File path of the produced artifact.
|
|
89
|
+
status:
|
|
90
|
+
type: string
|
|
91
|
+
enum:
|
|
92
|
+
- draft
|
|
93
|
+
- complete
|
|
94
|
+
description: Whether the artifact is a draft or complete.
|
|
95
|
+
token_usage:
|
|
96
|
+
type: object
|
|
97
|
+
description: Token consumption metrics for this phase.
|
|
98
|
+
properties:
|
|
99
|
+
phase_tokens:
|
|
100
|
+
type: integer
|
|
101
|
+
minimum: 0
|
|
102
|
+
description: Tokens consumed during this phase.
|
|
103
|
+
cumulative_tokens:
|
|
104
|
+
type: integer
|
|
105
|
+
minimum: 0
|
|
106
|
+
description: Total tokens consumed across all phases up to and including this one.
|
|
107
|
+
budget_remaining:
|
|
108
|
+
type: number
|
|
109
|
+
minimum: 0
|
|
110
|
+
description: Remaining token budget.
|
|
111
|
+
commits:
|
|
112
|
+
type: array
|
|
113
|
+
description: Git commits made during this phase, used for logical revert.
|
|
114
|
+
items:
|
|
115
|
+
type: object
|
|
116
|
+
required:
|
|
117
|
+
- sha
|
|
118
|
+
- message
|
|
119
|
+
- agent
|
|
120
|
+
properties:
|
|
121
|
+
sha:
|
|
122
|
+
type: string
|
|
123
|
+
description: Git commit SHA.
|
|
124
|
+
message:
|
|
125
|
+
type: string
|
|
126
|
+
description: Commit message.
|
|
127
|
+
agent:
|
|
128
|
+
type: string
|
|
129
|
+
description: Agent that produced this commit.
|
|
130
|
+
notes:
|
|
131
|
+
type: string
|
|
132
|
+
description: Free-form notes about the checkpoint.
|
|
133
|
+
additionalProperties: false
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
$schema: "https://json-schema.org/draft/2020-12/schema"
|
|
2
|
+
$id: "https://sniper.ai/schemas/cost"
|
|
3
|
+
title: Cost Tracking
|
|
4
|
+
description: Schema for SNIPER cost tracking that monitors token usage and budget across phases.
|
|
5
|
+
type: object
|
|
6
|
+
required:
|
|
7
|
+
- protocol
|
|
8
|
+
- started_at
|
|
9
|
+
- budget
|
|
10
|
+
properties:
|
|
11
|
+
protocol:
|
|
12
|
+
type: string
|
|
13
|
+
description: The SNIPER protocol version identifier.
|
|
14
|
+
started_at:
|
|
15
|
+
type: string
|
|
16
|
+
format: date-time
|
|
17
|
+
description: ISO 8601 timestamp of when cost tracking began.
|
|
18
|
+
budget:
|
|
19
|
+
type: number
|
|
20
|
+
minimum: 0
|
|
21
|
+
description: Total token budget allocated for the project.
|
|
22
|
+
phases:
|
|
23
|
+
type: array
|
|
24
|
+
description: Per-phase cost breakdown.
|
|
25
|
+
items:
|
|
26
|
+
type: object
|
|
27
|
+
required:
|
|
28
|
+
- name
|
|
29
|
+
properties:
|
|
30
|
+
name:
|
|
31
|
+
type: string
|
|
32
|
+
description: Phase name (e.g. discover, plan, implement, review).
|
|
33
|
+
started_at:
|
|
34
|
+
type: string
|
|
35
|
+
format: date-time
|
|
36
|
+
description: ISO 8601 timestamp of when this phase started.
|
|
37
|
+
completed_at:
|
|
38
|
+
type: string
|
|
39
|
+
format: date-time
|
|
40
|
+
description: ISO 8601 timestamp of when this phase completed.
|
|
41
|
+
tokens_used:
|
|
42
|
+
type: integer
|
|
43
|
+
minimum: 0
|
|
44
|
+
description: Total tokens consumed during this phase.
|
|
45
|
+
agents:
|
|
46
|
+
type: array
|
|
47
|
+
description: Per-agent cost breakdown within this phase.
|
|
48
|
+
items:
|
|
49
|
+
type: object
|
|
50
|
+
required:
|
|
51
|
+
- name
|
|
52
|
+
- tokens_used
|
|
53
|
+
properties:
|
|
54
|
+
name:
|
|
55
|
+
type: string
|
|
56
|
+
description: Agent persona name.
|
|
57
|
+
tokens_used:
|
|
58
|
+
type: integer
|
|
59
|
+
minimum: 0
|
|
60
|
+
description: Tokens consumed by this agent.
|
|
61
|
+
totals:
|
|
62
|
+
type: object
|
|
63
|
+
description: Aggregate cost totals.
|
|
64
|
+
properties:
|
|
65
|
+
tokens_used:
|
|
66
|
+
type: integer
|
|
67
|
+
minimum: 0
|
|
68
|
+
description: Total tokens consumed across all phases.
|
|
69
|
+
budget_remaining:
|
|
70
|
+
type: number
|
|
71
|
+
minimum: 0
|
|
72
|
+
description: Remaining token budget.
|
|
73
|
+
budget_percent_used:
|
|
74
|
+
type: number
|
|
75
|
+
minimum: 0
|
|
76
|
+
maximum: 100
|
|
77
|
+
description: Percentage of budget consumed.
|
|
78
|
+
enforcement:
|
|
79
|
+
type: object
|
|
80
|
+
description: Budget enforcement thresholds expressed as fractions of the total budget.
|
|
81
|
+
properties:
|
|
82
|
+
warn_threshold:
|
|
83
|
+
type: number
|
|
84
|
+
minimum: 0
|
|
85
|
+
maximum: 1
|
|
86
|
+
description: Fraction of budget at which a warning is issued.
|
|
87
|
+
soft_cap:
|
|
88
|
+
type: number
|
|
89
|
+
minimum: 0
|
|
90
|
+
maximum: 1
|
|
91
|
+
description: Fraction of budget at which soft enforcement begins (e.g. require confirmation).
|
|
92
|
+
hard_cap:
|
|
93
|
+
type: number
|
|
94
|
+
minimum: 0
|
|
95
|
+
maximum: 1
|
|
96
|
+
description: Fraction of budget at which execution is halted.
|
|
97
|
+
additionalProperties: false
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
$schema: "https://json-schema.org/draft/2020-12/schema"
|
|
2
|
+
$id: "https://sniper.ai/schemas/dependency-graph"
|
|
3
|
+
title: Cross-Project Dependency Graph
|
|
4
|
+
description: Schema for tracking API dependencies between projects in a SNIPER workspace.
|
|
5
|
+
type: object
|
|
6
|
+
required:
|
|
7
|
+
- projects
|
|
8
|
+
properties:
|
|
9
|
+
projects:
|
|
10
|
+
type: array
|
|
11
|
+
items:
|
|
12
|
+
type: object
|
|
13
|
+
required: [name, exports, imports]
|
|
14
|
+
properties:
|
|
15
|
+
name:
|
|
16
|
+
type: string
|
|
17
|
+
exports:
|
|
18
|
+
type: array
|
|
19
|
+
items:
|
|
20
|
+
type: object
|
|
21
|
+
required: [api, file]
|
|
22
|
+
properties:
|
|
23
|
+
api: { type: string, description: "API endpoint or export name" }
|
|
24
|
+
file: { type: string, description: "Source file path" }
|
|
25
|
+
version: { type: string }
|
|
26
|
+
imports:
|
|
27
|
+
type: array
|
|
28
|
+
items:
|
|
29
|
+
type: object
|
|
30
|
+
required: [api, from_project]
|
|
31
|
+
properties:
|
|
32
|
+
api: { type: string }
|
|
33
|
+
from_project: { type: string }
|
|
34
|
+
updated_at:
|
|
35
|
+
type: string
|
|
36
|
+
format: date-time
|
|
37
|
+
additionalProperties: false
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
$schema: "https://json-schema.org/draft/2020-12/schema"
|
|
2
|
+
$id: "https://sniper.ai/schemas/gate-result"
|
|
3
|
+
title: Gate Result
|
|
4
|
+
description: Schema for SNIPER gate review results that determine whether a phase passes its quality gate.
|
|
5
|
+
type: object
|
|
6
|
+
required:
|
|
7
|
+
- gate
|
|
8
|
+
- timestamp
|
|
9
|
+
- result
|
|
10
|
+
- blocking_failures
|
|
11
|
+
- total_checks
|
|
12
|
+
properties:
|
|
13
|
+
gate:
|
|
14
|
+
type: string
|
|
15
|
+
description: The phase name this gate review applies to.
|
|
16
|
+
timestamp:
|
|
17
|
+
type: string
|
|
18
|
+
format: date-time
|
|
19
|
+
description: ISO 8601 timestamp of when the gate review was performed.
|
|
20
|
+
result:
|
|
21
|
+
type: string
|
|
22
|
+
enum:
|
|
23
|
+
- pass
|
|
24
|
+
- fail
|
|
25
|
+
description: Overall gate review result.
|
|
26
|
+
checks:
|
|
27
|
+
type: array
|
|
28
|
+
description: Individual check results that make up the gate review.
|
|
29
|
+
items:
|
|
30
|
+
type: object
|
|
31
|
+
required:
|
|
32
|
+
- id
|
|
33
|
+
- status
|
|
34
|
+
- blocking
|
|
35
|
+
- output
|
|
36
|
+
properties:
|
|
37
|
+
id:
|
|
38
|
+
type: string
|
|
39
|
+
description: Unique identifier for this check.
|
|
40
|
+
status:
|
|
41
|
+
type: string
|
|
42
|
+
enum:
|
|
43
|
+
- pass
|
|
44
|
+
- fail
|
|
45
|
+
description: Whether this individual check passed or failed.
|
|
46
|
+
blocking:
|
|
47
|
+
type: boolean
|
|
48
|
+
description: Whether this check is a blocking check (failure prevents gate pass).
|
|
49
|
+
output:
|
|
50
|
+
type: string
|
|
51
|
+
description: Descriptive output or message from the check.
|
|
52
|
+
blocking_failures:
|
|
53
|
+
type: integer
|
|
54
|
+
minimum: 0
|
|
55
|
+
description: Number of blocking checks that failed.
|
|
56
|
+
total_checks:
|
|
57
|
+
type: integer
|
|
58
|
+
minimum: 0
|
|
59
|
+
description: Total number of checks that were evaluated.
|
|
60
|
+
model_results:
|
|
61
|
+
type: array
|
|
62
|
+
description: Individual model assessments when multi-model review is enabled.
|
|
63
|
+
items:
|
|
64
|
+
type: object
|
|
65
|
+
required:
|
|
66
|
+
- model
|
|
67
|
+
- result
|
|
68
|
+
- timestamp
|
|
69
|
+
properties:
|
|
70
|
+
model:
|
|
71
|
+
type: string
|
|
72
|
+
description: Model identifier used for this assessment.
|
|
73
|
+
result:
|
|
74
|
+
type: string
|
|
75
|
+
enum:
|
|
76
|
+
- pass
|
|
77
|
+
- fail
|
|
78
|
+
description: This model's gate result.
|
|
79
|
+
checks:
|
|
80
|
+
type: array
|
|
81
|
+
description: Check results from this model's assessment.
|
|
82
|
+
items:
|
|
83
|
+
type: object
|
|
84
|
+
properties:
|
|
85
|
+
id:
|
|
86
|
+
type: string
|
|
87
|
+
status:
|
|
88
|
+
type: string
|
|
89
|
+
enum:
|
|
90
|
+
- pass
|
|
91
|
+
- fail
|
|
92
|
+
output:
|
|
93
|
+
type: string
|
|
94
|
+
timestamp:
|
|
95
|
+
type: string
|
|
96
|
+
format: date-time
|
|
97
|
+
description: When this model's assessment was performed.
|
|
98
|
+
consensus:
|
|
99
|
+
type: boolean
|
|
100
|
+
description: Whether all models agreed on the result. Only present when multi-model review is enabled.
|
|
101
|
+
additionalProperties: false
|