@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,39 @@
|
|
|
1
|
+
$schema: "https://json-schema.org/draft/2020-12/schema"
|
|
2
|
+
$id: "https://sniper.ai/schemas/knowledge-manifest"
|
|
3
|
+
title: Knowledge Manifest
|
|
4
|
+
description: Schema for SNIPER knowledge manifest files that declare domain knowledge sources available to agents.
|
|
5
|
+
type: object
|
|
6
|
+
required:
|
|
7
|
+
- sources
|
|
8
|
+
properties:
|
|
9
|
+
sources:
|
|
10
|
+
type: array
|
|
11
|
+
description: List of domain knowledge sources available for agent injection.
|
|
12
|
+
minItems: 1
|
|
13
|
+
items:
|
|
14
|
+
type: object
|
|
15
|
+
required:
|
|
16
|
+
- topic
|
|
17
|
+
- file
|
|
18
|
+
- tokens
|
|
19
|
+
properties:
|
|
20
|
+
topic:
|
|
21
|
+
type: string
|
|
22
|
+
description: Short identifier for the knowledge domain (e.g. telephony, compliance, crm).
|
|
23
|
+
file:
|
|
24
|
+
type: string
|
|
25
|
+
description: Path to the knowledge file, relative to .sniper/knowledge/.
|
|
26
|
+
tokens:
|
|
27
|
+
type: integer
|
|
28
|
+
minimum: 1
|
|
29
|
+
description: Estimated token count of the knowledge file, used for budget planning.
|
|
30
|
+
tags:
|
|
31
|
+
type: array
|
|
32
|
+
description: Searchable tags for matching knowledge to agent context.
|
|
33
|
+
items:
|
|
34
|
+
type: string
|
|
35
|
+
description:
|
|
36
|
+
type: string
|
|
37
|
+
description: Human-readable summary of what this knowledge source covers.
|
|
38
|
+
additionalProperties: false
|
|
39
|
+
additionalProperties: false
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
$schema: "https://json-schema.org/draft/2020-12/schema"
|
|
2
|
+
$id: "https://sniper.ai/schemas/live-status"
|
|
3
|
+
title: Live Status
|
|
4
|
+
description: Schema for SNIPER real-time progress tracking across the project lifecycle.
|
|
5
|
+
type: object
|
|
6
|
+
required:
|
|
7
|
+
- protocol
|
|
8
|
+
- status
|
|
9
|
+
properties:
|
|
10
|
+
protocol:
|
|
11
|
+
type: string
|
|
12
|
+
description: The SNIPER protocol version identifier.
|
|
13
|
+
status:
|
|
14
|
+
type: string
|
|
15
|
+
enum:
|
|
16
|
+
- idle
|
|
17
|
+
- running
|
|
18
|
+
- paused
|
|
19
|
+
- completed
|
|
20
|
+
- failed
|
|
21
|
+
description: Overall lifecycle execution status.
|
|
22
|
+
current_phase:
|
|
23
|
+
type: string
|
|
24
|
+
description: The phase currently being executed.
|
|
25
|
+
started_at:
|
|
26
|
+
type: string
|
|
27
|
+
format: date-time
|
|
28
|
+
description: ISO 8601 timestamp of when the lifecycle run started.
|
|
29
|
+
updated_at:
|
|
30
|
+
type: string
|
|
31
|
+
format: date-time
|
|
32
|
+
description: ISO 8601 timestamp of the most recent status update.
|
|
33
|
+
phases:
|
|
34
|
+
type: array
|
|
35
|
+
description: Per-phase status and progress.
|
|
36
|
+
items:
|
|
37
|
+
type: object
|
|
38
|
+
required:
|
|
39
|
+
- name
|
|
40
|
+
- status
|
|
41
|
+
- progress
|
|
42
|
+
properties:
|
|
43
|
+
name:
|
|
44
|
+
type: string
|
|
45
|
+
description: Phase name.
|
|
46
|
+
status:
|
|
47
|
+
type: string
|
|
48
|
+
enum:
|
|
49
|
+
- pending
|
|
50
|
+
- running
|
|
51
|
+
- paused
|
|
52
|
+
- completed
|
|
53
|
+
- failed
|
|
54
|
+
description: Current status of this phase.
|
|
55
|
+
agents:
|
|
56
|
+
type: array
|
|
57
|
+
description: Agents active in this phase.
|
|
58
|
+
items:
|
|
59
|
+
type: object
|
|
60
|
+
required:
|
|
61
|
+
- name
|
|
62
|
+
- status
|
|
63
|
+
properties:
|
|
64
|
+
name:
|
|
65
|
+
type: string
|
|
66
|
+
description: Agent persona name.
|
|
67
|
+
status:
|
|
68
|
+
type: string
|
|
69
|
+
enum:
|
|
70
|
+
- active
|
|
71
|
+
- completed
|
|
72
|
+
- failed
|
|
73
|
+
description: Current status of the agent.
|
|
74
|
+
progress:
|
|
75
|
+
type: number
|
|
76
|
+
minimum: 0
|
|
77
|
+
maximum: 100
|
|
78
|
+
description: Phase completion percentage.
|
|
79
|
+
gate_results:
|
|
80
|
+
type: array
|
|
81
|
+
description: Results from completed gate reviews.
|
|
82
|
+
items:
|
|
83
|
+
type: object
|
|
84
|
+
required:
|
|
85
|
+
- phase
|
|
86
|
+
- result
|
|
87
|
+
- timestamp
|
|
88
|
+
properties:
|
|
89
|
+
phase:
|
|
90
|
+
type: string
|
|
91
|
+
description: Phase that was reviewed.
|
|
92
|
+
result:
|
|
93
|
+
type: string
|
|
94
|
+
enum:
|
|
95
|
+
- pass
|
|
96
|
+
- fail
|
|
97
|
+
description: Gate review outcome.
|
|
98
|
+
timestamp:
|
|
99
|
+
type: string
|
|
100
|
+
format: date-time
|
|
101
|
+
description: ISO 8601 timestamp of when the gate review completed.
|
|
102
|
+
cost:
|
|
103
|
+
type: object
|
|
104
|
+
description: Current cost snapshot.
|
|
105
|
+
properties:
|
|
106
|
+
tokens_used:
|
|
107
|
+
type: integer
|
|
108
|
+
minimum: 0
|
|
109
|
+
description: Total tokens consumed so far.
|
|
110
|
+
budget:
|
|
111
|
+
type: number
|
|
112
|
+
minimum: 0
|
|
113
|
+
description: Total token budget.
|
|
114
|
+
percent:
|
|
115
|
+
type: number
|
|
116
|
+
minimum: 0
|
|
117
|
+
maximum: 100
|
|
118
|
+
description: Percentage of budget consumed.
|
|
119
|
+
next_action:
|
|
120
|
+
type: string
|
|
121
|
+
description: Description of the next expected action or step.
|
|
122
|
+
additionalProperties: false
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
$schema: "https://json-schema.org/draft/2020-12/schema"
|
|
2
|
+
$id: "https://sniper.ai/schemas/protocol"
|
|
3
|
+
title: SNIPER Protocol
|
|
4
|
+
description: Schema for SNIPER protocol definition files that define lifecycle phase sequences.
|
|
5
|
+
type: object
|
|
6
|
+
required:
|
|
7
|
+
- name
|
|
8
|
+
- description
|
|
9
|
+
- budget
|
|
10
|
+
- phases
|
|
11
|
+
properties:
|
|
12
|
+
name:
|
|
13
|
+
type: string
|
|
14
|
+
description: Unique protocol identifier (e.g. full, feature, patch, hotfix).
|
|
15
|
+
description:
|
|
16
|
+
type: string
|
|
17
|
+
description: Human-readable description of the protocol's purpose.
|
|
18
|
+
budget:
|
|
19
|
+
type: integer
|
|
20
|
+
minimum: 1
|
|
21
|
+
description: Maximum token budget for the entire protocol execution.
|
|
22
|
+
phases:
|
|
23
|
+
type: array
|
|
24
|
+
minItems: 1
|
|
25
|
+
description: Ordered list of phases that compose this protocol.
|
|
26
|
+
items:
|
|
27
|
+
type: object
|
|
28
|
+
required:
|
|
29
|
+
- name
|
|
30
|
+
- description
|
|
31
|
+
- agents
|
|
32
|
+
- spawn_strategy
|
|
33
|
+
properties:
|
|
34
|
+
name:
|
|
35
|
+
type: string
|
|
36
|
+
description: Phase identifier (e.g. discover, plan, implement, review).
|
|
37
|
+
description:
|
|
38
|
+
type: string
|
|
39
|
+
description: Human-readable description of what this phase accomplishes.
|
|
40
|
+
agents:
|
|
41
|
+
type: array
|
|
42
|
+
minItems: 1
|
|
43
|
+
items:
|
|
44
|
+
type: string
|
|
45
|
+
description: Agent personas assigned to this phase.
|
|
46
|
+
spawn_strategy:
|
|
47
|
+
type: string
|
|
48
|
+
enum:
|
|
49
|
+
- single
|
|
50
|
+
- team
|
|
51
|
+
description: Whether to spawn a single agent or a coordinated team.
|
|
52
|
+
gate:
|
|
53
|
+
type: object
|
|
54
|
+
properties:
|
|
55
|
+
checklist:
|
|
56
|
+
type: string
|
|
57
|
+
description: Name of the checklist to evaluate at the gate.
|
|
58
|
+
human_approval:
|
|
59
|
+
type: boolean
|
|
60
|
+
description: Whether a human must approve the gate before proceeding.
|
|
61
|
+
multi_model_checklist:
|
|
62
|
+
type: string
|
|
63
|
+
description: Checklist to use for multi-model review (optional).
|
|
64
|
+
required:
|
|
65
|
+
- checklist
|
|
66
|
+
- human_approval
|
|
67
|
+
additionalProperties: false
|
|
68
|
+
description: Quality gate configuration for this phase.
|
|
69
|
+
outputs:
|
|
70
|
+
type: array
|
|
71
|
+
items:
|
|
72
|
+
type: string
|
|
73
|
+
description: Expected artifacts produced by this phase.
|
|
74
|
+
plan_approval:
|
|
75
|
+
type: boolean
|
|
76
|
+
description: Whether agents must get their plan approved before executing.
|
|
77
|
+
coordination:
|
|
78
|
+
type: array
|
|
79
|
+
description: Inter-agent coordination constraints for team phases.
|
|
80
|
+
items:
|
|
81
|
+
type: object
|
|
82
|
+
required:
|
|
83
|
+
- between
|
|
84
|
+
- topic
|
|
85
|
+
properties:
|
|
86
|
+
between:
|
|
87
|
+
type: array
|
|
88
|
+
minItems: 2
|
|
89
|
+
items:
|
|
90
|
+
type: string
|
|
91
|
+
description: Agent personas that must coordinate.
|
|
92
|
+
topic:
|
|
93
|
+
type: string
|
|
94
|
+
description: Description of the coordination requirement.
|
|
95
|
+
additionalProperties: false
|
|
96
|
+
additionalProperties: false
|
|
97
|
+
auto_retro:
|
|
98
|
+
type: boolean
|
|
99
|
+
description: Whether to trigger the retro-analyst after protocol completion.
|
|
100
|
+
additionalProperties: false
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
$schema: "https://json-schema.org/draft/2020-12/schema"
|
|
2
|
+
$id: "https://sniper.ai/schemas/retro"
|
|
3
|
+
title: Retrospective Report
|
|
4
|
+
description: Schema for SNIPER retrospective reports generated after a lifecycle run completes.
|
|
5
|
+
type: object
|
|
6
|
+
required:
|
|
7
|
+
- protocol
|
|
8
|
+
- completed_at
|
|
9
|
+
properties:
|
|
10
|
+
protocol:
|
|
11
|
+
type: string
|
|
12
|
+
description: The SNIPER protocol version identifier.
|
|
13
|
+
completed_at:
|
|
14
|
+
type: string
|
|
15
|
+
format: date-time
|
|
16
|
+
description: ISO 8601 timestamp of when the lifecycle run completed.
|
|
17
|
+
duration_phases:
|
|
18
|
+
type: array
|
|
19
|
+
description: Per-phase duration and execution summary.
|
|
20
|
+
items:
|
|
21
|
+
type: object
|
|
22
|
+
required:
|
|
23
|
+
- phase
|
|
24
|
+
- agents
|
|
25
|
+
- gate_attempts
|
|
26
|
+
- gate_result
|
|
27
|
+
properties:
|
|
28
|
+
phase:
|
|
29
|
+
type: string
|
|
30
|
+
description: Phase name.
|
|
31
|
+
agents:
|
|
32
|
+
type: integer
|
|
33
|
+
minimum: 0
|
|
34
|
+
description: Number of agents that participated in this phase.
|
|
35
|
+
gate_attempts:
|
|
36
|
+
type: integer
|
|
37
|
+
minimum: 0
|
|
38
|
+
description: Number of times the gate review was attempted.
|
|
39
|
+
gate_result:
|
|
40
|
+
type: string
|
|
41
|
+
enum:
|
|
42
|
+
- pass
|
|
43
|
+
- fail
|
|
44
|
+
description: Final gate review outcome for this phase.
|
|
45
|
+
metrics:
|
|
46
|
+
type: object
|
|
47
|
+
description: Aggregate metrics for the entire lifecycle run.
|
|
48
|
+
properties:
|
|
49
|
+
total_tokens:
|
|
50
|
+
type: integer
|
|
51
|
+
minimum: 0
|
|
52
|
+
description: Total tokens consumed across all phases.
|
|
53
|
+
total_agents_spawned:
|
|
54
|
+
type: integer
|
|
55
|
+
minimum: 0
|
|
56
|
+
description: Total number of agents spawned across all phases.
|
|
57
|
+
gate_pass_rate:
|
|
58
|
+
type: number
|
|
59
|
+
minimum: 0
|
|
60
|
+
maximum: 1
|
|
61
|
+
description: Fraction of gate reviews that passed on the first attempt.
|
|
62
|
+
findings:
|
|
63
|
+
type: object
|
|
64
|
+
description: Retrospective findings and action items.
|
|
65
|
+
properties:
|
|
66
|
+
went_well:
|
|
67
|
+
type: array
|
|
68
|
+
description: Things that went well during the lifecycle run.
|
|
69
|
+
items:
|
|
70
|
+
type: string
|
|
71
|
+
needs_improvement:
|
|
72
|
+
type: array
|
|
73
|
+
description: Areas that need improvement.
|
|
74
|
+
items:
|
|
75
|
+
type: string
|
|
76
|
+
action_items:
|
|
77
|
+
type: array
|
|
78
|
+
description: Concrete action items for future runs.
|
|
79
|
+
items:
|
|
80
|
+
type: string
|
|
81
|
+
velocity:
|
|
82
|
+
type: object
|
|
83
|
+
description: Velocity metrics for this execution, used for budget calibration.
|
|
84
|
+
properties:
|
|
85
|
+
wall_clock_seconds:
|
|
86
|
+
type: number
|
|
87
|
+
minimum: 0
|
|
88
|
+
description: Total wall clock time for the protocol execution in seconds.
|
|
89
|
+
tokens_per_phase:
|
|
90
|
+
type: object
|
|
91
|
+
description: Token usage broken down by phase name.
|
|
92
|
+
additionalProperties:
|
|
93
|
+
type: integer
|
|
94
|
+
minimum: 0
|
|
95
|
+
additionalProperties: false
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
$schema: "https://json-schema.org/draft/2020-12/schema"
|
|
2
|
+
$id: "https://sniper.ai/schemas/revert-plan"
|
|
3
|
+
title: Revert Plan
|
|
4
|
+
description: Schema for SNIPER logical revert plans that track which commits to revert.
|
|
5
|
+
type: object
|
|
6
|
+
required:
|
|
7
|
+
- protocol
|
|
8
|
+
- commits_to_revert
|
|
9
|
+
- backup_branch
|
|
10
|
+
- target_state
|
|
11
|
+
properties:
|
|
12
|
+
protocol:
|
|
13
|
+
type: string
|
|
14
|
+
description: Protocol ID being reverted.
|
|
15
|
+
phase:
|
|
16
|
+
type: string
|
|
17
|
+
description: Optional specific phase being reverted.
|
|
18
|
+
commits_to_revert:
|
|
19
|
+
type: array
|
|
20
|
+
items:
|
|
21
|
+
type: object
|
|
22
|
+
required: [sha, message, agent]
|
|
23
|
+
properties:
|
|
24
|
+
sha: { type: string }
|
|
25
|
+
message: { type: string }
|
|
26
|
+
agent: { type: string }
|
|
27
|
+
description: Commits to revert in reverse chronological order.
|
|
28
|
+
backup_branch:
|
|
29
|
+
type: string
|
|
30
|
+
description: Branch name for backup before revert.
|
|
31
|
+
target_state:
|
|
32
|
+
type: string
|
|
33
|
+
description: Description of the target state after revert.
|
|
34
|
+
created_at:
|
|
35
|
+
type: string
|
|
36
|
+
format: date-time
|
|
37
|
+
dry_run:
|
|
38
|
+
type: boolean
|
|
39
|
+
description: Whether this was a dry run only.
|
|
40
|
+
additionalProperties: false
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
$schema: "https://json-schema.org/draft/2020-12/schema"
|
|
2
|
+
$id: "https://sniper.ai/schemas/signal"
|
|
3
|
+
title: External Signal Record
|
|
4
|
+
description: Schema for SNIPER signal records that capture learnings from CI failures, PR reviews, and production errors.
|
|
5
|
+
type: object
|
|
6
|
+
required:
|
|
7
|
+
- type
|
|
8
|
+
- source
|
|
9
|
+
- timestamp
|
|
10
|
+
- summary
|
|
11
|
+
properties:
|
|
12
|
+
type:
|
|
13
|
+
type: string
|
|
14
|
+
enum: [ci_failure, pr_review_comment, production_error, manual]
|
|
15
|
+
description: Signal type classification.
|
|
16
|
+
source:
|
|
17
|
+
type: string
|
|
18
|
+
description: Where the signal came from (e.g., "github-actions", "pr-42", "datadog").
|
|
19
|
+
timestamp:
|
|
20
|
+
type: string
|
|
21
|
+
format: date-time
|
|
22
|
+
summary:
|
|
23
|
+
type: string
|
|
24
|
+
description: One-line summary of the signal.
|
|
25
|
+
details:
|
|
26
|
+
type: string
|
|
27
|
+
description: Full details (error message, review comment text, etc.).
|
|
28
|
+
learning:
|
|
29
|
+
type: string
|
|
30
|
+
description: Extracted learning or pattern to apply in future.
|
|
31
|
+
relevance_tags:
|
|
32
|
+
type: array
|
|
33
|
+
items: { type: string }
|
|
34
|
+
description: Tags for matching against agent context.
|
|
35
|
+
affected_files:
|
|
36
|
+
type: array
|
|
37
|
+
items: { type: string }
|
|
38
|
+
description: File paths affected by this signal.
|
|
39
|
+
additionalProperties: false
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
$schema: "https://json-schema.org/draft/2020-12/schema"
|
|
2
|
+
$id: "https://sniper.ai/schemas/velocity"
|
|
3
|
+
title: Velocity
|
|
4
|
+
description: Protocol execution history and calibrated budgets for adaptive budget selection.
|
|
5
|
+
type: object
|
|
6
|
+
required:
|
|
7
|
+
- executions
|
|
8
|
+
properties:
|
|
9
|
+
executions:
|
|
10
|
+
type: array
|
|
11
|
+
description: History of protocol executions with timing and token data.
|
|
12
|
+
items:
|
|
13
|
+
type: object
|
|
14
|
+
required:
|
|
15
|
+
- protocol
|
|
16
|
+
- completed_at
|
|
17
|
+
- tokens_used
|
|
18
|
+
properties:
|
|
19
|
+
protocol:
|
|
20
|
+
type: string
|
|
21
|
+
description: Protocol name that was executed.
|
|
22
|
+
completed_at:
|
|
23
|
+
type: string
|
|
24
|
+
format: date-time
|
|
25
|
+
description: ISO 8601 timestamp of when the execution completed.
|
|
26
|
+
wall_clock_seconds:
|
|
27
|
+
type: number
|
|
28
|
+
minimum: 0
|
|
29
|
+
description: Wall clock duration of the execution in seconds.
|
|
30
|
+
tokens_used:
|
|
31
|
+
type: integer
|
|
32
|
+
minimum: 0
|
|
33
|
+
description: Total tokens consumed during the execution.
|
|
34
|
+
tokens_per_phase:
|
|
35
|
+
type: object
|
|
36
|
+
description: Token usage broken down by phase name.
|
|
37
|
+
additionalProperties:
|
|
38
|
+
type: integer
|
|
39
|
+
minimum: 0
|
|
40
|
+
calibrated_budgets:
|
|
41
|
+
type: object
|
|
42
|
+
description: p75 of token usage from last 5+ executions, keyed by protocol name.
|
|
43
|
+
additionalProperties:
|
|
44
|
+
type: integer
|
|
45
|
+
minimum: 0
|
|
46
|
+
rolling_averages:
|
|
47
|
+
type: object
|
|
48
|
+
description: Exponential moving average of token usage, keyed by protocol name.
|
|
49
|
+
additionalProperties:
|
|
50
|
+
type: number
|
|
51
|
+
minimum: 0
|
|
52
|
+
additionalProperties: false
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
$schema: "https://json-schema.org/draft/2020-12/schema"
|
|
2
|
+
$id: "https://sniper.ai/schemas/workspace-lock"
|
|
3
|
+
title: Workspace File Lock
|
|
4
|
+
description: Schema for advisory file locks in SNIPER workspace coordination.
|
|
5
|
+
type: object
|
|
6
|
+
required:
|
|
7
|
+
- file
|
|
8
|
+
- locked_by
|
|
9
|
+
- since
|
|
10
|
+
properties:
|
|
11
|
+
file:
|
|
12
|
+
type: string
|
|
13
|
+
description: Relative file path being locked.
|
|
14
|
+
locked_by:
|
|
15
|
+
type: object
|
|
16
|
+
required: [project, agent, protocol]
|
|
17
|
+
properties:
|
|
18
|
+
project:
|
|
19
|
+
type: string
|
|
20
|
+
description: Project name that holds the lock.
|
|
21
|
+
agent:
|
|
22
|
+
type: string
|
|
23
|
+
description: Agent that acquired the lock.
|
|
24
|
+
protocol:
|
|
25
|
+
type: string
|
|
26
|
+
description: Protocol execution that holds the lock.
|
|
27
|
+
since:
|
|
28
|
+
type: string
|
|
29
|
+
format: date-time
|
|
30
|
+
description: When the lock was acquired.
|
|
31
|
+
reason:
|
|
32
|
+
type: string
|
|
33
|
+
description: Why the lock was acquired.
|
|
34
|
+
additionalProperties: false
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
$schema: "https://json-schema.org/draft/2020-12/schema"
|
|
2
|
+
$id: "https://sniper.ai/schemas/workspace"
|
|
3
|
+
title: Workspace Configuration
|
|
4
|
+
description: Schema for SNIPER workspace config files that coordinate multi-project orchestration.
|
|
5
|
+
type: object
|
|
6
|
+
required:
|
|
7
|
+
- name
|
|
8
|
+
- projects
|
|
9
|
+
properties:
|
|
10
|
+
name:
|
|
11
|
+
type: string
|
|
12
|
+
description: Human-readable workspace name.
|
|
13
|
+
projects:
|
|
14
|
+
type: array
|
|
15
|
+
description: List of projects managed by this workspace.
|
|
16
|
+
items:
|
|
17
|
+
type: object
|
|
18
|
+
required:
|
|
19
|
+
- name
|
|
20
|
+
- path
|
|
21
|
+
properties:
|
|
22
|
+
name:
|
|
23
|
+
type: string
|
|
24
|
+
description: Project identifier within the workspace.
|
|
25
|
+
path:
|
|
26
|
+
type: string
|
|
27
|
+
description: Relative directory path from workspace root to the project.
|
|
28
|
+
type:
|
|
29
|
+
type: string
|
|
30
|
+
description: Optional project type label (e.g. api, frontend, library).
|
|
31
|
+
shared:
|
|
32
|
+
type: object
|
|
33
|
+
description: Shared conventions and decisions applied across all workspace projects.
|
|
34
|
+
properties:
|
|
35
|
+
conventions:
|
|
36
|
+
type: array
|
|
37
|
+
description: Coding conventions enforced across all projects.
|
|
38
|
+
items:
|
|
39
|
+
type: string
|
|
40
|
+
anti_patterns:
|
|
41
|
+
type: array
|
|
42
|
+
description: Patterns to avoid across all projects.
|
|
43
|
+
items:
|
|
44
|
+
type: string
|
|
45
|
+
architectural_decisions:
|
|
46
|
+
type: array
|
|
47
|
+
description: Architecture Decision Records shared across the workspace.
|
|
48
|
+
items:
|
|
49
|
+
type: object
|
|
50
|
+
required:
|
|
51
|
+
- id
|
|
52
|
+
- title
|
|
53
|
+
- decision
|
|
54
|
+
- rationale
|
|
55
|
+
- date
|
|
56
|
+
properties:
|
|
57
|
+
id:
|
|
58
|
+
type: string
|
|
59
|
+
description: Unique ADR identifier (e.g. ADR-001).
|
|
60
|
+
title:
|
|
61
|
+
type: string
|
|
62
|
+
description: Short title of the decision.
|
|
63
|
+
decision:
|
|
64
|
+
type: string
|
|
65
|
+
description: The decision that was made.
|
|
66
|
+
rationale:
|
|
67
|
+
type: string
|
|
68
|
+
description: Why this decision was made.
|
|
69
|
+
date:
|
|
70
|
+
type: string
|
|
71
|
+
format: date
|
|
72
|
+
description: Date the decision was recorded (YYYY-MM-DD).
|
|
73
|
+
additionalProperties: false
|
|
74
|
+
memory:
|
|
75
|
+
type: object
|
|
76
|
+
description: Configuration for shared workspace memory.
|
|
77
|
+
properties:
|
|
78
|
+
directory:
|
|
79
|
+
type: string
|
|
80
|
+
description: Path to the shared memory directory relative to workspace root.
|
|
81
|
+
additionalProperties: false
|
|
82
|
+
additionalProperties: false
|