@cluesmith/codev 3.0.0-rc.1 → 3.0.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/bin/af.js +2 -2
- package/bin/afx.js +8 -0
- package/bin/consult.js +2 -1
- package/bin/team.js +2 -1
- package/{dashboard/dist/assets/index-nr0cXxtf.css → dashboard-dist/assets/index-Bs8I7N2s.css} +1 -1
- package/dashboard-dist/assets/index-CkNo2z6t.js +195 -0
- package/dashboard-dist/assets/index-CkNo2z6t.js.map +1 -0
- package/dashboard-dist/dist/assets/index-Bs8I7N2s.css +32 -0
- package/dashboard-dist/dist/assets/index-CkNo2z6t.js +195 -0
- package/dashboard-dist/dist/assets/index-CkNo2z6t.js.map +1 -0
- package/{dashboard → dashboard-dist}/dist/index.html +2 -2
- package/dashboard-dist/index.html +14 -0
- package/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +17 -14
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/architect.d.ts +4 -4
- package/dist/agent-farm/commands/architect.d.ts.map +1 -1
- package/dist/agent-farm/commands/architect.js +23 -12
- package/dist/agent-farm/commands/architect.js.map +1 -1
- package/dist/agent-farm/commands/attach.js +8 -8
- package/dist/agent-farm/commands/attach.js.map +1 -1
- package/dist/agent-farm/commands/bench.d.ts +1 -1
- package/dist/agent-farm/commands/bench.js +1 -1
- package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
- package/dist/agent-farm/commands/cleanup.js +10 -5
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/cron.js +1 -1
- package/dist/agent-farm/commands/cron.js.map +1 -1
- package/dist/agent-farm/commands/db.d.ts +3 -3
- package/dist/agent-farm/commands/db.js +4 -4
- package/dist/agent-farm/commands/db.js.map +1 -1
- package/dist/agent-farm/commands/open.js +2 -2
- package/dist/agent-farm/commands/open.js.map +1 -1
- package/dist/agent-farm/commands/rename.js +1 -1
- package/dist/agent-farm/commands/rename.js.map +1 -1
- package/dist/agent-farm/commands/send.d.ts +4 -1
- package/dist/agent-farm/commands/send.d.ts.map +1 -1
- package/dist/agent-farm/commands/send.js +8 -5
- package/dist/agent-farm/commands/send.js.map +1 -1
- package/dist/agent-farm/commands/shell.js +3 -3
- package/dist/agent-farm/commands/shell.js.map +1 -1
- package/dist/agent-farm/commands/spawn-roles.d.ts +2 -1
- package/dist/agent-farm/commands/spawn-roles.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-roles.js +1 -1
- package/dist/agent-farm/commands/spawn-roles.js.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.d.ts +49 -10
- package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.js +356 -51
- package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
- package/dist/agent-farm/commands/spawn.d.ts +6 -6
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +182 -74
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/status.d.ts.map +1 -1
- package/dist/agent-farm/commands/status.js +48 -3
- package/dist/agent-farm/commands/status.js.map +1 -1
- package/dist/agent-farm/commands/team-update.d.ts +1 -1
- package/dist/agent-farm/commands/team-update.d.ts.map +1 -1
- package/dist/agent-farm/commands/team-update.js +8 -5
- package/dist/agent-farm/commands/team-update.js.map +1 -1
- package/dist/agent-farm/commands/team.d.ts +1 -1
- package/dist/agent-farm/commands/team.d.ts.map +1 -1
- package/dist/agent-farm/commands/team.js +7 -3
- package/dist/agent-farm/commands/team.js.map +1 -1
- package/dist/agent-farm/commands/tower-cloud.d.ts +2 -2
- package/dist/agent-farm/commands/tower-cloud.js +3 -3
- package/dist/agent-farm/commands/tower-cloud.js.map +1 -1
- package/dist/agent-farm/commands/tower.js +2 -2
- package/dist/agent-farm/commands/tower.js.map +1 -1
- package/dist/agent-farm/lib/cloud-config.js +2 -2
- package/dist/agent-farm/lib/cloud-config.js.map +1 -1
- package/dist/agent-farm/lib/tower-client.d.ts +6 -230
- package/dist/agent-farm/lib/tower-client.d.ts.map +1 -1
- package/dist/agent-farm/lib/tower-client.js +6 -293
- package/dist/agent-farm/lib/tower-client.js.map +1 -1
- package/dist/agent-farm/lib/tunnel-client.js +1 -1
- package/dist/agent-farm/lib/tunnel-client.js.map +1 -1
- package/dist/agent-farm/servers/message-write.d.ts +24 -0
- package/dist/agent-farm/servers/message-write.d.ts.map +1 -0
- package/dist/agent-farm/servers/message-write.js +63 -0
- package/dist/agent-farm/servers/message-write.js.map +1 -0
- package/dist/agent-farm/servers/overview.d.ts +10 -8
- package/dist/agent-farm/servers/overview.d.ts.map +1 -1
- package/dist/agent-farm/servers/overview.js +78 -38
- package/dist/agent-farm/servers/overview.js.map +1 -1
- package/dist/agent-farm/servers/send-buffer.d.ts +4 -3
- package/dist/agent-farm/servers/send-buffer.d.ts.map +1 -1
- package/dist/agent-farm/servers/send-buffer.js +7 -4
- package/dist/agent-farm/servers/send-buffer.js.map +1 -1
- package/dist/agent-farm/servers/tower-cron-parser.js +1 -1
- package/dist/agent-farm/servers/tower-cron-parser.js.map +1 -1
- package/dist/agent-farm/servers/tower-cron.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-cron.js +4 -5
- package/dist/agent-farm/servers/tower-cron.js.map +1 -1
- package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-instances.js +15 -13
- package/dist/agent-farm/servers/tower-instances.js.map +1 -1
- package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-routes.js +9 -16
- package/dist/agent-farm/servers/tower-routes.js.map +1 -1
- package/dist/agent-farm/servers/tower-server.js +1 -1
- package/dist/agent-farm/servers/tower-terminals.d.ts +2 -2
- package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.js +64 -36
- package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
- package/dist/agent-farm/servers/tower-tunnel.js +2 -2
- package/dist/agent-farm/servers/tower-tunnel.js.map +1 -1
- package/dist/agent-farm/servers/tower-utils.d.ts +9 -6
- package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.js +13 -7
- package/dist/agent-farm/servers/tower-utils.js.map +1 -1
- package/dist/agent-farm/types.d.ts +13 -0
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.d.ts +11 -0
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +39 -17
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/agent-farm/utils/harness.d.ts +85 -0
- package/dist/agent-farm/utils/harness.d.ts.map +1 -0
- package/dist/agent-farm/utils/harness.js +212 -0
- package/dist/agent-farm/utils/harness.js.map +1 -0
- package/dist/agent-farm/utils/roles.d.ts +11 -4
- package/dist/agent-farm/utils/roles.d.ts.map +1 -1
- package/dist/agent-farm/utils/roles.js +21 -6
- package/dist/agent-farm/utils/roles.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +40 -5
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +16 -45
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/consult/index.d.ts +6 -2
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +231 -183
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +121 -31
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +13 -43
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/porch/artifacts.d.ts +69 -0
- package/dist/commands/porch/artifacts.d.ts.map +1 -0
- package/dist/commands/porch/artifacts.js +368 -0
- package/dist/commands/porch/artifacts.js.map +1 -0
- package/dist/commands/porch/checks.d.ts +14 -3
- package/dist/commands/porch/checks.d.ts.map +1 -1
- package/dist/commands/porch/checks.js +150 -4
- package/dist/commands/porch/checks.js.map +1 -1
- package/dist/commands/porch/config.d.ts +6 -9
- package/dist/commands/porch/config.d.ts.map +1 -1
- package/dist/commands/porch/config.js +12 -37
- package/dist/commands/porch/config.js.map +1 -1
- package/dist/commands/porch/index.d.ts +12 -7
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +273 -82
- package/dist/commands/porch/index.js.map +1 -1
- package/dist/commands/porch/next.d.ts.map +1 -1
- package/dist/commands/porch/next.js +142 -75
- package/dist/commands/porch/next.js.map +1 -1
- package/dist/commands/porch/notify.d.ts +2 -2
- package/dist/commands/porch/notify.js +5 -5
- package/dist/commands/porch/notify.js.map +1 -1
- package/dist/commands/porch/prompts.d.ts +2 -1
- package/dist/commands/porch/prompts.d.ts.map +1 -1
- package/dist/commands/porch/prompts.js +34 -38
- package/dist/commands/porch/prompts.js.map +1 -1
- package/dist/commands/porch/protocol.d.ts +4 -3
- package/dist/commands/porch/protocol.d.ts.map +1 -1
- package/dist/commands/porch/protocol.js +21 -21
- package/dist/commands/porch/protocol.js.map +1 -1
- package/dist/commands/porch/state.d.ts +27 -2
- package/dist/commands/porch/state.d.ts.map +1 -1
- package/dist/commands/porch/state.js +100 -9
- package/dist/commands/porch/state.js.map +1 -1
- package/dist/commands/porch/types.d.ts +10 -2
- package/dist/commands/porch/types.d.ts.map +1 -1
- package/dist/commands/sync.d.ts +26 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +207 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/update.d.ts +15 -2
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +159 -202
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/config.d.ts +96 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +165 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/forge-contracts.d.ts +100 -0
- package/dist/lib/forge-contracts.d.ts.map +1 -0
- package/dist/lib/forge-contracts.js +35 -0
- package/dist/lib/forge-contracts.js.map +1 -0
- package/dist/lib/forge.d.ts +102 -0
- package/dist/lib/forge.d.ts.map +1 -0
- package/dist/lib/forge.js +376 -0
- package/dist/lib/forge.js.map +1 -0
- package/dist/lib/github.d.ts +68 -60
- package/dist/lib/github.d.ts.map +1 -1
- package/dist/lib/github.js +160 -169
- package/dist/lib/github.js.map +1 -1
- package/dist/lib/skeleton.d.ts +15 -5
- package/dist/lib/skeleton.d.ts.map +1 -1
- package/dist/lib/skeleton.js +82 -7
- package/dist/lib/skeleton.js.map +1 -1
- package/dist/lib/team-github.d.ts +7 -3
- package/dist/lib/team-github.d.ts.map +1 -1
- package/dist/lib/team-github.js +29 -19
- package/dist/lib/team-github.js.map +1 -1
- package/dist/terminal/pty-manager.d.ts.map +1 -1
- package/dist/terminal/pty-manager.js +2 -0
- package/dist/terminal/pty-manager.js.map +1 -1
- package/dist/terminal/ws-protocol.d.ts +10 -8
- package/dist/terminal/ws-protocol.d.ts.map +1 -1
- package/dist/terminal/ws-protocol.js +3 -0
- package/dist/terminal/ws-protocol.js.map +1 -1
- package/package.json +27 -24
- package/scripts/forge/gitea/auth-status.sh +3 -0
- package/scripts/forge/gitea/issue-comment.sh +3 -0
- package/scripts/forge/gitea/issue-list.sh +3 -0
- package/scripts/forge/gitea/issue-view.sh +3 -0
- package/scripts/forge/gitea/pr-exists.sh +6 -0
- package/scripts/forge/gitea/pr-list.sh +3 -0
- package/scripts/forge/gitea/pr-merge.sh +3 -0
- package/scripts/forge/gitea/pr-view.sh +3 -0
- package/scripts/forge/gitea/recently-closed.sh +3 -0
- package/scripts/forge/gitea/recently-merged.sh +3 -0
- package/scripts/forge/gitea/repo-archive.sh +11 -0
- package/scripts/forge/gitea/user-identity.sh +3 -0
- package/scripts/forge/github/auth-status.sh +4 -0
- package/scripts/forge/github/issue-comment.sh +5 -0
- package/scripts/forge/github/issue-list.sh +4 -0
- package/scripts/forge/github/issue-view.sh +5 -0
- package/scripts/forge/github/on-it-timestamps.sh +8 -0
- package/scripts/forge/github/pr-diff.sh +10 -0
- package/scripts/forge/github/pr-exists.sh +7 -0
- package/scripts/forge/github/pr-list.sh +4 -0
- package/scripts/forge/github/pr-merge.sh +5 -0
- package/scripts/forge/github/pr-search.sh +5 -0
- package/scripts/forge/github/pr-view.sh +11 -0
- package/scripts/forge/github/recently-closed.sh +15 -0
- package/scripts/forge/github/recently-merged.sh +15 -0
- package/scripts/forge/github/repo-archive.sh +10 -0
- package/scripts/forge/github/team-activity.sh +5 -0
- package/scripts/forge/github/user-identity.sh +4 -0
- package/scripts/forge/gitlab/auth-status.sh +3 -0
- package/scripts/forge/gitlab/issue-comment.sh +3 -0
- package/scripts/forge/gitlab/issue-list.sh +3 -0
- package/scripts/forge/gitlab/issue-view.sh +3 -0
- package/scripts/forge/gitlab/pr-diff.sh +3 -0
- package/scripts/forge/gitlab/pr-exists.sh +5 -0
- package/scripts/forge/gitlab/pr-list.sh +3 -0
- package/scripts/forge/gitlab/pr-merge.sh +3 -0
- package/scripts/forge/gitlab/pr-search.sh +3 -0
- package/scripts/forge/gitlab/pr-view.sh +3 -0
- package/scripts/forge/gitlab/recently-closed.sh +3 -0
- package/scripts/forge/gitlab/recently-merged.sh +3 -0
- package/scripts/forge/gitlab/repo-archive.sh +12 -0
- package/scripts/forge/gitlab/user-identity.sh +3 -0
- package/skeleton/.claude/skills/afx/SKILL.md +144 -0
- package/skeleton/.claude/skills/codev/SKILL.md +3 -3
- package/skeleton/.claude/skills/consult/SKILL.md +1 -1
- package/skeleton/.claude/skills/porch/SKILL.md +2 -2
- package/skeleton/DEPENDENCIES.md +1 -1
- package/skeleton/builders.md +4 -4
- package/skeleton/protocol-schema.json +2 -2
- package/skeleton/protocols/air/builder-prompt.md +6 -6
- package/skeleton/protocols/air/prompts/pr.md +2 -2
- package/skeleton/protocols/air/protocol.md +1 -2
- package/skeleton/protocols/aspir/builder-prompt.md +28 -6
- package/skeleton/protocols/aspir/protocol.json +9 -1
- package/skeleton/protocols/aspir/protocol.md +1 -1
- package/skeleton/protocols/aspir/templates/plan.md +0 -20
- package/skeleton/protocols/aspir/templates/spec.md +0 -28
- package/skeleton/protocols/bugfix/builder-prompt.md +6 -6
- package/skeleton/protocols/bugfix/prompts/pr.md +1 -1
- package/skeleton/protocols/experiment/protocol.md +1 -6
- package/skeleton/protocols/maintain/builder-prompt.md +12 -11
- package/skeleton/protocols/maintain/prompts/maintain.md +88 -0
- package/skeleton/protocols/maintain/prompts/review.md +72 -0
- package/skeleton/protocols/maintain/protocol.json +14 -68
- package/skeleton/protocols/maintain/protocol.md +111 -409
- package/skeleton/protocols/maintain/templates/maintenance-run.md +18 -49
- package/skeleton/protocols/protocol-schema.json +1 -1
- package/skeleton/protocols/spike/builder-prompt.md +1 -1
- package/skeleton/protocols/spike/protocol.md +4 -4
- package/skeleton/protocols/spir/builder-prompt.md +28 -5
- package/skeleton/protocols/spir/protocol.json +9 -1
- package/skeleton/protocols/spir/protocol.md +2 -2
- package/skeleton/protocols/spir/templates/plan.md +0 -20
- package/skeleton/protocols/spir/templates/spec.md +0 -28
- package/skeleton/resources/commands/agent-farm.md +84 -84
- package/skeleton/resources/commands/codev.md +1 -1
- package/skeleton/resources/commands/consult.md +16 -7
- package/skeleton/resources/commands/overview.md +14 -15
- package/skeleton/resources/risk-triage.md +1 -1
- package/skeleton/resources/workflow-reference.md +14 -14
- package/skeleton/roles/architect.md +55 -43
- package/skeleton/roles/builder.md +22 -14
- package/skeleton/templates/AGENTS.md +4 -3
- package/skeleton/templates/CLAUDE.md +4 -3
- package/skeleton/templates/cheatsheet.md +11 -12
- package/templates/3d-viewer.html +16 -18
- package/templates/tower.html +1 -1
- package/dashboard/dist/assets/index-CiIBsixF.js +0 -194
- package/dashboard/dist/assets/index-CiIBsixF.js.map +0 -1
- package/skeleton/.claude/skills/af/SKILL.md +0 -146
- package/skeleton/porch/prompts/understand.md +0 -61
- package/skeleton/porch/prompts/verify.md +0 -58
- package/skeleton/protocols/maintain/prompts/audit.md +0 -111
- package/skeleton/protocols/maintain/prompts/clean.md +0 -91
- package/skeleton/protocols/maintain/prompts/sync.md +0 -113
- package/skeleton/protocols/maintain/prompts/verify.md +0 -110
- package/skeleton/protocols/tick/builder-prompt.md +0 -65
- package/skeleton/protocols/tick/consult-types/impl-review.md +0 -72
- package/skeleton/protocols/tick/consult-types/plan-review.md +0 -59
- package/skeleton/protocols/tick/consult-types/pr-review.md +0 -72
- package/skeleton/protocols/tick/consult-types/spec-review.md +0 -55
- package/skeleton/protocols/tick/protocol.json +0 -151
- package/skeleton/protocols/tick/protocol.md +0 -277
- package/skeleton/protocols/tick/templates/plan.md +0 -67
- package/skeleton/protocols/tick/templates/review.md +0 -89
- package/skeleton/protocols/tick/templates/spec.md +0 -61
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
# TICK Protocol
|
|
2
|
-
**T**ask **I**dentification, **C**oding, **K**ickout
|
|
3
|
-
|
|
4
|
-
## Overview
|
|
5
|
-
|
|
6
|
-
TICK is an **amendment workflow** for existing SPIR specifications. Rather than creating new standalone specs, TICK modifies existing spec and plan documents in-place, tracking changes in an "Amendments" section.
|
|
7
|
-
|
|
8
|
-
**Core Principle**: TICK is for *refining* existing specs. SPIR is for *creating* new specs.
|
|
9
|
-
|
|
10
|
-
**Key Insight**: TICKs are not small SPIRs - they're amendments to existing SPIRs. This eliminates the "TICK vs SPIR" decision problem and keeps related work together.
|
|
11
|
-
|
|
12
|
-
## When to Use TICK
|
|
13
|
-
|
|
14
|
-
### Use TICK when:
|
|
15
|
-
- Making **amendments to an existing SPIR spec** that is already `integrated`
|
|
16
|
-
- Small scope (< 300 lines of new/changed code)
|
|
17
|
-
- Requirements are clear and well-defined
|
|
18
|
-
- No fundamental architecture changes
|
|
19
|
-
- Examples:
|
|
20
|
-
- Adding a feature to an existing system (e.g., "add password reset to user auth")
|
|
21
|
-
- Bug fixes that extend existing functionality
|
|
22
|
-
- Configuration changes with logic
|
|
23
|
-
- Utility function additions to existing modules
|
|
24
|
-
- Refactoring within an existing feature
|
|
25
|
-
|
|
26
|
-
### Use SPIR instead when:
|
|
27
|
-
- Creating a **new feature from scratch** (no existing spec to amend)
|
|
28
|
-
- Major architecture changes (scope too large for amendment)
|
|
29
|
-
- Unclear requirements needing exploration
|
|
30
|
-
- > 300 lines of code
|
|
31
|
-
- Multiple stakeholders need alignment
|
|
32
|
-
|
|
33
|
-
### Cannot Use TICK when:
|
|
34
|
-
- No relevant SPIR spec exists (create a new SPIR spec instead)
|
|
35
|
-
- Target spec is not yet `integrated` (complete the SPIR cycle first)
|
|
36
|
-
|
|
37
|
-
## Amendment Workflow
|
|
38
|
-
|
|
39
|
-
### Phase 1: Identify Target Spec
|
|
40
|
-
|
|
41
|
-
**Input**: User describes the amendment needed
|
|
42
|
-
|
|
43
|
-
**Agent Actions**:
|
|
44
|
-
1. Analyze the amendment requirements
|
|
45
|
-
2. Search for the relevant existing spec to amend
|
|
46
|
-
3. Verify the spec exists and is `integrated`
|
|
47
|
-
4. Load current spec and plan documents
|
|
48
|
-
5. Determine next TICK number (count existing TICK entries + 1)
|
|
49
|
-
|
|
50
|
-
**Example**:
|
|
51
|
-
```
|
|
52
|
-
User: "Use TICK to add password reset to the auth system"
|
|
53
|
-
Agent finds: specs/2-user-authentication.md (status: integrated)
|
|
54
|
-
Agent determines: Next TICK is TICK-001 (first amendment)
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Phase 2: Specification Amendment (Autonomous)
|
|
58
|
-
|
|
59
|
-
**Agent Actions**:
|
|
60
|
-
1. Analyze what needs to change in the spec
|
|
61
|
-
2. Update relevant sections of `specs/NNN-name.md`:
|
|
62
|
-
- Problem Statement (if scope expands)
|
|
63
|
-
- Success Criteria (if new criteria added)
|
|
64
|
-
- Solution Approaches (if design changes)
|
|
65
|
-
- Any other section that needs updating
|
|
66
|
-
3. Add entry to "Amendments" section at bottom:
|
|
67
|
-
```markdown
|
|
68
|
-
### TICK-001: [Title] (YYYY-MM-DD)
|
|
69
|
-
|
|
70
|
-
**Summary**: [One-line description]
|
|
71
|
-
|
|
72
|
-
**Problem Addressed**:
|
|
73
|
-
[Why this amendment was needed]
|
|
74
|
-
|
|
75
|
-
**Spec Changes**:
|
|
76
|
-
- [Section]: [What changed]
|
|
77
|
-
|
|
78
|
-
**Plan Changes**:
|
|
79
|
-
- [Phase/steps]: [What was added/modified]
|
|
80
|
-
|
|
81
|
-
**Review**: See `reviews/NNN-name-tick-001.md`
|
|
82
|
-
```
|
|
83
|
-
4. **COMMIT**: `[TICK NNN-NNN] Spec: [description]`
|
|
84
|
-
|
|
85
|
-
### Phase 3: Planning Amendment (Autonomous)
|
|
86
|
-
|
|
87
|
-
**Agent Actions**:
|
|
88
|
-
1. Update `plans/NNN-name.md` with new implementation steps
|
|
89
|
-
2. Add/modify phases as needed
|
|
90
|
-
3. Add entry to "Amendment History" section at bottom:
|
|
91
|
-
```markdown
|
|
92
|
-
### TICK-001: [Title] (YYYY-MM-DD)
|
|
93
|
-
|
|
94
|
-
**Changes**:
|
|
95
|
-
- [Phase added]: [Description]
|
|
96
|
-
- [Implementation steps]: [What was updated]
|
|
97
|
-
|
|
98
|
-
**Review**: See `reviews/NNN-name-tick-001.md`
|
|
99
|
-
```
|
|
100
|
-
4. **COMMIT**: `[TICK NNN-NNN] Plan: [description]`
|
|
101
|
-
|
|
102
|
-
### Phase 4: Implementation (Autonomous)
|
|
103
|
-
|
|
104
|
-
**Agent Actions**:
|
|
105
|
-
1. Execute implementation steps from the plan
|
|
106
|
-
2. Write code following fail-fast principles
|
|
107
|
-
3. Test functionality
|
|
108
|
-
4. **COMMIT**: `[TICK NNN-NNN] Impl: [description]`
|
|
109
|
-
|
|
110
|
-
### Phase 5: Review (User Checkpoint)
|
|
111
|
-
|
|
112
|
-
**Agent Actions**:
|
|
113
|
-
1. Create review document: `reviews/NNN-name-tick-NNN.md`
|
|
114
|
-
- What was amended and why
|
|
115
|
-
- Changes made to spec and plan
|
|
116
|
-
- Implementation challenges
|
|
117
|
-
- Lessons learned
|
|
118
|
-
2. **Multi-Agent Consultation** (MANDATORY):
|
|
119
|
-
- Consult GPT-5 AND Gemini Pro
|
|
120
|
-
- Focus: Code quality, missed issues, improvements
|
|
121
|
-
- Update review with consultation feedback
|
|
122
|
-
3. **Update Architecture Documentation** (if applicable)
|
|
123
|
-
4. **COMMIT**: `[TICK NNN-NNN] Review: [description]`
|
|
124
|
-
5. **PRESENT TO USER**: Show summary with consultation insights
|
|
125
|
-
|
|
126
|
-
**User Actions**:
|
|
127
|
-
- Review completed work
|
|
128
|
-
- Provide feedback
|
|
129
|
-
- Request changes OR approve
|
|
130
|
-
|
|
131
|
-
**If Changes Requested**:
|
|
132
|
-
- Agent makes changes
|
|
133
|
-
- Commits: `[TICK NNN-NNN] Fixes: [description]`
|
|
134
|
-
- Updates review document
|
|
135
|
-
- Repeats until user approval
|
|
136
|
-
|
|
137
|
-
## File Naming Convention
|
|
138
|
-
|
|
139
|
-
TICK amendments modify existing files and create new review files:
|
|
140
|
-
|
|
141
|
-
| File Type | Pattern | Example |
|
|
142
|
-
|-----------|---------|---------|
|
|
143
|
-
| Spec (modified) | `specs/NNN-name.md` | `specs/2-user-authentication.md` |
|
|
144
|
-
| Plan (modified) | `plans/NNN-name.md` | `plans/2-user-authentication.md` |
|
|
145
|
-
| Review (new) | `reviews/NNN-name-tick-NNN.md` | `reviews/2-user-authentication-tick-001.md` |
|
|
146
|
-
|
|
147
|
-
**Note**: Spec and plan files are modified in-place. Only the review file is new.
|
|
148
|
-
|
|
149
|
-
## Git Commit Strategy
|
|
150
|
-
|
|
151
|
-
**TICK commits reference the parent spec and TICK number**:
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
[TICK 2-001] Spec: Add password reset feature
|
|
155
|
-
[TICK 2-001] Plan: Add password reset implementation
|
|
156
|
-
[TICK 2-001] Impl: Add password reset feature
|
|
157
|
-
[TICK 2-001] Review: Password reset implementation
|
|
158
|
-
[TICK 2-001] Fixes: Address review feedback
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
The format `[TICK <parent>-<tick>]` identifies:
|
|
162
|
-
- `<parent>`: Parent spec number (e.g., 2)
|
|
163
|
-
- `<tick>`: TICK amendment number (e.g., 001, 002, 003)
|
|
164
|
-
|
|
165
|
-
## Key Differences from SPIR
|
|
166
|
-
|
|
167
|
-
| Aspect | SPIR | TICK |
|
|
168
|
-
|--------|--------|------|
|
|
169
|
-
| Purpose | Create new features | Amend existing features |
|
|
170
|
-
| File creation | Creates new spec/plan/review | Modifies spec/plan, creates review |
|
|
171
|
-
| Sequential numbering | Gets new number (1, 2) | Uses parent's number (2-001) |
|
|
172
|
-
| Scope | Any size | < 300 lines typically |
|
|
173
|
-
| Prerequisites | None | Existing integrated spec required |
|
|
174
|
-
| User checkpoints | Multiple (spec, plan, phases) | Two (start, end) |
|
|
175
|
-
| Multi-agent consultation | Throughout | End only (review) |
|
|
176
|
-
|
|
177
|
-
## Protocol Selection Guide
|
|
178
|
-
|
|
179
|
-
```
|
|
180
|
-
Is there an existing spec to amend?
|
|
181
|
-
├── NO → Use SPIR (create new spec)
|
|
182
|
-
└── YES → Is it integrated?
|
|
183
|
-
├── NO → Complete SPIR cycle first
|
|
184
|
-
└── YES → Is the change small (<300 LOC)?
|
|
185
|
-
├── YES → Use TICK (amend existing spec)
|
|
186
|
-
└── NO → Use SPIR (scope too large)
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
**Mental Model**:
|
|
190
|
-
- SPIR = Create new feature from scratch
|
|
191
|
-
- TICK = Refine/extend existing feature
|
|
192
|
-
|
|
193
|
-
## Example TICK Workflow
|
|
194
|
-
|
|
195
|
-
**User**: "Add password reset to the user authentication system"
|
|
196
|
-
|
|
197
|
-
**Agent**:
|
|
198
|
-
1. **Identify**: Finds `specs/2-user-authentication.md` (integrated)
|
|
199
|
-
2. **Amend Spec** (30 seconds):
|
|
200
|
-
- Updates Success Criteria with password reset requirements
|
|
201
|
-
- Adds TICK-001 entry to Amendments section
|
|
202
|
-
- Commit: `[TICK 2-001] Spec: Add password reset feature`
|
|
203
|
-
3. **Amend Plan** (30 seconds):
|
|
204
|
-
- Adds Phase 4: Password Reset Email Service
|
|
205
|
-
- Adds TICK-001 entry to Amendment History
|
|
206
|
-
- Commit: `[TICK 2-001] Plan: Add password reset implementation`
|
|
207
|
-
4. **Implement** (2 minutes):
|
|
208
|
-
- Creates password reset endpoint
|
|
209
|
-
- Implements email service
|
|
210
|
-
- Tests functionality
|
|
211
|
-
- Commit: `[TICK 2-001] Impl: Add password reset feature`
|
|
212
|
-
5. **Review** (1 minute):
|
|
213
|
-
- Creates `reviews/2-user-authentication-tick-001.md`
|
|
214
|
-
- Runs 3-way consultation (Gemini, Codex, Claude)
|
|
215
|
-
- Commit: `[TICK 2-001] Review: Password reset implementation`
|
|
216
|
-
- Shows user the completed work
|
|
217
|
-
|
|
218
|
-
**Total Time**: ~4 minutes for simple amendment
|
|
219
|
-
|
|
220
|
-
## Multiple TICKs per Spec
|
|
221
|
-
|
|
222
|
-
A single spec can have multiple TICK amendments over its lifetime:
|
|
223
|
-
|
|
224
|
-
```markdown
|
|
225
|
-
## Amendments
|
|
226
|
-
|
|
227
|
-
### TICK-003: Add MFA support (2025-03-15)
|
|
228
|
-
...
|
|
229
|
-
|
|
230
|
-
### TICK-002: Add session timeout (2025-02-01)
|
|
231
|
-
...
|
|
232
|
-
|
|
233
|
-
### TICK-001: Add password reset (2025-01-15)
|
|
234
|
-
...
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
TICKs are listed in reverse chronological order (newest first). Each TICK builds on the previous state of the spec.
|
|
238
|
-
|
|
239
|
-
## Migration from Standalone TICK
|
|
240
|
-
|
|
241
|
-
Existing standalone TICK projects (created before this protocol change) are grandfathered in. No migration required.
|
|
242
|
-
|
|
243
|
-
**Optional Migration** (if desired):
|
|
244
|
-
1. Identify the "parent spec" the TICK logically extends
|
|
245
|
-
2. Move TICK content into an amendment entry in the parent spec
|
|
246
|
-
3. Archive the standalone files with a note: "Migrated to spec NNN as TICK-NNN"
|
|
247
|
-
4. Update the GitHub Issue to reflect the change
|
|
248
|
-
|
|
249
|
-
## Benefits
|
|
250
|
-
|
|
251
|
-
1. **Single source of truth**: Spec file shows complete feature evolution
|
|
252
|
-
2. **Clear history**: Amendments section documents all changes chronologically
|
|
253
|
-
3. **Reduced fragmentation**: Related work stays together
|
|
254
|
-
4. **Simpler mental model**: "New vs amendment" is clearer than "SPIR vs TICK"
|
|
255
|
-
5. **Preserved context**: Looking at a spec shows all refinements
|
|
256
|
-
|
|
257
|
-
## Limitations
|
|
258
|
-
|
|
259
|
-
1. **Requires existing spec**: Cannot use TICK for greenfield work
|
|
260
|
-
2. **Spec can grow large**: Many TICKs add content (consider: >5 TICKs suggests need for new spec)
|
|
261
|
-
3. **Merge conflicts**: Multiple TICKs on same spec may conflict
|
|
262
|
-
4. **No course correction**: Can't adjust mid-implementation
|
|
263
|
-
|
|
264
|
-
## Best Practices
|
|
265
|
-
|
|
266
|
-
1. **Verify spec is integrated**: Never TICK a spec that isn't complete
|
|
267
|
-
2. **Keep TICKs small**: If scope grows, consider new SPIR spec
|
|
268
|
-
3. **Clear summaries**: Amendment entries should be self-explanatory
|
|
269
|
-
4. **Test before review**: Always test functionality before presenting
|
|
270
|
-
5. **Honest documentation**: Document all deviations in review
|
|
271
|
-
|
|
272
|
-
## Templates
|
|
273
|
-
|
|
274
|
-
TICK uses the standard SPIR templates with amendments sections:
|
|
275
|
-
- Spec template: `codev/protocols/spir/templates/spec.md` (includes Amendments section)
|
|
276
|
-
- Plan template: `codev/protocols/spir/templates/plan.md` (includes Amendment History section)
|
|
277
|
-
- Review template: `codev/protocols/tick/templates/review.md` (TICK-specific)
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
# TICK Plan: [Title]
|
|
2
|
-
|
|
3
|
-
## Metadata
|
|
4
|
-
- **ID**: ####-[short-name]
|
|
5
|
-
- **Protocol**: TICK
|
|
6
|
-
- **Specification**: [Link to spec file]
|
|
7
|
-
- **Created**: [YYYY-MM-DD]
|
|
8
|
-
- **Status**: autonomous
|
|
9
|
-
|
|
10
|
-
## Implementation Approach
|
|
11
|
-
[Brief description of chosen approach from specification]
|
|
12
|
-
|
|
13
|
-
## Implementation Steps
|
|
14
|
-
|
|
15
|
-
### Step 1: [Action]
|
|
16
|
-
**Files**: [list files to create/modify]
|
|
17
|
-
**Changes**: [what to do]
|
|
18
|
-
|
|
19
|
-
### Step 2: [Action]
|
|
20
|
-
**Files**: [list files to create/modify]
|
|
21
|
-
**Changes**: [what to do]
|
|
22
|
-
|
|
23
|
-
### Step 3: [Action]
|
|
24
|
-
**Files**: [list files to create/modify]
|
|
25
|
-
**Changes**: [what to do]
|
|
26
|
-
|
|
27
|
-
[Add more steps as needed - keep sequential]
|
|
28
|
-
|
|
29
|
-
## Files to Create/Modify
|
|
30
|
-
|
|
31
|
-
### New Files
|
|
32
|
-
- `path/to/file1.ts` - [purpose]
|
|
33
|
-
- `path/to/file2.ts` - [purpose]
|
|
34
|
-
|
|
35
|
-
### Modified Files
|
|
36
|
-
- `path/to/existing1.ts` - [what changes]
|
|
37
|
-
- `path/to/existing2.ts` - [what changes]
|
|
38
|
-
|
|
39
|
-
## Testing Strategy
|
|
40
|
-
|
|
41
|
-
### Manual Testing
|
|
42
|
-
1. [Test scenario 1]
|
|
43
|
-
2. [Test scenario 2]
|
|
44
|
-
3. [Test scenario 3]
|
|
45
|
-
|
|
46
|
-
### Automated Tests (if applicable)
|
|
47
|
-
- [Test file 1: what to test]
|
|
48
|
-
- [Test file 2: what to test]
|
|
49
|
-
|
|
50
|
-
## Success Criteria
|
|
51
|
-
- [ ] All steps completed
|
|
52
|
-
- [ ] Manual tests pass
|
|
53
|
-
- [ ] No breaking changes
|
|
54
|
-
- [ ] Code committed
|
|
55
|
-
|
|
56
|
-
## Risks
|
|
57
|
-
| Risk | If Occurs |
|
|
58
|
-
|------|-----------|
|
|
59
|
-
| [Risk 1] | [Fallback plan] |
|
|
60
|
-
| [Risk 2] | [Fallback plan] |
|
|
61
|
-
|
|
62
|
-
## Dependencies
|
|
63
|
-
- [Dependency 1]
|
|
64
|
-
- [Dependency 2]
|
|
65
|
-
|
|
66
|
-
## Notes
|
|
67
|
-
[Any implementation notes or considerations]
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# TICK Review: [Title]
|
|
2
|
-
|
|
3
|
-
## Metadata
|
|
4
|
-
- **ID**: ####-[short-name]
|
|
5
|
-
- **Protocol**: TICK
|
|
6
|
-
- **Date**: [YYYY-MM-DD]
|
|
7
|
-
- **Specification**: [Link to spec file]
|
|
8
|
-
- **Plan**: [Link to plan file]
|
|
9
|
-
- **Status**: [completed/needs-fixes]
|
|
10
|
-
|
|
11
|
-
## Implementation Summary
|
|
12
|
-
[Brief description of what was implemented]
|
|
13
|
-
|
|
14
|
-
## Success Criteria Status
|
|
15
|
-
- [ ] [Criterion 1 from spec]
|
|
16
|
-
- [ ] [Criterion 2 from spec]
|
|
17
|
-
- [ ] [Criterion 3 from spec]
|
|
18
|
-
- [ ] Tests passed
|
|
19
|
-
- [ ] No breaking changes
|
|
20
|
-
|
|
21
|
-
## Files Changed
|
|
22
|
-
|
|
23
|
-
### Created
|
|
24
|
-
- `path/to/file1.ts` - [purpose]
|
|
25
|
-
- `path/to/file2.ts` - [purpose]
|
|
26
|
-
|
|
27
|
-
### Modified
|
|
28
|
-
- `path/to/existing1.ts` - [changes made]
|
|
29
|
-
- `path/to/existing2.ts` - [changes made]
|
|
30
|
-
|
|
31
|
-
## Deviations from Plan
|
|
32
|
-
[None if plan was followed exactly, otherwise list what changed and why]
|
|
33
|
-
|
|
34
|
-
## Testing Results
|
|
35
|
-
|
|
36
|
-
### Manual Tests
|
|
37
|
-
1. [Scenario 1] - ✅/❌
|
|
38
|
-
2. [Scenario 2] - ✅/❌
|
|
39
|
-
3. [Scenario 3] - ✅/❌
|
|
40
|
-
|
|
41
|
-
### Automated Tests (if applicable)
|
|
42
|
-
- [Test result summary]
|
|
43
|
-
|
|
44
|
-
## Challenges Encountered
|
|
45
|
-
1. [Challenge 1]
|
|
46
|
-
- **Solution**: [How resolved]
|
|
47
|
-
2. [Challenge 2]
|
|
48
|
-
- **Solution**: [How resolved]
|
|
49
|
-
|
|
50
|
-
## Lessons Learned
|
|
51
|
-
|
|
52
|
-
### What Went Well
|
|
53
|
-
- [Success point 1]
|
|
54
|
-
- [Success point 2]
|
|
55
|
-
|
|
56
|
-
### What Could Improve
|
|
57
|
-
- [Improvement area 1]
|
|
58
|
-
- [Improvement area 2]
|
|
59
|
-
|
|
60
|
-
## Consultation Feedback
|
|
61
|
-
|
|
62
|
-
[For each phase that had consultation, summarize every reviewer's concerns and how the builder responded. Use **Addressed** (fixed), **Rebutted** (disagreed with reasoning), or **N/A** (out of scope/moot) for each concern. If all reviewers approved with no concerns: "No concerns raised — all consultations approved."]
|
|
63
|
-
|
|
64
|
-
### [Phase] Phase (Round N)
|
|
65
|
-
|
|
66
|
-
#### Gemini
|
|
67
|
-
- **Concern**: [Summary of concern]
|
|
68
|
-
- **Addressed**: [What was changed]
|
|
69
|
-
|
|
70
|
-
#### Codex
|
|
71
|
-
- **Concern**: [Summary of concern]
|
|
72
|
-
- **Rebutted**: [Why current approach is correct]
|
|
73
|
-
|
|
74
|
-
#### Claude
|
|
75
|
-
- No concerns raised (APPROVE)
|
|
76
|
-
|
|
77
|
-
## TICK Protocol Feedback
|
|
78
|
-
- **Autonomous execution**: [Worked well / Issues encountered]
|
|
79
|
-
- **Single-phase approach**: [Appropriate / Should have used SPIR]
|
|
80
|
-
- **Speed vs quality trade-off**: [Balanced / Too fast / Too slow]
|
|
81
|
-
- **End-only consultation**: [Caught issues / Missed opportunities]
|
|
82
|
-
|
|
83
|
-
## Follow-Up Actions
|
|
84
|
-
- [ ] [Any remaining work]
|
|
85
|
-
- [ ] [Technical debt created]
|
|
86
|
-
- [ ] [Future enhancements]
|
|
87
|
-
|
|
88
|
-
## Conclusion
|
|
89
|
-
[Brief summary of outcome and whether TICK was appropriate for this task]
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
# TICK Specification: [Title]
|
|
2
|
-
|
|
3
|
-
## Metadata
|
|
4
|
-
- **ID**: ####-[short-name]
|
|
5
|
-
- **Protocol**: TICK
|
|
6
|
-
- **Created**: [YYYY-MM-DD]
|
|
7
|
-
- **Status**: autonomous
|
|
8
|
-
|
|
9
|
-
## Task Description
|
|
10
|
-
[What needs to be built? Be specific and concise.]
|
|
11
|
-
|
|
12
|
-
## Scope
|
|
13
|
-
|
|
14
|
-
### In Scope
|
|
15
|
-
- [Feature/change 1]
|
|
16
|
-
- [Feature/change 2]
|
|
17
|
-
- [Feature/change 3]
|
|
18
|
-
|
|
19
|
-
### Out of Scope
|
|
20
|
-
- [What we're NOT doing]
|
|
21
|
-
- [Future considerations]
|
|
22
|
-
|
|
23
|
-
## Success Criteria
|
|
24
|
-
- [ ] [Specific, testable criterion 1]
|
|
25
|
-
- [ ] [Specific, testable criterion 2]
|
|
26
|
-
- [ ] [Specific, testable criterion 3]
|
|
27
|
-
- [ ] Tests pass
|
|
28
|
-
- [ ] No breaking changes
|
|
29
|
-
|
|
30
|
-
## Constraints
|
|
31
|
-
- [Technical limitation 1]
|
|
32
|
-
- [Technical limitation 2]
|
|
33
|
-
- [Time/scope constraints]
|
|
34
|
-
|
|
35
|
-
## Assumptions
|
|
36
|
-
- [Assumption 1]
|
|
37
|
-
- [Assumption 2]
|
|
38
|
-
- [Dependencies]
|
|
39
|
-
|
|
40
|
-
## Implementation Approach
|
|
41
|
-
[Brief description of how this will be implemented - single approach only]
|
|
42
|
-
|
|
43
|
-
### Key Changes
|
|
44
|
-
- [File/component 1: what will change]
|
|
45
|
-
- [File/component 2: what will change]
|
|
46
|
-
- [File/component 3: what will change]
|
|
47
|
-
|
|
48
|
-
## Risks
|
|
49
|
-
| Risk | Mitigation |
|
|
50
|
-
|------|------------|
|
|
51
|
-
| [Risk 1] | [How to handle] |
|
|
52
|
-
| [Risk 2] | [How to handle] |
|
|
53
|
-
|
|
54
|
-
## Testing Approach
|
|
55
|
-
### Test Scenarios
|
|
56
|
-
1. [Happy path scenario]
|
|
57
|
-
2. [Edge case scenario]
|
|
58
|
-
3. [Error scenario]
|
|
59
|
-
|
|
60
|
-
## Notes
|
|
61
|
-
[Any additional context]
|