@cluesmith/codev 2.0.0-rc.7 → 2.0.0-rc.71
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/bin/af.js +2 -2
- package/bin/consult.js +1 -1
- package/bin/porch.js +6 -35
- package/dashboard/dist/assets/index-C7FtNK6Y.css +32 -0
- package/dashboard/dist/assets/index-CDAINZKT.js +131 -0
- package/dashboard/dist/assets/index-CDAINZKT.js.map +1 -0
- package/dashboard/dist/index.html +14 -0
- package/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +173 -118
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/architect.d.ts +3 -3
- package/dist/agent-farm/commands/architect.d.ts.map +1 -1
- package/dist/agent-farm/commands/architect.js +20 -147
- package/dist/agent-farm/commands/architect.js.map +1 -1
- package/dist/agent-farm/commands/attach.d.ts +13 -0
- package/dist/agent-farm/commands/attach.d.ts.map +1 -0
- package/dist/agent-farm/commands/attach.js +144 -0
- package/dist/agent-farm/commands/attach.js.map +1 -0
- package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
- package/dist/agent-farm/commands/cleanup.js +35 -19
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/consult.d.ts +3 -4
- package/dist/agent-farm/commands/consult.d.ts.map +1 -1
- package/dist/agent-farm/commands/consult.js +27 -37
- package/dist/agent-farm/commands/consult.js.map +1 -1
- package/dist/agent-farm/commands/index.d.ts +2 -2
- package/dist/agent-farm/commands/index.d.ts.map +1 -1
- package/dist/agent-farm/commands/index.js +2 -2
- package/dist/agent-farm/commands/index.js.map +1 -1
- package/dist/agent-farm/commands/open.d.ts +4 -2
- package/dist/agent-farm/commands/open.d.ts.map +1 -1
- package/dist/agent-farm/commands/open.js +33 -83
- package/dist/agent-farm/commands/open.js.map +1 -1
- package/dist/agent-farm/commands/send.d.ts +1 -1
- package/dist/agent-farm/commands/send.d.ts.map +1 -1
- package/dist/agent-farm/commands/send.js +60 -79
- package/dist/agent-farm/commands/send.js.map +1 -1
- package/dist/agent-farm/commands/shell.d.ts +15 -0
- package/dist/agent-farm/commands/shell.d.ts.map +1 -0
- package/dist/agent-farm/commands/shell.js +50 -0
- package/dist/agent-farm/commands/shell.js.map +1 -0
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +597 -281
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/start.d.ts +10 -20
- package/dist/agent-farm/commands/start.d.ts.map +1 -1
- package/dist/agent-farm/commands/start.js +45 -491
- package/dist/agent-farm/commands/start.js.map +1 -1
- package/dist/agent-farm/commands/status.d.ts +2 -0
- package/dist/agent-farm/commands/status.d.ts.map +1 -1
- package/dist/agent-farm/commands/status.js +75 -24
- package/dist/agent-farm/commands/status.js.map +1 -1
- package/dist/agent-farm/commands/stop.d.ts +6 -0
- package/dist/agent-farm/commands/stop.d.ts.map +1 -1
- package/dist/agent-farm/commands/stop.js +49 -109
- package/dist/agent-farm/commands/stop.js.map +1 -1
- package/dist/agent-farm/commands/tower-cloud.d.ts +48 -0
- package/dist/agent-farm/commands/tower-cloud.d.ts.map +1 -0
- package/dist/agent-farm/commands/tower-cloud.js +329 -0
- package/dist/agent-farm/commands/tower-cloud.js.map +1 -0
- package/dist/agent-farm/commands/tower.d.ts +9 -0
- package/dist/agent-farm/commands/tower.d.ts.map +1 -1
- package/dist/agent-farm/commands/tower.js +59 -19
- package/dist/agent-farm/commands/tower.js.map +1 -1
- package/dist/agent-farm/db/index.d.ts +6 -2
- package/dist/agent-farm/db/index.d.ts.map +1 -1
- package/dist/agent-farm/db/index.js +246 -18
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/migrate.d.ts +0 -4
- package/dist/agent-farm/db/migrate.d.ts.map +1 -1
- package/dist/agent-farm/db/migrate.js +6 -55
- package/dist/agent-farm/db/migrate.js.map +1 -1
- package/dist/agent-farm/db/schema.d.ts +3 -3
- package/dist/agent-farm/db/schema.d.ts.map +1 -1
- package/dist/agent-farm/db/schema.js +25 -19
- package/dist/agent-farm/db/schema.js.map +1 -1
- package/dist/agent-farm/db/types.d.ts +3 -13
- package/dist/agent-farm/db/types.d.ts.map +1 -1
- package/dist/agent-farm/db/types.js +3 -11
- package/dist/agent-farm/db/types.js.map +1 -1
- package/dist/agent-farm/hq-connector.d.ts +2 -6
- package/dist/agent-farm/hq-connector.d.ts.map +1 -1
- package/dist/agent-farm/hq-connector.js +2 -17
- package/dist/agent-farm/hq-connector.js.map +1 -1
- package/dist/agent-farm/lib/cloud-config.d.ts +59 -0
- package/dist/agent-farm/lib/cloud-config.d.ts.map +1 -0
- package/dist/agent-farm/lib/cloud-config.js +143 -0
- package/dist/agent-farm/lib/cloud-config.js.map +1 -0
- package/dist/agent-farm/lib/tower-client.d.ts +163 -0
- package/dist/agent-farm/lib/tower-client.d.ts.map +1 -0
- package/dist/agent-farm/lib/tower-client.js +233 -0
- package/dist/agent-farm/lib/tower-client.js.map +1 -0
- package/dist/agent-farm/lib/tunnel-client.d.ts +117 -0
- package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -0
- package/dist/agent-farm/lib/tunnel-client.js +504 -0
- package/dist/agent-farm/lib/tunnel-client.js.map +1 -0
- package/dist/agent-farm/servers/tower-server.js +2653 -185
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/state.d.ts +6 -12
- package/dist/agent-farm/state.d.ts.map +1 -1
- package/dist/agent-farm/state.js +34 -49
- package/dist/agent-farm/state.js.map +1 -1
- package/dist/agent-farm/types.d.ts +49 -26
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.d.ts +0 -5
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +12 -44
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/agent-farm/utils/deps.d.ts.map +1 -1
- package/dist/agent-farm/utils/deps.js +0 -32
- package/dist/agent-farm/utils/deps.js.map +1 -1
- package/dist/agent-farm/utils/file-tabs.d.ts +27 -0
- package/dist/agent-farm/utils/file-tabs.d.ts.map +1 -0
- package/dist/agent-farm/utils/file-tabs.js +46 -0
- package/dist/agent-farm/utils/file-tabs.js.map +1 -0
- package/dist/agent-farm/utils/gate-status.d.ts +16 -0
- package/dist/agent-farm/utils/gate-status.d.ts.map +1 -0
- package/dist/agent-farm/utils/gate-status.js +79 -0
- package/dist/agent-farm/utils/gate-status.js.map +1 -0
- package/dist/agent-farm/utils/gate-watcher.d.ts +38 -0
- package/dist/agent-farm/utils/gate-watcher.d.ts.map +1 -0
- package/dist/agent-farm/utils/gate-watcher.js +122 -0
- package/dist/agent-farm/utils/gate-watcher.js.map +1 -0
- package/dist/agent-farm/utils/index.d.ts +0 -1
- package/dist/agent-farm/utils/index.d.ts.map +1 -1
- package/dist/agent-farm/utils/index.js +0 -1
- package/dist/agent-farm/utils/index.js.map +1 -1
- package/dist/agent-farm/utils/notifications.d.ts +30 -0
- package/dist/agent-farm/utils/notifications.d.ts.map +1 -0
- package/dist/agent-farm/utils/notifications.js +121 -0
- package/dist/agent-farm/utils/notifications.js.map +1 -0
- package/dist/agent-farm/utils/server-utils.d.ts +5 -5
- package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
- package/dist/agent-farm/utils/server-utils.js +5 -16
- package/dist/agent-farm/utils/server-utils.js.map +1 -1
- package/dist/agent-farm/utils/session.d.ts +32 -0
- package/dist/agent-farm/utils/session.d.ts.map +1 -0
- package/dist/agent-farm/utils/session.js +57 -0
- package/dist/agent-farm/utils/session.js.map +1 -0
- package/dist/agent-farm/utils/shell.d.ts +9 -22
- package/dist/agent-farm/utils/shell.d.ts.map +1 -1
- package/dist/agent-farm/utils/shell.js +34 -34
- package/dist/agent-farm/utils/shell.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +11 -54
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +49 -4
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/consult/index.d.ts +13 -2
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +245 -29
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +96 -79
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +41 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/porch/build-counter.d.ts +5 -0
- package/dist/commands/porch/build-counter.d.ts.map +1 -0
- package/dist/commands/porch/build-counter.js +5 -0
- package/dist/commands/porch/build-counter.js.map +1 -0
- package/dist/commands/porch/checks.d.ts +17 -29
- package/dist/commands/porch/checks.d.ts.map +1 -1
- package/dist/commands/porch/checks.js +96 -144
- package/dist/commands/porch/checks.js.map +1 -1
- package/dist/commands/porch/index.d.ts +25 -43
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +463 -1116
- package/dist/commands/porch/index.js.map +1 -1
- package/dist/commands/porch/next.d.ts +22 -0
- package/dist/commands/porch/next.d.ts.map +1 -0
- package/dist/commands/porch/next.js +571 -0
- package/dist/commands/porch/next.js.map +1 -0
- package/dist/commands/porch/plan.d.ts +70 -0
- package/dist/commands/porch/plan.d.ts.map +1 -0
- package/dist/commands/porch/plan.js +190 -0
- package/dist/commands/porch/plan.js.map +1 -0
- package/dist/commands/porch/prompts.d.ts +19 -0
- package/dist/commands/porch/prompts.d.ts.map +1 -0
- package/dist/commands/porch/prompts.js +277 -0
- package/dist/commands/porch/prompts.js.map +1 -0
- package/dist/commands/porch/protocol.d.ts +59 -0
- package/dist/commands/porch/protocol.d.ts.map +1 -0
- package/dist/commands/porch/protocol.js +294 -0
- package/dist/commands/porch/protocol.js.map +1 -0
- package/dist/commands/porch/state.d.ts +36 -107
- package/dist/commands/porch/state.d.ts.map +1 -1
- package/dist/commands/porch/state.js +120 -699
- package/dist/commands/porch/state.js.map +1 -1
- package/dist/commands/porch/types.d.ts +99 -164
- package/dist/commands/porch/types.d.ts.map +1 -1
- package/dist/commands/porch/types.js +2 -1
- package/dist/commands/porch/types.js.map +1 -1
- package/dist/commands/porch/verdict.d.ts +31 -0
- package/dist/commands/porch/verdict.d.ts.map +1 -0
- package/dist/commands/porch/verdict.js +59 -0
- package/dist/commands/porch/verdict.js.map +1 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +31 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/scaffold.d.ts +37 -0
- package/dist/lib/scaffold.d.ts.map +1 -1
- package/dist/lib/scaffold.js +114 -0
- package/dist/lib/scaffold.js.map +1 -1
- package/dist/terminal/index.d.ts +8 -0
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +5 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/terminal/pty-manager.d.ts +69 -0
- package/dist/terminal/pty-manager.d.ts.map +1 -0
- package/dist/terminal/pty-manager.js +377 -0
- package/dist/terminal/pty-manager.js.map +1 -0
- package/dist/terminal/pty-session.d.ts +104 -0
- package/dist/terminal/pty-session.d.ts.map +1 -0
- package/dist/terminal/pty-session.js +327 -0
- package/dist/terminal/pty-session.js.map +1 -0
- package/dist/terminal/ring-buffer.d.ts +34 -0
- package/dist/terminal/ring-buffer.d.ts.map +1 -0
- package/dist/terminal/ring-buffer.js +94 -0
- package/dist/terminal/ring-buffer.js.map +1 -0
- package/dist/terminal/session-manager.d.ts +115 -0
- package/dist/terminal/session-manager.d.ts.map +1 -0
- package/dist/terminal/session-manager.js +582 -0
- package/dist/terminal/session-manager.js.map +1 -0
- package/dist/terminal/shepherd-client.d.ts +66 -0
- package/dist/terminal/shepherd-client.d.ts.map +1 -0
- package/dist/terminal/shepherd-client.js +234 -0
- package/dist/terminal/shepherd-client.js.map +1 -0
- package/dist/terminal/shepherd-main.d.ts +19 -0
- package/dist/terminal/shepherd-main.d.ts.map +1 -0
- package/dist/terminal/shepherd-main.js +153 -0
- package/dist/terminal/shepherd-main.js.map +1 -0
- package/dist/terminal/shepherd-process.d.ts +75 -0
- package/dist/terminal/shepherd-process.d.ts.map +1 -0
- package/dist/terminal/shepherd-process.js +279 -0
- package/dist/terminal/shepherd-process.js.map +1 -0
- package/dist/terminal/shepherd-protocol.d.ts +115 -0
- package/dist/terminal/shepherd-protocol.d.ts.map +1 -0
- package/dist/terminal/shepherd-protocol.js +214 -0
- package/dist/terminal/shepherd-protocol.js.map +1 -0
- package/dist/terminal/shepherd-replay-buffer.d.ts +38 -0
- package/dist/terminal/shepherd-replay-buffer.d.ts.map +1 -0
- package/dist/terminal/shepherd-replay-buffer.js +94 -0
- package/dist/terminal/shepherd-replay-buffer.js.map +1 -0
- package/dist/terminal/ws-protocol.d.ts +27 -0
- package/dist/terminal/ws-protocol.d.ts.map +1 -0
- package/dist/terminal/ws-protocol.js +44 -0
- package/dist/terminal/ws-protocol.js.map +1 -0
- package/package.json +19 -5
- package/skeleton/.claude/skills/af/SKILL.md +89 -0
- package/skeleton/.claude/skills/codev/SKILL.md +41 -0
- package/skeleton/.claude/skills/consult/SKILL.md +81 -0
- package/skeleton/.claude/skills/generate-image/SKILL.md +56 -0
- package/skeleton/DEPENDENCIES.md +4 -62
- package/skeleton/builders.md +1 -1
- package/skeleton/consult-types/impl-review.md +18 -9
- package/skeleton/consult-types/integration-review.md +1 -1
- package/skeleton/consult-types/plan-review.md +1 -1
- package/skeleton/consult-types/pr-ready.md +1 -1
- package/skeleton/consult-types/spec-review.md +1 -1
- package/skeleton/porch/prompts/defend.md +1 -1
- package/skeleton/porch/prompts/evaluate.md +2 -2
- package/skeleton/porch/prompts/implement.md +1 -1
- package/skeleton/porch/prompts/plan.md +1 -1
- package/skeleton/porch/prompts/review.md +4 -4
- package/skeleton/porch/prompts/specify.md +1 -1
- package/skeleton/porch/prompts/understand.md +2 -2
- package/skeleton/protocol-schema.json +282 -0
- package/skeleton/protocols/bugfix/builder-prompt.md +54 -0
- package/skeleton/protocols/bugfix/prompts/fix.md +77 -0
- package/skeleton/protocols/bugfix/prompts/investigate.md +77 -0
- package/skeleton/protocols/bugfix/prompts/pr.md +84 -0
- package/skeleton/protocols/bugfix/protocol.json +20 -33
- package/skeleton/protocols/experiment/builder-prompt.md +52 -0
- package/skeleton/protocols/experiment/protocol.json +101 -0
- package/skeleton/protocols/experiment/protocol.md +3 -3
- package/skeleton/protocols/experiment/templates/notes.md +1 -1
- package/skeleton/protocols/maintain/builder-prompt.md +46 -0
- package/skeleton/protocols/maintain/prompts/audit.md +111 -0
- package/skeleton/protocols/maintain/prompts/clean.md +91 -0
- package/skeleton/protocols/maintain/prompts/sync.md +113 -0
- package/skeleton/protocols/maintain/prompts/verify.md +110 -0
- package/skeleton/protocols/maintain/protocol.json +141 -0
- package/skeleton/protocols/maintain/protocol.md +17 -11
- package/skeleton/protocols/protocol-schema.json +54 -1
- package/skeleton/protocols/spir/builder-prompt.md +59 -0
- package/skeleton/protocols/spir/prompts/implement.md +208 -0
- package/skeleton/protocols/{spider → spir}/prompts/plan.md +6 -70
- package/skeleton/protocols/{spider → spir}/prompts/review.md +20 -39
- package/skeleton/protocols/{spider → spir}/prompts/specify.md +33 -61
- package/skeleton/protocols/spir/protocol.json +156 -0
- package/skeleton/protocols/{spider → spir}/protocol.md +35 -21
- package/skeleton/protocols/{spider → spir}/templates/plan.md +14 -0
- package/skeleton/protocols/spir/templates/review.md +89 -0
- package/skeleton/protocols/tick/builder-prompt.md +56 -0
- package/skeleton/protocols/tick/protocol.json +7 -2
- package/skeleton/protocols/tick/protocol.md +18 -18
- package/skeleton/protocols/tick/templates/review.md +1 -1
- package/skeleton/resources/commands/agent-farm.md +63 -46
- package/skeleton/resources/commands/codev.md +0 -2
- package/skeleton/resources/commands/overview.md +7 -17
- package/skeleton/resources/workflow-reference.md +4 -4
- package/skeleton/roles/architect.md +152 -315
- package/skeleton/roles/builder.md +110 -218
- package/skeleton/roles/consultant.md +6 -6
- package/skeleton/templates/AGENTS.md +2 -2
- package/skeleton/templates/CLAUDE.md +2 -2
- package/skeleton/templates/cheatsheet.md +7 -5
- package/skeleton/templates/projectlist.md +1 -1
- package/templates/dashboard/index.html +17 -43
- package/templates/dashboard/js/dialogs.js +7 -7
- package/templates/dashboard/js/files.js +2 -2
- package/templates/dashboard/js/main.js +4 -4
- package/templates/dashboard/js/projects.js +3 -3
- package/templates/dashboard/js/tabs.js +1 -1
- package/templates/dashboard/js/utils.js +22 -87
- package/templates/open.html +26 -0
- package/templates/tower.html +642 -36
- package/dist/agent-farm/commands/kickoff.d.ts +0 -20
- package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
- package/dist/agent-farm/commands/kickoff.js +0 -337
- package/dist/agent-farm/commands/kickoff.js.map +0 -1
- package/dist/agent-farm/commands/rename.d.ts +0 -13
- package/dist/agent-farm/commands/rename.d.ts.map +0 -1
- package/dist/agent-farm/commands/rename.js +0 -33
- package/dist/agent-farm/commands/rename.js.map +0 -1
- package/dist/agent-farm/commands/tutorial.d.ts +0 -10
- package/dist/agent-farm/commands/tutorial.d.ts.map +0 -1
- package/dist/agent-farm/commands/tutorial.js +0 -49
- package/dist/agent-farm/commands/tutorial.js.map +0 -1
- package/dist/agent-farm/commands/util.d.ts +0 -15
- package/dist/agent-farm/commands/util.d.ts.map +0 -1
- package/dist/agent-farm/commands/util.js +0 -108
- package/dist/agent-farm/commands/util.js.map +0 -1
- package/dist/agent-farm/servers/dashboard-server.d.ts +0 -7
- package/dist/agent-farm/servers/dashboard-server.d.ts.map +0 -1
- package/dist/agent-farm/servers/dashboard-server.js +0 -1872
- package/dist/agent-farm/servers/dashboard-server.js.map +0 -1
- package/dist/agent-farm/servers/open-server.d.ts +0 -7
- package/dist/agent-farm/servers/open-server.d.ts.map +0 -1
- package/dist/agent-farm/servers/open-server.js +0 -315
- package/dist/agent-farm/servers/open-server.js.map +0 -1
- package/dist/agent-farm/tutorial/index.d.ts +0 -8
- package/dist/agent-farm/tutorial/index.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/index.js +0 -8
- package/dist/agent-farm/tutorial/index.js.map +0 -1
- package/dist/agent-farm/tutorial/prompts.d.ts +0 -57
- package/dist/agent-farm/tutorial/prompts.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/prompts.js +0 -147
- package/dist/agent-farm/tutorial/prompts.js.map +0 -1
- package/dist/agent-farm/tutorial/runner.d.ts +0 -52
- package/dist/agent-farm/tutorial/runner.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/runner.js +0 -204
- package/dist/agent-farm/tutorial/runner.js.map +0 -1
- package/dist/agent-farm/tutorial/state.d.ts +0 -26
- package/dist/agent-farm/tutorial/state.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/state.js +0 -89
- package/dist/agent-farm/tutorial/state.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/first-spec.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/first-spec.js +0 -136
- package/dist/agent-farm/tutorial/steps/first-spec.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/implementation.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/implementation.js +0 -76
- package/dist/agent-farm/tutorial/steps/implementation.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/index.d.ts +0 -10
- package/dist/agent-farm/tutorial/steps/index.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/index.js +0 -10
- package/dist/agent-farm/tutorial/steps/index.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/planning.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/planning.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/planning.js +0 -143
- package/dist/agent-farm/tutorial/steps/planning.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/review.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/review.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/review.js +0 -78
- package/dist/agent-farm/tutorial/steps/review.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/setup.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/setup.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/setup.js +0 -126
- package/dist/agent-farm/tutorial/steps/setup.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/welcome.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/welcome.js +0 -50
- package/dist/agent-farm/tutorial/steps/welcome.js.map +0 -1
- package/dist/agent-farm/utils/orphan-handler.d.ts +0 -27
- package/dist/agent-farm/utils/orphan-handler.d.ts.map +0 -1
- package/dist/agent-farm/utils/orphan-handler.js +0 -149
- package/dist/agent-farm/utils/orphan-handler.js.map +0 -1
- package/dist/agent-farm/utils/port-registry.d.ts +0 -58
- package/dist/agent-farm/utils/port-registry.d.ts.map +0 -1
- package/dist/agent-farm/utils/port-registry.js +0 -166
- package/dist/agent-farm/utils/port-registry.js.map +0 -1
- package/dist/agent-farm/utils/terminal-ports.d.ts +0 -18
- package/dist/agent-farm/utils/terminal-ports.d.ts.map +0 -1
- package/dist/agent-farm/utils/terminal-ports.js +0 -35
- package/dist/agent-farm/utils/terminal-ports.js.map +0 -1
- package/dist/commands/pcheck/cache.d.ts +0 -48
- package/dist/commands/pcheck/cache.d.ts.map +0 -1
- package/dist/commands/pcheck/cache.js +0 -170
- package/dist/commands/pcheck/cache.js.map +0 -1
- package/dist/commands/pcheck/evaluator.d.ts +0 -15
- package/dist/commands/pcheck/evaluator.d.ts.map +0 -1
- package/dist/commands/pcheck/evaluator.js +0 -246
- package/dist/commands/pcheck/evaluator.js.map +0 -1
- package/dist/commands/pcheck/index.d.ts +0 -12
- package/dist/commands/pcheck/index.d.ts.map +0 -1
- package/dist/commands/pcheck/index.js +0 -249
- package/dist/commands/pcheck/index.js.map +0 -1
- package/dist/commands/pcheck/parser.d.ts +0 -39
- package/dist/commands/pcheck/parser.d.ts.map +0 -1
- package/dist/commands/pcheck/parser.js +0 -155
- package/dist/commands/pcheck/parser.js.map +0 -1
- package/dist/commands/pcheck/types.d.ts +0 -82
- package/dist/commands/pcheck/types.d.ts.map +0 -1
- package/dist/commands/pcheck/types.js +0 -5
- package/dist/commands/pcheck/types.js.map +0 -1
- package/dist/commands/porch/consultation.d.ts +0 -56
- package/dist/commands/porch/consultation.d.ts.map +0 -1
- package/dist/commands/porch/consultation.js +0 -330
- package/dist/commands/porch/consultation.js.map +0 -1
- package/dist/commands/porch/notifications.d.ts +0 -99
- package/dist/commands/porch/notifications.d.ts.map +0 -1
- package/dist/commands/porch/notifications.js +0 -223
- package/dist/commands/porch/notifications.js.map +0 -1
- package/dist/commands/porch/plan-parser.d.ts +0 -38
- package/dist/commands/porch/plan-parser.d.ts.map +0 -1
- package/dist/commands/porch/plan-parser.js +0 -166
- package/dist/commands/porch/plan-parser.js.map +0 -1
- package/dist/commands/porch/protocol-loader.d.ts +0 -46
- package/dist/commands/porch/protocol-loader.d.ts.map +0 -1
- package/dist/commands/porch/protocol-loader.js +0 -253
- package/dist/commands/porch/protocol-loader.js.map +0 -1
- package/dist/commands/porch/signal-parser.d.ts +0 -88
- package/dist/commands/porch/signal-parser.d.ts.map +0 -1
- package/dist/commands/porch/signal-parser.js +0 -148
- package/dist/commands/porch/signal-parser.js.map +0 -1
- package/dist/commands/tower.d.ts +0 -16
- package/dist/commands/tower.d.ts.map +0 -1
- package/dist/commands/tower.js +0 -21
- package/dist/commands/tower.js.map +0 -1
- package/skeleton/config.json +0 -7
- package/skeleton/porch/protocols/bugfix.json +0 -85
- package/skeleton/porch/protocols/spider.json +0 -135
- package/skeleton/porch/protocols/tick.json +0 -76
- package/skeleton/protocols/spider/prompts/defend.md +0 -215
- package/skeleton/protocols/spider/prompts/evaluate.md +0 -241
- package/skeleton/protocols/spider/prompts/implement.md +0 -149
- package/skeleton/protocols/spider/protocol.json +0 -210
- package/skeleton/protocols/spider/templates/review.md +0 -207
- package/templates/dashboard/css/activity.css +0 -151
- package/templates/dashboard/js/activity.js +0 -112
- /package/skeleton/protocols/{spider → spir}/templates/spec.md +0 -0
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "../../protocol-schema.json",
|
|
3
|
-
"name": "spider",
|
|
4
|
-
"version": "1.0.0",
|
|
5
|
-
"description": "Specification-driven development with multi-agent consultation",
|
|
6
|
-
"phases": [
|
|
7
|
-
{
|
|
8
|
-
"id": "specify",
|
|
9
|
-
"name": "Specify",
|
|
10
|
-
"description": "Collaborative design exploration and specification",
|
|
11
|
-
"type": "once",
|
|
12
|
-
"prompt": "specify.md",
|
|
13
|
-
"steps": [
|
|
14
|
-
"clarifying_questions",
|
|
15
|
-
"problem_analysis",
|
|
16
|
-
"solution_exploration",
|
|
17
|
-
"open_questions",
|
|
18
|
-
"success_criteria",
|
|
19
|
-
"spec_draft",
|
|
20
|
-
"consultation_1",
|
|
21
|
-
"human_review",
|
|
22
|
-
"consultation_2",
|
|
23
|
-
"spec_final"
|
|
24
|
-
],
|
|
25
|
-
"consultation": {
|
|
26
|
-
"on": "review",
|
|
27
|
-
"models": ["gemini", "codex", "claude"],
|
|
28
|
-
"type": "spec-review",
|
|
29
|
-
"parallel": true,
|
|
30
|
-
"max_rounds": 3
|
|
31
|
-
},
|
|
32
|
-
"gate": {
|
|
33
|
-
"name": "spec-approval",
|
|
34
|
-
"description": "Human approves specification before planning",
|
|
35
|
-
"requires": ["spec_final", "consultation_2"],
|
|
36
|
-
"next": "plan"
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"id": "plan",
|
|
41
|
-
"name": "Plan",
|
|
42
|
-
"description": "Implementation planning with phased breakdown",
|
|
43
|
-
"type": "once",
|
|
44
|
-
"prompt": "plan.md",
|
|
45
|
-
"steps": [
|
|
46
|
-
"analyze_spec",
|
|
47
|
-
"identify_phases",
|
|
48
|
-
"define_steps",
|
|
49
|
-
"plan_draft",
|
|
50
|
-
"consultation",
|
|
51
|
-
"human_review",
|
|
52
|
-
"plan_final"
|
|
53
|
-
],
|
|
54
|
-
"consultation": {
|
|
55
|
-
"on": "review",
|
|
56
|
-
"models": ["gemini", "codex", "claude"],
|
|
57
|
-
"type": "plan-review",
|
|
58
|
-
"parallel": true,
|
|
59
|
-
"max_rounds": 2
|
|
60
|
-
},
|
|
61
|
-
"gate": {
|
|
62
|
-
"name": "plan-approval",
|
|
63
|
-
"description": "Human approves plan before implementation",
|
|
64
|
-
"requires": ["plan_final", "consultation"],
|
|
65
|
-
"next": "implement"
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
"id": "implement",
|
|
70
|
-
"name": "Implement",
|
|
71
|
-
"description": "Code implementation following the plan",
|
|
72
|
-
"type": "per_plan_phase",
|
|
73
|
-
"prompt": "implement.md",
|
|
74
|
-
"steps": [
|
|
75
|
-
"read_phase",
|
|
76
|
-
"implement_code",
|
|
77
|
-
"self_review",
|
|
78
|
-
"commit"
|
|
79
|
-
],
|
|
80
|
-
"checks": {
|
|
81
|
-
"build": {
|
|
82
|
-
"command": "npm run build",
|
|
83
|
-
"on_fail": "retry",
|
|
84
|
-
"max_retries": 2
|
|
85
|
-
},
|
|
86
|
-
"typecheck": {
|
|
87
|
-
"command": "npm run typecheck",
|
|
88
|
-
"on_fail": "retry",
|
|
89
|
-
"max_retries": 2
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
"transition": {
|
|
93
|
-
"on_complete": "defend",
|
|
94
|
-
"on_fail": "implement"
|
|
95
|
-
}
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
"id": "defend",
|
|
99
|
-
"name": "Defend",
|
|
100
|
-
"description": "Testing and verification",
|
|
101
|
-
"type": "per_plan_phase",
|
|
102
|
-
"prompt": "defend.md",
|
|
103
|
-
"steps": [
|
|
104
|
-
"write_tests",
|
|
105
|
-
"run_tests",
|
|
106
|
-
"fix_failures",
|
|
107
|
-
"commit"
|
|
108
|
-
],
|
|
109
|
-
"checks": {
|
|
110
|
-
"tests": {
|
|
111
|
-
"command": "npm test",
|
|
112
|
-
"on_fail": "implement",
|
|
113
|
-
"max_retries": 1
|
|
114
|
-
},
|
|
115
|
-
"lint": {
|
|
116
|
-
"command": "npm run lint",
|
|
117
|
-
"on_fail": "retry",
|
|
118
|
-
"max_retries": 1
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
|
-
"consultation": {
|
|
122
|
-
"on": "complete",
|
|
123
|
-
"models": ["gemini", "codex", "claude"],
|
|
124
|
-
"type": "impl-review",
|
|
125
|
-
"parallel": true,
|
|
126
|
-
"max_rounds": 2
|
|
127
|
-
},
|
|
128
|
-
"transition": {
|
|
129
|
-
"on_complete": "evaluate",
|
|
130
|
-
"on_fail": "implement"
|
|
131
|
-
}
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
"id": "evaluate",
|
|
135
|
-
"name": "Evaluate",
|
|
136
|
-
"description": "Verify implementation against spec",
|
|
137
|
-
"type": "per_plan_phase",
|
|
138
|
-
"prompt": "evaluate.md",
|
|
139
|
-
"steps": [
|
|
140
|
-
"check_spec_compliance",
|
|
141
|
-
"check_success_criteria",
|
|
142
|
-
"document_deviations"
|
|
143
|
-
],
|
|
144
|
-
"gate": {
|
|
145
|
-
"name": "phase-complete",
|
|
146
|
-
"description": "Plan phase implementation is verified",
|
|
147
|
-
"requires": ["all_checks_pass", "spec_compliance"],
|
|
148
|
-
"next": "implement"
|
|
149
|
-
},
|
|
150
|
-
"transition": {
|
|
151
|
-
"on_complete": "implement",
|
|
152
|
-
"on_all_phases_complete": "review"
|
|
153
|
-
}
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
"id": "review",
|
|
157
|
-
"name": "Review",
|
|
158
|
-
"description": "Final review and lessons learned",
|
|
159
|
-
"type": "once",
|
|
160
|
-
"prompt": "review.md",
|
|
161
|
-
"steps": [
|
|
162
|
-
"create_review_document",
|
|
163
|
-
"document_lessons",
|
|
164
|
-
"final_consultation",
|
|
165
|
-
"create_pr"
|
|
166
|
-
],
|
|
167
|
-
"consultation": {
|
|
168
|
-
"on": "review",
|
|
169
|
-
"models": ["gemini", "codex", "claude"],
|
|
170
|
-
"type": "pr-ready",
|
|
171
|
-
"parallel": true,
|
|
172
|
-
"max_rounds": 1
|
|
173
|
-
},
|
|
174
|
-
"gate": {
|
|
175
|
-
"name": "pr-ready",
|
|
176
|
-
"description": "Implementation ready for PR",
|
|
177
|
-
"requires": ["review_complete", "all_tests_pass", "consultation"],
|
|
178
|
-
"next": null
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
],
|
|
182
|
-
"signals": {
|
|
183
|
-
"PHASE_COMPLETE": {
|
|
184
|
-
"description": "Signal current phase is complete",
|
|
185
|
-
"transitions_to": "next_phase"
|
|
186
|
-
},
|
|
187
|
-
"BLOCKED": {
|
|
188
|
-
"description": "Signal implementation is blocked",
|
|
189
|
-
"requires": "reason"
|
|
190
|
-
},
|
|
191
|
-
"REVISION_NEEDED": {
|
|
192
|
-
"description": "Signal changes requested",
|
|
193
|
-
"transitions_to": "current_phase"
|
|
194
|
-
},
|
|
195
|
-
"APPROVED": {
|
|
196
|
-
"description": "Signal gate approval received"
|
|
197
|
-
}
|
|
198
|
-
},
|
|
199
|
-
"defaults": {
|
|
200
|
-
"consultation": {
|
|
201
|
-
"enabled": true,
|
|
202
|
-
"models": ["gemini", "codex", "claude"],
|
|
203
|
-
"parallel": true
|
|
204
|
-
},
|
|
205
|
-
"checks": {
|
|
206
|
-
"build": "npm run build",
|
|
207
|
-
"test": "npm test"
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
# Review: [Feature/Project Name]
|
|
2
|
-
|
|
3
|
-
## Metadata
|
|
4
|
-
- **Date**: [YYYY-MM-DD]
|
|
5
|
-
- **Specification**: [Link to codev/specs/spec-file.md]
|
|
6
|
-
- **Plan**: [Link to codev/plans/plan-file.md]
|
|
7
|
-
|
|
8
|
-
## Executive Summary
|
|
9
|
-
[Brief overview of what was built, how it went, and key outcomes]
|
|
10
|
-
|
|
11
|
-
## Specification Compliance
|
|
12
|
-
|
|
13
|
-
### Success Criteria Assessment
|
|
14
|
-
| Criterion | Status | Evidence | Notes |
|
|
15
|
-
|-----------|--------|----------|-------|
|
|
16
|
-
| [Criterion 1] | ✅/❌/⚠️ | [Link/description] | [Any context] |
|
|
17
|
-
| [Criterion 2] | ✅/❌/⚠️ | [Link/description] | [Any context] |
|
|
18
|
-
| [All tests pass >90% coverage] | ✅/❌/⚠️ | [Coverage report] | [Details] |
|
|
19
|
-
| [Performance benchmarks met] | ✅/❌/⚠️ | [Metrics] | [Details] |
|
|
20
|
-
|
|
21
|
-
### Deviations from Specification
|
|
22
|
-
| Original Requirement | What Was Built | Reason for Deviation |
|
|
23
|
-
|---------------------|----------------|---------------------|
|
|
24
|
-
| [If any] | [Actual] | [Justification] |
|
|
25
|
-
|
|
26
|
-
## Plan Execution Review
|
|
27
|
-
|
|
28
|
-
### Phase Completion
|
|
29
|
-
| Phase | Status | Notes |
|
|
30
|
-
|-------|--------|-------|
|
|
31
|
-
| Phase 1 | Complete | [Context] |
|
|
32
|
-
| Phase 2 | Complete | [Context] |
|
|
33
|
-
|
|
34
|
-
### Deliverables Checklist
|
|
35
|
-
- [x] All planned features implemented
|
|
36
|
-
- [x] Test coverage achieved
|
|
37
|
-
- [x] Documentation updated
|
|
38
|
-
- [x] Performance requirements met
|
|
39
|
-
- [ ] [Any incomplete items]
|
|
40
|
-
|
|
41
|
-
## Code Quality Assessment
|
|
42
|
-
|
|
43
|
-
### Architecture Impact
|
|
44
|
-
- **Positive Changes**: [Improvements made to architecture]
|
|
45
|
-
- **Technical Debt Incurred**: [Any shortcuts taken]
|
|
46
|
-
- **Future Considerations**: [What should be refactored later]
|
|
47
|
-
|
|
48
|
-
### Code Metrics
|
|
49
|
-
- **Lines of Code**: [Added/Modified/Removed]
|
|
50
|
-
- **Test Coverage**: [Percentage and areas covered]
|
|
51
|
-
- **Code Complexity**: [Cyclomatic complexity if measured]
|
|
52
|
-
- **Documentation Coverage**: [Public APIs documented?]
|
|
53
|
-
|
|
54
|
-
### Security Review
|
|
55
|
-
- **Vulnerabilities Found**: [None/List]
|
|
56
|
-
- **Security Best Practices**: [Followed/Exceptions]
|
|
57
|
-
- **Sensitive Data Handling**: [Properly secured?]
|
|
58
|
-
|
|
59
|
-
## Performance Analysis
|
|
60
|
-
|
|
61
|
-
### Benchmarks
|
|
62
|
-
| Metric | Target | Achieved | Status |
|
|
63
|
-
|--------|--------|----------|---------|
|
|
64
|
-
| Response Time (p95) | <200ms | [Actual] | ✅/❌ |
|
|
65
|
-
| Throughput | 1000 rps | [Actual] | ✅/❌ |
|
|
66
|
-
| Memory Usage | <500MB | [Actual] | ✅/❌ |
|
|
67
|
-
|
|
68
|
-
### Load Testing Results
|
|
69
|
-
[Summary of load testing outcomes, if performed]
|
|
70
|
-
|
|
71
|
-
## Testing Summary
|
|
72
|
-
|
|
73
|
-
### Test Execution
|
|
74
|
-
- **Unit Tests**: [X passed, Y failed]
|
|
75
|
-
- **Integration Tests**: [X passed, Y failed]
|
|
76
|
-
- **E2E Tests**: [X passed, Y failed]
|
|
77
|
-
- **Manual Testing**: [Scenarios tested]
|
|
78
|
-
|
|
79
|
-
### Issues Found During Testing
|
|
80
|
-
| Issue | Severity | Resolution |
|
|
81
|
-
|-------|----------|------------|
|
|
82
|
-
| [Bug 1] | Critical/High/Medium/Low | [Fixed/Deferred] |
|
|
83
|
-
|
|
84
|
-
## Lessons Learned
|
|
85
|
-
|
|
86
|
-
### What Went Well
|
|
87
|
-
1. [Success point 1 - be specific]
|
|
88
|
-
2. [Success point 2 - include why it worked]
|
|
89
|
-
3. [Success point 3 - note for future replication]
|
|
90
|
-
|
|
91
|
-
### What Was Challenging
|
|
92
|
-
1. [Challenge 1 - describe the issue]
|
|
93
|
-
- **Root Cause**: [Why it happened]
|
|
94
|
-
- **Resolution**: [How it was addressed]
|
|
95
|
-
- **Prevention**: [How to avoid in future]
|
|
96
|
-
|
|
97
|
-
2. [Challenge 2]
|
|
98
|
-
- **Root Cause**:
|
|
99
|
-
- **Resolution**:
|
|
100
|
-
- **Prevention**:
|
|
101
|
-
|
|
102
|
-
### What Would You Do Differently
|
|
103
|
-
1. [Improvement 1 - be actionable]
|
|
104
|
-
2. [Improvement 2 - be specific]
|
|
105
|
-
3. [Improvement 3 - be realistic]
|
|
106
|
-
|
|
107
|
-
## Methodology Feedback
|
|
108
|
-
|
|
109
|
-
### SP(IDE)R Protocol Effectiveness
|
|
110
|
-
- **Specification Phase**: [Was it thorough enough? Too detailed?]
|
|
111
|
-
- **Planning Phase**: [Were estimates accurate? Phases well-sized?]
|
|
112
|
-
- **Implementation Loop**: [Did IDE cycle work well?]
|
|
113
|
-
- **Review Process**: [Is this review capturing the right information?]
|
|
114
|
-
|
|
115
|
-
### Suggested Improvements
|
|
116
|
-
1. **Template Updates**: [Any template improvements needed?]
|
|
117
|
-
2. **Process Changes**: [Any step modifications recommended?]
|
|
118
|
-
3. **Tool Needs**: [Any automation opportunities?]
|
|
119
|
-
|
|
120
|
-
## Resource Analysis
|
|
121
|
-
|
|
122
|
-
### Time Investment
|
|
123
|
-
- **Planned**: [X person-days]
|
|
124
|
-
- **Actual**: [Y person-days]
|
|
125
|
-
- **Variance Explanation**: [Why different?]
|
|
126
|
-
|
|
127
|
-
### Team Feedback
|
|
128
|
-
- [Feedback from team members]
|
|
129
|
-
- [Collaboration insights]
|
|
130
|
-
- [Communication effectiveness]
|
|
131
|
-
|
|
132
|
-
## Follow-Up Actions
|
|
133
|
-
|
|
134
|
-
### Immediate (This Week)
|
|
135
|
-
- [ ] [Action 1 - owner]
|
|
136
|
-
- [ ] [Action 2 - owner]
|
|
137
|
-
|
|
138
|
-
### Short-term (This Month)
|
|
139
|
-
- [ ] [Action 1 - owner]
|
|
140
|
-
- [ ] [Action 2 - owner]
|
|
141
|
-
|
|
142
|
-
### Long-term (Future Consideration)
|
|
143
|
-
- [ ] [Improvement opportunity 1]
|
|
144
|
-
- [ ] [Technical debt to address]
|
|
145
|
-
|
|
146
|
-
## Risk Retrospective
|
|
147
|
-
|
|
148
|
-
### Identified Risks That Materialized
|
|
149
|
-
| Risk | Impact | How Handled | Prevention for Future |
|
|
150
|
-
|------|--------|-------------|----------------------|
|
|
151
|
-
| [Risk] | [What happened] | [Resolution] | [Learning] |
|
|
152
|
-
|
|
153
|
-
### Unforeseen Issues
|
|
154
|
-
| Issue | Impact | How Handled | How to Predict |
|
|
155
|
-
|-------|--------|-------------|----------------|
|
|
156
|
-
| [Issue] | [Impact] | [Resolution] | [Detection method] |
|
|
157
|
-
|
|
158
|
-
## Documentation Updates
|
|
159
|
-
|
|
160
|
-
### Completed
|
|
161
|
-
- [x] API documentation updated
|
|
162
|
-
- [x] README updated
|
|
163
|
-
- [x] Architecture diagrams revised
|
|
164
|
-
- [ ] [Pending items]
|
|
165
|
-
|
|
166
|
-
### Knowledge Transfer
|
|
167
|
-
- **Wiki/Confluence Updates**: [Links]
|
|
168
|
-
- **Team Presentations**: [Scheduled/Completed]
|
|
169
|
-
- **Runbooks Created**: [Links]
|
|
170
|
-
|
|
171
|
-
## Stakeholder Feedback
|
|
172
|
-
- **Product Owner**: [Feedback]
|
|
173
|
-
- **End Users**: [Feedback if available]
|
|
174
|
-
- **Support Team**: [Readiness assessment]
|
|
175
|
-
|
|
176
|
-
## Final Recommendations
|
|
177
|
-
|
|
178
|
-
### For Future Similar Projects
|
|
179
|
-
1. [Recommendation 1]
|
|
180
|
-
2. [Recommendation 2]
|
|
181
|
-
|
|
182
|
-
### For Methodology Evolution
|
|
183
|
-
1. [Suggestion 1]
|
|
184
|
-
2. [Suggestion 2]
|
|
185
|
-
|
|
186
|
-
## Conclusion
|
|
187
|
-
[Summary statement about the project success, key achievements, and main learnings]
|
|
188
|
-
|
|
189
|
-
## Appendix
|
|
190
|
-
|
|
191
|
-
### Links
|
|
192
|
-
- **Code**: [Repository links, PRs]
|
|
193
|
-
- **Documentation**: [All related docs]
|
|
194
|
-
- **Metrics Dashboards**: [Monitoring links]
|
|
195
|
-
- **Test Reports**: [CI/CD links]
|
|
196
|
-
|
|
197
|
-
### Expert Consultation Summary
|
|
198
|
-
[If expert AI review was performed post-implementation]
|
|
199
|
-
- **Model**: [Which model]
|
|
200
|
-
- **Feedback**: [Key points]
|
|
201
|
-
- **Incorporated Changes**: [What was acted upon]
|
|
202
|
-
|
|
203
|
-
## Sign-off
|
|
204
|
-
- [ ] Technical Lead Review
|
|
205
|
-
- [ ] Team Retrospective Completed
|
|
206
|
-
- [ ] Lessons Documented
|
|
207
|
-
- [ ] Methodology Updates Proposed
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
/* Activity Summary Modal and Tab (Spec 0059) */
|
|
2
|
-
|
|
3
|
-
/* Activity Summary Modal */
|
|
4
|
-
.activity-dialog {
|
|
5
|
-
width: 600px;
|
|
6
|
-
max-width: 90vw;
|
|
7
|
-
max-height: 80vh;
|
|
8
|
-
display: flex;
|
|
9
|
-
flex-direction: column;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.activity-dialog-header {
|
|
13
|
-
display: flex;
|
|
14
|
-
justify-content: space-between;
|
|
15
|
-
align-items: center;
|
|
16
|
-
margin-bottom: 16px;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.activity-dialog-header h3 {
|
|
20
|
-
margin: 0;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.activity-close-btn {
|
|
24
|
-
background: none;
|
|
25
|
-
border: none;
|
|
26
|
-
font-size: 24px;
|
|
27
|
-
color: var(--text-muted);
|
|
28
|
-
cursor: pointer;
|
|
29
|
-
padding: 0 8px;
|
|
30
|
-
line-height: 1;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.activity-close-btn:hover {
|
|
34
|
-
color: var(--text-primary);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.activity-dialog-content {
|
|
38
|
-
flex: 1;
|
|
39
|
-
overflow-y: auto;
|
|
40
|
-
max-height: 50vh;
|
|
41
|
-
margin-bottom: 16px;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.activity-loading {
|
|
45
|
-
display: flex;
|
|
46
|
-
align-items: center;
|
|
47
|
-
justify-content: center;
|
|
48
|
-
gap: 12px;
|
|
49
|
-
padding: 40px 20px;
|
|
50
|
-
color: var(--text-muted);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.activity-spinner {
|
|
54
|
-
width: 20px;
|
|
55
|
-
height: 20px;
|
|
56
|
-
border: 2px solid var(--border);
|
|
57
|
-
border-top-color: var(--accent);
|
|
58
|
-
border-radius: 50%;
|
|
59
|
-
animation: spin 1s linear infinite;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
@keyframes spin {
|
|
63
|
-
to { transform: rotate(360deg); }
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.activity-empty {
|
|
67
|
-
text-align: center;
|
|
68
|
-
padding: 40px 20px;
|
|
69
|
-
color: var(--text-muted);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.activity-error {
|
|
73
|
-
text-align: center;
|
|
74
|
-
padding: 40px 20px;
|
|
75
|
-
color: #ef4444;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.activity-summary {
|
|
79
|
-
line-height: 1.6;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.activity-ai-summary {
|
|
83
|
-
background: var(--bg-tertiary);
|
|
84
|
-
border-left: 3px solid var(--accent);
|
|
85
|
-
padding: 12px 16px;
|
|
86
|
-
margin-bottom: 20px;
|
|
87
|
-
font-style: italic;
|
|
88
|
-
color: var(--text-secondary);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
.activity-section {
|
|
92
|
-
margin-bottom: 16px;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.activity-section h4 {
|
|
96
|
-
font-size: 13px;
|
|
97
|
-
text-transform: uppercase;
|
|
98
|
-
color: var(--text-muted);
|
|
99
|
-
margin: 0 0 8px 0;
|
|
100
|
-
letter-spacing: 0.5px;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.activity-section ul {
|
|
104
|
-
margin: 0;
|
|
105
|
-
padding-left: 20px;
|
|
106
|
-
color: var(--text-secondary);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.activity-section li {
|
|
110
|
-
margin-bottom: 4px;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.activity-section p {
|
|
114
|
-
margin: 4px 0;
|
|
115
|
-
color: var(--text-secondary);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
.activity-time-value {
|
|
119
|
-
font-size: 18px;
|
|
120
|
-
font-weight: 500;
|
|
121
|
-
color: var(--text-primary);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
.activity-dialog-footer {
|
|
125
|
-
display: flex;
|
|
126
|
-
justify-content: flex-end;
|
|
127
|
-
gap: 8px;
|
|
128
|
-
padding-top: 12px;
|
|
129
|
-
border-top: 1px solid var(--border);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/* Activity Tab Styles */
|
|
133
|
-
.activity-tab-container {
|
|
134
|
-
padding: 24px;
|
|
135
|
-
max-width: 700px;
|
|
136
|
-
margin: 0 auto;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
.activity-tab-container .activity-summary {
|
|
140
|
-
background: var(--bg-secondary);
|
|
141
|
-
border-radius: 8px;
|
|
142
|
-
padding: 20px;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
.activity-tab-container .activity-actions {
|
|
146
|
-
margin-top: 20px;
|
|
147
|
-
padding-top: 16px;
|
|
148
|
-
border-top: 1px solid var(--border);
|
|
149
|
-
display: flex;
|
|
150
|
-
justify-content: flex-end;
|
|
151
|
-
}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
// Activity Summary Functions (Spec 0059)
|
|
2
|
-
|
|
3
|
-
// Show activity summary - creates tab if needed
|
|
4
|
-
async function showActivitySummary() {
|
|
5
|
-
let activityTab = tabs.find(t => t.type === 'activity');
|
|
6
|
-
|
|
7
|
-
if (!activityTab) {
|
|
8
|
-
activityTab = {
|
|
9
|
-
id: 'activity-today',
|
|
10
|
-
type: 'activity',
|
|
11
|
-
name: 'Today'
|
|
12
|
-
};
|
|
13
|
-
tabs.push(activityTab);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
activeTabId = activityTab.id;
|
|
17
|
-
currentTabType = null;
|
|
18
|
-
renderTabs();
|
|
19
|
-
renderTabContent();
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// Render the activity tab content
|
|
23
|
-
async function renderActivityTab() {
|
|
24
|
-
const content = document.getElementById('tab-content');
|
|
25
|
-
|
|
26
|
-
content.innerHTML = `
|
|
27
|
-
<div class="activity-tab-container">
|
|
28
|
-
<div class="activity-loading">
|
|
29
|
-
<span class="activity-spinner"></span>
|
|
30
|
-
Loading activity...
|
|
31
|
-
</div>
|
|
32
|
-
</div>
|
|
33
|
-
`;
|
|
34
|
-
|
|
35
|
-
try {
|
|
36
|
-
const response = await fetch('/api/activity-summary');
|
|
37
|
-
if (!response.ok) {
|
|
38
|
-
throw new Error(await response.text());
|
|
39
|
-
}
|
|
40
|
-
activityData = await response.json();
|
|
41
|
-
renderActivityTabContent(activityData);
|
|
42
|
-
} catch (err) {
|
|
43
|
-
content.innerHTML = `
|
|
44
|
-
<div class="activity-tab-container">
|
|
45
|
-
<div class="activity-error">
|
|
46
|
-
Failed to load activity: ${escapeHtml(err.message)}
|
|
47
|
-
</div>
|
|
48
|
-
</div>
|
|
49
|
-
`;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// Render activity tab content
|
|
54
|
-
// Uses shared renderActivityContentHtml from utils.js (Maintenance Run 0004)
|
|
55
|
-
function renderActivityTabContent(data) {
|
|
56
|
-
const content = document.getElementById('tab-content');
|
|
57
|
-
content.innerHTML = renderActivityContentHtml(data, { isTab: true });
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// Render activity summary content (for modal)
|
|
61
|
-
// Uses shared renderActivityContentHtml from utils.js (Maintenance Run 0004)
|
|
62
|
-
function renderActivitySummary(data) {
|
|
63
|
-
const content = document.getElementById('activity-content');
|
|
64
|
-
content.innerHTML = renderActivityContentHtml(data, { isTab: false });
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// Close activity modal
|
|
68
|
-
function closeActivityModal() {
|
|
69
|
-
document.getElementById('activity-modal').classList.add('hidden');
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// Copy activity summary to clipboard (shared by tab and modal)
|
|
73
|
-
function copyActivityToClipboard() {
|
|
74
|
-
copyActivitySummary();
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
function copyActivitySummary() {
|
|
78
|
-
if (!activityData) return;
|
|
79
|
-
|
|
80
|
-
const hours = Math.floor(activityData.timeTracking.activeMinutes / 60);
|
|
81
|
-
const mins = activityData.timeTracking.activeMinutes % 60;
|
|
82
|
-
const uniqueBranches = new Set(activityData.commits.map(c => c.branch)).size;
|
|
83
|
-
const mergedPrs = activityData.prs.filter(p => p.state === 'MERGED').length;
|
|
84
|
-
|
|
85
|
-
let markdown = `## Today's Summary\n\n`;
|
|
86
|
-
|
|
87
|
-
if (activityData.aiSummary) {
|
|
88
|
-
markdown += `${activityData.aiSummary}\n\n`;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
markdown += `### Activity\n`;
|
|
92
|
-
markdown += `- ${activityData.commits.length} commits across ${uniqueBranches} branches\n`;
|
|
93
|
-
markdown += `- ${activityData.files.length} files modified\n`;
|
|
94
|
-
markdown += `- ${activityData.prs.length} PRs${mergedPrs > 0 ? ` (${mergedPrs} merged)` : ''}\n\n`;
|
|
95
|
-
|
|
96
|
-
if (activityData.projectChanges && activityData.projectChanges.length > 0) {
|
|
97
|
-
markdown += `### Projects Touched\n`;
|
|
98
|
-
activityData.projectChanges.forEach(p => {
|
|
99
|
-
markdown += `- ${p.id}: ${p.title} (${p.oldStatus} → ${p.newStatus})\n`;
|
|
100
|
-
});
|
|
101
|
-
markdown += '\n';
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
markdown += `### Time\n`;
|
|
105
|
-
markdown += `Active time: ~${hours}h ${mins}m\n`;
|
|
106
|
-
|
|
107
|
-
navigator.clipboard.writeText(markdown).then(() => {
|
|
108
|
-
showToast('Copied to clipboard', 'success');
|
|
109
|
-
}).catch(() => {
|
|
110
|
-
showToast('Failed to copy', 'error');
|
|
111
|
-
});
|
|
112
|
-
}
|
|
File without changes
|