@pi-unipi/unipi 3.0.0-alpha.2 → 3.0.0-alpha.21
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/CHANGELOG.md +292 -0
- package/README.md +8 -11
- package/docs/prefix-cache-architecture.md +14 -0
- package/package.json +22 -24
- package/packages/ask-user/README.md +55 -107
- package/packages/ask-user/ask-ui.ts +306 -732
- package/packages/ask-user/clipboard.ts +50 -0
- package/packages/ask-user/config.ts +74 -78
- package/packages/ask-user/package.json +2 -2
- package/packages/ask-user/questions.ts +151 -0
- package/packages/ask-user/skills/ask-user/SKILL.md +59 -133
- package/packages/ask-user/tools.ts +198 -432
- package/packages/autocomplete/package.json +1 -1
- package/packages/autocomplete/src/constants.ts +38 -43
- package/packages/autocomplete/src/sorting.ts +8 -0
- package/packages/background-tasks/package.json +2 -2
- package/packages/background-tasks/src/config.ts +0 -73
- package/packages/background-tasks/src/index.ts +20 -16
- package/packages/background-tasks/src/registry.ts +1 -171
- package/packages/background-tasks/src/types.ts +0 -32
- package/packages/btw/README.md +13 -56
- package/packages/btw/extensions/btw.ts +403 -1796
- package/packages/btw/package.json +5 -2
- package/packages/btw/skills/btw/SKILL.md +7 -143
- package/packages/compactor/README.md +56 -287
- package/packages/compactor/package.json +5 -9
- package/packages/compactor/skills/compactor/SKILL.md +13 -20
- package/packages/compactor/src/card.ts +90 -0
- package/packages/compactor/src/commands/index.ts +73 -130
- package/packages/compactor/src/compaction/compact-args.ts +5 -3
- package/packages/compactor/src/compaction/filter-noise.ts +1 -1
- package/packages/compactor/src/compaction/hooks.ts +487 -311
- package/packages/compactor/src/compaction/source.ts +178 -0
- package/packages/compactor/src/compaction/summarize.ts +586 -52
- package/packages/compactor/src/config/manager.ts +130 -127
- package/packages/compactor/src/config/schema.ts +32 -48
- package/packages/compactor/src/index.ts +40 -431
- package/packages/compactor/src/info-screen.ts +44 -190
- package/packages/compactor/src/session/recall-blocks.ts +1 -1
- package/packages/compactor/src/stats.ts +76 -0
- package/packages/compactor/src/tools/context-budget.ts +17 -34
- package/packages/compactor/src/tools/ctx-doctor.ts +45 -36
- package/packages/compactor/src/tools/register.ts +29 -269
- package/packages/compactor/src/types.ts +47 -186
- package/packages/core/README.md +25 -0
- package/packages/core/child-agent.ts +1 -0
- package/packages/core/command-echo.ts +63 -0
- package/packages/core/compaction-context.ts +41 -0
- package/packages/core/constants.ts +8 -38
- package/packages/core/events.ts +0 -53
- package/packages/core/fusion-status.ts +4 -0
- package/packages/core/global.d.ts +10 -0
- package/packages/core/harness-messages.ts +392 -0
- package/packages/core/index.ts +14 -0
- package/packages/core/kanboard-status.ts +49 -0
- package/packages/core/long-horizon-owner-status.ts +46 -0
- package/packages/core/model-cache.ts +81 -7
- package/packages/core/package.json +6 -3
- package/packages/core/src/attach/detect.ts +163 -0
- package/packages/core/src/child-agent/child-args.ts +31 -0
- package/packages/core/src/child-agent/delivery.ts +41 -0
- package/packages/core/src/child-agent/index.ts +5 -0
- package/packages/core/src/child-agent/readers.ts +203 -0
- package/packages/core/src/child-agent/runtime.ts +584 -0
- package/packages/core/src/evidence.ts +78 -0
- package/packages/core/src/hints/browser.ts +278 -0
- package/packages/core/src/hints/crab-data.ts +19 -0
- package/packages/core/src/hints/index.ts +865 -0
- package/packages/core/src/hints/lines.ts +607 -0
- package/packages/core/src/hints/store.ts +120 -0
- package/packages/core/src/jev/chatter.ts +24 -0
- package/packages/core/src/jev/settings.ts +177 -14
- package/packages/core/src/package-colors.ts +2 -0
- package/packages/core/src/settings/catalog.ts +39 -15
- package/packages/core/src/settings/engine.ts +48 -2
- package/packages/core/src/settings/hub.ts +83 -20
- package/packages/core/src/settings/open.ts +49 -0
- package/packages/core/src/settings/schema.ts +27 -7
- package/packages/core/src/tui/hub-kit.ts +18 -5
- package/packages/core/src/tui/kit.ts +198 -0
- package/packages/core/src/tui/progress.ts +73 -0
- package/packages/core/src/turn/arbiter.ts +290 -0
- package/packages/footer/README.md +4 -6
- package/packages/footer/package.json +3 -3
- package/packages/footer/src/glance-editor.ts +19 -11
- package/packages/footer/src/help.ts +1 -1
- package/packages/footer/src/index.ts +36 -3
- package/packages/footer/src/presets.ts +3 -4
- package/packages/footer/src/rendering/icons.ts +0 -20
- package/packages/footer/src/segments/compactor.ts +52 -142
- package/packages/footer/src/segments/status-ext.ts +0 -1
- package/packages/fusion/README.md +14 -4
- package/packages/fusion/package.json +4 -3
- package/packages/fusion/src/child-args.ts +1 -0
- package/packages/fusion/src/index.ts +161 -8
- package/packages/fusion/src/pi-settings.ts +57 -0
- package/packages/fusion/src/picker.ts +186 -51
- package/packages/fusion/src/preset.ts +56 -2
- package/packages/fusion/src/prompts.ts +1 -1
- package/packages/fusion/src/sidekick-runtime.ts +1 -420
- package/packages/fusion/src/tools.ts +107 -128
- package/packages/fusion/src/transcript.ts +27 -85
- package/packages/info-screen/package.json +2 -2
- package/packages/input-shortcuts/README.md +18 -30
- package/packages/input-shortcuts/package.json +2 -2
- package/packages/input-shortcuts/src/burst.ts +88 -0
- package/packages/input-shortcuts/src/chord-overlay.ts +20 -70
- package/packages/input-shortcuts/src/cleared-input.ts +97 -0
- package/packages/input-shortcuts/src/index.ts +99 -193
- package/packages/input-shortcuts/src/last-response.ts +40 -0
- package/packages/input-shortcuts/src/registers.ts +8 -23
- package/packages/input-shortcuts/src/types.ts +4 -16
- package/packages/input-shortcuts/src/undo-redo.ts +59 -47
- package/packages/kanboard/README.md +51 -47
- package/packages/kanboard/index.ts +293 -55
- package/packages/kanboard/package.json +8 -8
- package/packages/kanboard/skills/kanboard/SKILL.md +61 -27
- package/packages/kanboard/src/badges.ts +93 -0
- package/packages/kanboard/src/bin.ts +4 -2
- package/packages/kanboard/src/commands.ts +218 -84
- package/packages/kanboard/src/debug.ts +20 -0
- package/packages/kanboard/src/guard.ts +267 -109
- package/packages/kanboard/src/monitor.ts +330 -0
- package/packages/kanboard/src/notice-buffer.ts +74 -0
- package/packages/kanboard/src/progress.ts +27 -0
- package/packages/kanboard/src/reminders.ts +234 -0
- package/packages/kanboard/src/settings.ts +69 -15
- package/packages/kanboard/src/shapes.ts +5 -0
- package/packages/long-horizon/index.ts +190 -13
- package/packages/long-horizon/package.json +3 -3
- package/packages/long-horizon/src/commands.ts +103 -7
- package/packages/long-horizon/src/compaction-brief.ts +35 -0
- package/packages/long-horizon/src/engine/continuation.ts +84 -15
- package/packages/long-horizon/src/engine/goal-state.ts +64 -13
- package/packages/long-horizon/src/engine/nudge-stash.ts +71 -0
- package/packages/long-horizon/src/engine/ralph.ts +3 -2
- package/packages/long-horizon/src/engine/runaway.ts +68 -11
- package/packages/long-horizon/src/engine/verifier.ts +19 -0
- package/packages/long-horizon/src/gate.ts +37 -12
- package/packages/long-horizon/src/judge/resolve.ts +1 -0
- package/packages/long-horizon/src/owner.ts +35 -2
- package/packages/long-horizon/src/progress.ts +87 -0
- package/packages/long-horizon/src/prompts/goal.ts +1 -1
- package/packages/long-horizon/src/runtime.ts +172 -18
- package/packages/long-horizon/src/settings.ts +54 -39
- package/packages/long-horizon/src/tools/goal.ts +6 -0
- package/packages/long-horizon/src/tools/graph.ts +1 -1
- package/packages/long-horizon/src/tools/swarm.ts +3 -3
- package/packages/mcp/package.json +2 -2
- package/packages/memory/commands.ts +7 -2
- package/packages/memory/index.ts +210 -32
- package/packages/memory/package.json +3 -3
- package/packages/memory/save-session.ts +264 -0
- package/packages/memory/settings.ts +17 -0
- package/packages/memory/tools.ts +253 -203
- package/packages/notify/package.json +2 -2
- package/packages/skill-registry/README.md +53 -16
- package/packages/skill-registry/index.ts +230 -0
- package/packages/skill-registry/package.json +19 -8
- package/packages/skill-registry/src/editor.ts +206 -0
- package/packages/skill-registry/src/judge.ts +289 -0
- package/packages/skill-registry/src/registry.ts +87 -0
- package/packages/skill-registry/src/settings.ts +259 -0
- package/packages/skill-registry/src/vault.ts +80 -0
- package/packages/subagents/README.md +39 -119
- package/packages/subagents/package.json +6 -13
- package/packages/subagents/skills/subagents/SKILL.md +18 -42
- package/packages/subagents/src/agents.ts +213 -0
- package/packages/subagents/src/cards.ts +182 -0
- package/packages/subagents/src/index.ts +609 -1084
- package/packages/subagents/src/manager.ts +429 -0
- package/packages/subagents/src/profiles.ts +130 -0
- package/packages/subagents/src/transcript.ts +154 -0
- package/packages/subagents/src/ui.ts +389 -0
- package/packages/unipi/bundled.js +39756 -45569
- package/packages/unipi/index.ts +55 -10
- package/packages/updater/package.json +2 -2
- package/packages/utility/README.md +76 -69
- package/packages/utility/package.json +2 -2
- package/packages/utility/skills/image/SKILL.md +37 -0
- package/packages/utility/skills/utility/SKILL.md +17 -60
- package/packages/utility/src/answer/extract.ts +128 -0
- package/packages/utility/src/answer/index.ts +213 -0
- package/packages/utility/src/answer/reply.ts +133 -0
- package/packages/utility/src/answer/web.ts +167 -0
- package/packages/utility/src/attach/index.ts +205 -0
- package/packages/utility/src/commands.ts +38 -142
- package/packages/utility/src/diagnostics/engine.ts +50 -5
- package/packages/utility/src/image/index.ts +33 -0
- package/packages/utility/src/image/models.ts +221 -0
- package/packages/{image/src → utility/src/image}/recognize.ts +2 -2
- package/packages/utility/src/image/settings.ts +178 -0
- package/packages/{image/src/image-source.ts → utility/src/image/source.ts} +1 -1
- package/packages/utility/src/image/tools.ts +168 -0
- package/packages/utility/src/image/transports.ts +186 -0
- package/packages/utility/src/index.ts +68 -389
- package/packages/utility/src/lifecycle/cleanup.ts +116 -311
- package/packages/utility/src/rename/gate.ts +102 -0
- package/packages/utility/src/rename/index.ts +191 -0
- package/packages/utility/src/rename/session.ts +170 -0
- package/packages/utility/src/render/delegated.ts +285 -0
- package/packages/utility/src/render/harness.ts +683 -0
- package/packages/utility/src/render/parse.ts +156 -0
- package/packages/utility/src/render/pi-settings.ts +38 -0
- package/packages/utility/src/render/reply-bg.ts +307 -0
- package/packages/utility/src/render/simple.ts +724 -0
- package/packages/utility/src/render/spacing.ts +235 -0
- package/packages/utility/src/render/styled.ts +251 -0
- package/packages/utility/src/render/tools.ts +353 -0
- package/packages/utility/src/settings.ts +166 -233
- package/packages/utility/src/types.ts +1 -222
- package/packages/watchdog/index.ts +17 -6
- package/packages/watchdog/package.json +3 -3
- package/packages/watchdog/src/config.ts +3 -2
- package/packages/web-api/package.json +2 -2
- package/packages/workflow/README.md +3 -0
- package/packages/workflow/index.ts +0 -2
- package/packages/workflow/package.json +2 -2
- package/packages/workflow/src/permission/decide.ts +6 -4
- package/packages/workflow/src/permission/index.ts +17 -7
- package/packages/workflow/src/permission/settings.ts +39 -4
- package/packages/workflow/src/plan/index.ts +19 -4
- package/packages/background-tasks/extensions/delegate-child.ts +0 -1
- package/packages/background-tasks/src/context-parent-snapshot.ts +0 -142
- package/packages/background-tasks/src/context-token-budget.ts +0 -903
- package/packages/background-tasks/src/context-visible-conversation-v2.ts +0 -551
- package/packages/background-tasks/src/delegate/artifacts.ts +0 -487
- package/packages/background-tasks/src/delegate/budget.ts +0 -415
- package/packages/background-tasks/src/delegate/hook-contract-evidence.json +0 -18
- package/packages/background-tasks/src/delegate/hook-contract.ts +0 -154
- package/packages/background-tasks/src/delegate/launch.ts +0 -484
- package/packages/background-tasks/src/delegate/result-package.ts +0 -459
- package/packages/background-tasks/src/delegate/runner.ts +0 -430
- package/packages/background-tasks/src/delegate/seed.ts +0 -423
- package/packages/background-tasks/src/delegate/types.ts +0 -323
- package/packages/background-tasks/src/delegate-child-extension.ts +0 -978
- package/packages/background-tasks/src/delegate-extension.ts +0 -654
- package/packages/background-tasks/src/fixtures/delegate-context-incident.json +0 -17
- package/packages/compactor/skills/compactor-detail/SKILL.md +0 -116
- package/packages/compactor/skills/compactor-doctor/SKILL.md +0 -71
- package/packages/compactor/skills/compactor-stats/SKILL.md +0 -51
- package/packages/compactor/src/compaction/build-sections.ts +0 -76
- package/packages/compactor/src/compaction/extract/goals.ts +0 -36
- package/packages/compactor/src/compaction/extract/preferences.ts +0 -40
- package/packages/compactor/src/compaction/format.ts +0 -53
- package/packages/compactor/src/compaction/merge.ts +0 -143
- package/packages/compactor/src/config/presets.ts +0 -160
- package/packages/compactor/src/executor/executor.ts +0 -233
- package/packages/compactor/src/executor/runtime.ts +0 -115
- package/packages/compactor/src/security/evaluator.ts +0 -89
- package/packages/compactor/src/security/policy.ts +0 -96
- package/packages/compactor/src/security/scanner.ts +0 -65
- package/packages/compactor/src/session/auto-inject.ts +0 -60
- package/packages/compactor/src/session/db.ts +0 -325
- package/packages/compactor/src/session/extract.ts +0 -144
- package/packages/compactor/src/session/resume-inject.ts +0 -64
- package/packages/compactor/src/session/snapshot.ts +0 -327
- package/packages/compactor/src/tools/ctx-batch-execute.ts +0 -41
- package/packages/compactor/src/tools/ctx-execute-file.ts +0 -23
- package/packages/compactor/src/tools/ctx-execute.ts +0 -23
- package/packages/compactor/src/tools/ctx-stats.ts +0 -96
- package/packages/image/README.md +0 -99
- package/packages/image/package.json +0 -61
- package/packages/image/skills/image/SKILL.md +0 -76
- package/packages/image/src/generate.ts +0 -256
- package/packages/image/src/index.ts +0 -135
- package/packages/image/src/models.ts +0 -519
- package/packages/image/src/openai-images-api.ts +0 -282
- package/packages/image/src/register-providers.ts +0 -209
- package/packages/image/src/settings.ts +0 -173
- package/packages/image/src/tools.ts +0 -326
- package/packages/input-shortcuts/src/clipboard.ts +0 -119
- package/packages/kanboard/src/runner.ts +0 -817
- package/packages/skill-registry/skills/auto/SKILL.md +0 -465
- package/packages/skill-registry/skills/brainstorm/SKILL.md +0 -219
- package/packages/skill-registry/skills/chore-create/SKILL.md +0 -315
- package/packages/skill-registry/skills/chore-execute/SKILL.md +0 -314
- package/packages/skill-registry/skills/consolidate/SKILL.md +0 -142
- package/packages/skill-registry/skills/consultant/SKILL.md +0 -97
- package/packages/skill-registry/skills/debug/SKILL.md +0 -228
- package/packages/skill-registry/skills/document/SKILL.md +0 -120
- package/packages/skill-registry/skills/fix/SKILL.md +0 -212
- package/packages/skill-registry/skills/gather-context/SKILL.md +0 -145
- package/packages/skill-registry/skills/plan/SKILL.md +0 -231
- package/packages/skill-registry/skills/quick-fix/SKILL.md +0 -135
- package/packages/skill-registry/skills/quick-work/SKILL.md +0 -110
- package/packages/skill-registry/skills/research/SKILL.md +0 -251
- package/packages/skill-registry/skills/review-work/SKILL.md +0 -187
- package/packages/skill-registry/skills/scan-issues/SKILL.md +0 -195
- package/packages/skill-registry/skills/work/SKILL.md +0 -218
- package/packages/skill-registry/skills/worktree-create/SKILL.md +0 -69
- package/packages/skill-registry/skills/worktree-list/SKILL.md +0 -78
- package/packages/skill-registry/skills/worktree-merge/SKILL.md +0 -89
- package/packages/subagents/agents/delegate.md +0 -14
- package/packages/subagents/agents/oracle.md +0 -78
- package/packages/subagents/agents/researcher.md +0 -52
- package/packages/subagents/agents/reviewer.md +0 -80
- package/packages/subagents/agents/scout.md +0 -50
- package/packages/subagents/agents/worker.md +0 -59
- package/packages/subagents/prompts/council.md +0 -48
- package/packages/subagents/prompts/gather-context-and-clarify.md +0 -13
- package/packages/subagents/prompts/parallel-cleanup.md +0 -59
- package/packages/subagents/prompts/parallel-research.md +0 -50
- package/packages/subagents/prompts/parallel-review.md +0 -54
- package/packages/subagents/prompts/review-loop.md +0 -43
- package/packages/subagents/skills/council-mode/SKILL.md +0 -230
- package/packages/subagents/skills/subagents/references/constraints-and-recipes.md +0 -259
- package/packages/subagents/skills/subagents/references/execution-controls.md +0 -454
- package/packages/subagents/skills/subagents/references/management-authoring-rpc.md +0 -161
- package/packages/subagents/skills/subagents/references/multi-lane-orchestration.md +0 -39
- package/packages/subagents/skills/subagents/references/prompting-and-roles.md +0 -267
- package/packages/subagents/src/acceptance.ts +0 -331
- package/packages/subagents/src/agent-manager.ts +0 -405
- package/packages/subagents/src/agent-memory.ts +0 -300
- package/packages/subagents/src/agent-overrides.ts +0 -183
- package/packages/subagents/src/agent-runner.ts +0 -271
- package/packages/subagents/src/async-runner.ts +0 -422
- package/packages/subagents/src/authority-policy.ts +0 -47
- package/packages/subagents/src/budgets.ts +0 -285
- package/packages/subagents/src/child-safety.ts +0 -140
- package/packages/subagents/src/config.ts +0 -249
- package/packages/subagents/src/conversation-viewer.ts +0 -281
- package/packages/subagents/src/core-compat.ts +0 -94
- package/packages/subagents/src/custom-agents.ts +0 -343
- package/packages/subagents/src/file-system-retry.ts +0 -50
- package/packages/subagents/src/fleet-data.ts +0 -105
- package/packages/subagents/src/fleet-view.ts +0 -322
- package/packages/subagents/src/foreground-detach.ts +0 -59
- package/packages/subagents/src/fork-context.ts +0 -285
- package/packages/subagents/src/global.d.ts +0 -7
- package/packages/subagents/src/guide.ts +0 -129
- package/packages/subagents/src/mission-state.ts +0 -133
- package/packages/subagents/src/mission-store.ts +0 -436
- package/packages/subagents/src/output-limits.ts +0 -142
- package/packages/subagents/src/parity-types.ts +0 -315
- package/packages/subagents/src/pi-args.ts +0 -167
- package/packages/subagents/src/result-files.ts +0 -232
- package/packages/subagents/src/result-watcher.ts +0 -221
- package/packages/subagents/src/retained-children.ts +0 -176
- package/packages/subagents/src/run-fanout-budget.ts +0 -356
- package/packages/subagents/src/scheduled-runs.ts +0 -349
- package/packages/subagents/src/schemas.ts +0 -263
- package/packages/subagents/src/slash-commands.ts +0 -80
- package/packages/subagents/src/supervisor-channel.ts +0 -249
- package/packages/subagents/src/tool-handler.ts +0 -1144
- package/packages/subagents/src/types.ts +0 -238
- package/packages/subagents/src/widget.ts +0 -457
- package/packages/subagents/src/workflow-script.ts +0 -737
- package/packages/subagents/src/workflow-worker.ts +0 -384
- package/packages/subagents/src/worktree.ts +0 -614
- package/packages/utility/src/analytics/collector.ts +0 -293
- package/packages/utility/src/info-screen.ts +0 -80
- package/packages/utility/src/lifecycle/process.ts +0 -162
- package/packages/utility/src/prefix-cache.ts +0 -263
- package/packages/utility/src/skill-discovery.ts +0 -542
- package/packages/utility/src/tools/env.ts +0 -113
- package/packages/utility/src/tui/name-badge-state.ts +0 -315
- package/packages/utility/src/tui/name-badge.ts +0 -109
- /package/packages/{subagents/src → core/src/child-agent}/pi-spawn.ts +0 -0
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: scan-issues
|
|
3
|
-
description: "Passive codebase scan — find potential bugs, anti-patterns, security issues. Spawns subagents if available."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Scanning for Issues
|
|
7
|
-
|
|
8
|
-
Passive investigation of codebase to find potential bugs, anti-patterns, security issues, and technical debt.
|
|
9
|
-
|
|
10
|
-
## Boundaries
|
|
11
|
-
|
|
12
|
-
**This skill MAY:** read codebase, run read-only analysis commands, spawn subagents, write findings.
|
|
13
|
-
**This skill MAY NOT:** edit code, fix issues, run tests that modify state, deploy.
|
|
14
|
-
|
|
15
|
-
**This is investigation only — not fixing.**
|
|
16
|
-
|
|
17
|
-
**Note:** For active debugging of specific bugs, use `the debug step` instead. scan-issues finds potential problems; debug diagnoses known issues.
|
|
18
|
-
|
|
19
|
-
## Command Format
|
|
20
|
-
|
|
21
|
-
```
|
|
22
|
-
the issue scan <string(greedy)>(optional)
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
- `string(greedy)` — optional scope (e.g., "focus on auth", "check for SQL injection", "find dead code")
|
|
26
|
-
- If not provided → full codebase scan
|
|
27
|
-
- Read-only sandbox
|
|
28
|
-
- Spawns subagents if `@unipi/subagents` extension is installed
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## Process
|
|
33
|
-
|
|
34
|
-
### Phase 1: Determine Scope
|
|
35
|
-
|
|
36
|
-
**If scope provided:**
|
|
37
|
-
1. Parse the focus area
|
|
38
|
-
2. Determine scan type:
|
|
39
|
-
- Security scan
|
|
40
|
-
- Bug hunt
|
|
41
|
-
- Anti-pattern detection
|
|
42
|
-
- Tech debt assessment
|
|
43
|
-
- Performance issues
|
|
44
|
-
|
|
45
|
-
**If no scope:**
|
|
46
|
-
1. Ask user what to focus on, or
|
|
47
|
-
2. Run broad scan covering all categories
|
|
48
|
-
|
|
49
|
-
**Exit:** Scope defined.
|
|
50
|
-
|
|
51
|
-
### Phase 2: Deep Investigation
|
|
52
|
-
|
|
53
|
-
If subagents available:
|
|
54
|
-
1. Spawn parallel subagents for different scan types
|
|
55
|
-
2. Each subagent investigates independently
|
|
56
|
-
3. Collect findings from all subagents
|
|
57
|
-
|
|
58
|
-
If no subagents:
|
|
59
|
-
1. Investigate sequentially
|
|
60
|
-
2. Use grep, find, read commands
|
|
61
|
-
3. Build findings incrementally
|
|
62
|
-
|
|
63
|
-
**Scan categories:**
|
|
64
|
-
|
|
65
|
-
**Security:**
|
|
66
|
-
- Hardcoded secrets/credentials
|
|
67
|
-
- SQL injection vulnerabilities
|
|
68
|
-
- XSS vulnerabilities
|
|
69
|
-
- Insecure dependencies
|
|
70
|
-
- Missing input validation
|
|
71
|
-
- Exposed sensitive data
|
|
72
|
-
|
|
73
|
-
**Bugs:**
|
|
74
|
-
- Null/undefined handling
|
|
75
|
-
- Race conditions
|
|
76
|
-
- Error handling gaps
|
|
77
|
-
- Edge cases missed
|
|
78
|
-
- Logic errors
|
|
79
|
-
- Off-by-one errors
|
|
80
|
-
|
|
81
|
-
**Anti-patterns:**
|
|
82
|
-
- Code duplication
|
|
83
|
-
- God objects/functions
|
|
84
|
-
- Circular dependencies
|
|
85
|
-
- Tight coupling
|
|
86
|
-
- Magic numbers/strings
|
|
87
|
-
- Inconsistent patterns
|
|
88
|
-
|
|
89
|
-
**Tech debt:**
|
|
90
|
-
- TODO/FIXME comments
|
|
91
|
-
- Deprecated API usage
|
|
92
|
-
- Outdated dependencies
|
|
93
|
-
- Dead code
|
|
94
|
-
- Missing tests
|
|
95
|
-
- Poor naming
|
|
96
|
-
|
|
97
|
-
**Performance:**
|
|
98
|
-
- N+1 queries
|
|
99
|
-
- Unnecessary re-renders
|
|
100
|
-
- Large bundle imports
|
|
101
|
-
- Missing caching
|
|
102
|
-
- Inefficient algorithms
|
|
103
|
-
|
|
104
|
-
**Exit:** Findings collected.
|
|
105
|
-
|
|
106
|
-
### Phase 3: Categorize & Prioritize
|
|
107
|
-
|
|
108
|
-
Organize findings by severity:
|
|
109
|
-
|
|
110
|
-
**Critical (P0):**
|
|
111
|
-
- Security vulnerabilities
|
|
112
|
-
- Data loss risks
|
|
113
|
-
- Production-breaking bugs
|
|
114
|
-
|
|
115
|
-
**High (P1):**
|
|
116
|
-
- Significant bugs
|
|
117
|
-
- Major anti-patterns
|
|
118
|
-
- Performance bottlenecks
|
|
119
|
-
|
|
120
|
-
**Medium (P2):**
|
|
121
|
-
- Minor bugs
|
|
122
|
-
- Tech debt
|
|
123
|
-
- Code smells
|
|
124
|
-
|
|
125
|
-
**Low (P3):**
|
|
126
|
-
- Style issues
|
|
127
|
-
- Minor improvements
|
|
128
|
-
- Nice-to-haves
|
|
129
|
-
|
|
130
|
-
### Phase 4: Present Findings
|
|
131
|
-
|
|
132
|
-
```markdown
|
|
133
|
-
## Issue Scan Results
|
|
134
|
-
|
|
135
|
-
### Critical (P0)
|
|
136
|
-
- {Finding} — {file:line} — {description}
|
|
137
|
-
|
|
138
|
-
### High (P1)
|
|
139
|
-
- {Finding} — {file:line} — {description}
|
|
140
|
-
|
|
141
|
-
### Medium (P2)
|
|
142
|
-
- {Finding} — {file:line} — {description}
|
|
143
|
-
|
|
144
|
-
### Low (P3)
|
|
145
|
-
- {Finding} — {file:line} — {description}
|
|
146
|
-
|
|
147
|
-
### Summary
|
|
148
|
-
- Total issues: {count}
|
|
149
|
-
- Critical: {count}
|
|
150
|
-
- High: {count}
|
|
151
|
-
- Medium: {count}
|
|
152
|
-
- Low: {count}
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
### Phase 5: Handoff
|
|
156
|
-
|
|
157
|
-
Based on findings:
|
|
158
|
-
|
|
159
|
-
**If critical issues found:**
|
|
160
|
-
> "Critical issues found. Recommend addressing immediately."
|
|
161
|
-
```
|
|
162
|
-
a quick work pass "fix critical security issue in auth.ts"
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
**If many issues:**
|
|
166
|
-
> "Multiple issues found. Consider planning a cleanup sprint."
|
|
167
|
-
```
|
|
168
|
-
the brainstorm skill "tech debt cleanup plan"
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
**If few/no issues:**
|
|
172
|
-
> "Codebase looks healthy. No critical issues found."
|
|
173
|
-
```
|
|
174
|
-
the consolidate step
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
---
|
|
178
|
-
|
|
179
|
-
## Notes
|
|
180
|
-
|
|
181
|
-
- Investigation only — findings are reported, not fixed
|
|
182
|
-
- Subagent support enables parallel scanning when available
|
|
183
|
-
- Can focus on specific categories or scan broadly
|
|
184
|
-
- Prioritized findings help triage what to fix first
|
|
185
|
-
- Natural lead-in to quick-work (for critical) or brainstorm (for planned cleanup)
|
|
186
|
-
|
|
187
|
-
## Differences from debug
|
|
188
|
-
|
|
189
|
-
| Aspect | `the issue scan` | `the debug step` |
|
|
190
|
-
|--------|----------------------|----------------|
|
|
191
|
-
| Purpose | Find potential issues | Investigate specific bug |
|
|
192
|
-
| Input | Scope / category | Bug report / error message |
|
|
193
|
-
| Output | Issue list with priorities | Debug report with root cause |
|
|
194
|
-
| Depth | Broad codebase scan | Deep single-issue analysis |
|
|
195
|
-
| Handoff | `a quick work pass` or `the brainstorm skill` | `the fix step` |
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: work
|
|
3
|
-
description: "Execute plan — implement tasks, test, commit on done. Works in worktree or on main branch. Resumable."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Executing Plans
|
|
7
|
-
|
|
8
|
-
Load plan, review critically, execute tasks, commit when complete.
|
|
9
|
-
|
|
10
|
-
## Boundaries
|
|
11
|
-
|
|
12
|
-
**This skill MAY:** read/write code, read/write the project's `docs/`, run tests, commit, create worktree.
|
|
13
|
-
**This skill MAY NOT:** merge branches, deploy.
|
|
14
|
-
|
|
15
|
-
**Worktree vs Main:**
|
|
16
|
-
- If `workbranch` in plan → work within worktree directory
|
|
17
|
-
- If `workbranch` empty → work directly on main branch (current directory)
|
|
18
|
-
|
|
19
|
-
## Command Format
|
|
20
|
-
|
|
21
|
-
```
|
|
22
|
-
the implementation step worktree:<branch>(optional) specs:<path>(multiple,optional) <string(greedy)>(optional)
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
- `worktree:<branch>` — branch to work on (auto-suggested, agent asks if not provided)
|
|
26
|
-
- `specs:<path>` — plan(s) to execute (auto-suggested, agent asks if not provided)
|
|
27
|
-
- `string(greedy)` — scope guidance (e.g., "only task 1 and 2")
|
|
28
|
-
- **Recommended: new session** — this command switches pi's internal worktree
|
|
29
|
-
|
|
30
|
-
## Sandbox
|
|
31
|
-
|
|
32
|
-
- **Read/Write:** full access within worktree (or project root if on main)
|
|
33
|
-
- **Write:** `docs/` in the project for progress tracking (Create the folder if it does not exist — it is an ordinary project folder, not a unipi store.)
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## Phase 1: Resolve Args
|
|
38
|
-
|
|
39
|
-
1. **Specs:**
|
|
40
|
-
- If `specs:` arg provided, read those plan files
|
|
41
|
-
- If not, list available plans in `docs/plans/` and ask user
|
|
42
|
-
- Can select multiple
|
|
43
|
-
|
|
44
|
-
2. **Read `workbranch` from plan frontmatter:**
|
|
45
|
-
- If `workbranch:` is **non-empty** → use that branch/worktree
|
|
46
|
-
- If worktree arg also provided → use worktree arg (override)
|
|
47
|
-
- Create worktree if not exists: `git worktree add .unipi/worktrees/{branch} -b {branch}`
|
|
48
|
-
- Work within worktree directory
|
|
49
|
-
- If `workbranch:` is **empty or missing** → work on current branch (main)
|
|
50
|
-
- No worktree creation needed
|
|
51
|
-
- Edit files directly in project root
|
|
52
|
-
- If neither plan nor args specify branch → ask user:
|
|
53
|
-
> "Where should this work happen?"
|
|
54
|
-
> 1. Current branch (main)
|
|
55
|
-
> 2. New worktree (provide branch name)
|
|
56
|
-
|
|
57
|
-
3. **Scope:**
|
|
58
|
-
- If `string(greedy)` provided, use to scope tasks
|
|
59
|
-
- Otherwise execute all incomplete tasks
|
|
60
|
-
|
|
61
|
-
**Exit:** Branch/worktree resolved. Plan(s) loaded. Scope defined.
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
## Phase 2: Review Plan
|
|
66
|
-
|
|
67
|
-
1. Read plan file(s)
|
|
68
|
-
2. Review critically — identify questions or concerns
|
|
69
|
-
3. If concerns: raise with user before starting
|
|
70
|
-
4. Identify task status: `unstarted:` (pending), `in-progress:` (started), `completed:` (done), `failed:` (needs investigation), `awaiting_user:` (needs user action), `blocked:` (waiting on dependency), `skipped:` (deferred)
|
|
71
|
-
|
|
72
|
-
**Exit:** Plan reviewed, ready to execute.
|
|
73
|
-
|
|
74
|
-
### Ralph Loop Decision
|
|
75
|
-
|
|
76
|
-
Count the non-completed tasks (`unstarted:`, `in-progress:`, `failed:`). If you have the `ralph_start` tool available and 3+ non-trivial tasks remain, consider a ralph loop for resilience:
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
ralph_start({
|
|
80
|
-
name: "{plan-topic}",
|
|
81
|
-
taskContent: "# {Plan Title}\n\n{overview}\n\n## Goals\n- {goal1}\n- {goal2}\n\n## Checklist\n- [ ] {task1}\n- [ ] {task2}\n- [ ] {task3}",
|
|
82
|
-
maxIterations: 50,
|
|
83
|
-
itemsPerIteration: 2,
|
|
84
|
-
reflectEvery: 5
|
|
85
|
-
})
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
**To skip:** Just proceed to Phase 3 and execute tasks directly. Ralph is a helper, not a requirement.
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## Phase 3: Execute Tasks
|
|
93
|
-
|
|
94
|
-
For each task in order, skip `completed:`, `skipped:`, and `awaiting_user:` tasks:
|
|
95
|
-
|
|
96
|
-
### If `unstarted:`
|
|
97
|
-
1. Change `unstarted:` to `in-progress:` in plan
|
|
98
|
-
2. Follow each step exactly (plan has bite-sized steps)
|
|
99
|
-
3. Run verifications as specified in acceptance criteria
|
|
100
|
-
4. Change `in-progress:` to `completed:` when complete
|
|
101
|
-
5. Update plan file with progress
|
|
102
|
-
|
|
103
|
-
### If `in-progress:`
|
|
104
|
-
1. Continue from where it left off
|
|
105
|
-
2. Follow remaining steps
|
|
106
|
-
3. Change to `completed:` when done
|
|
107
|
-
|
|
108
|
-
### If `failed:`
|
|
109
|
-
1. Read failure notes
|
|
110
|
-
2. Investigate root cause
|
|
111
|
-
3. Fix and re-verify
|
|
112
|
-
4. Change to `completed:` when fixed, or keep `failed:` if still broken
|
|
113
|
-
|
|
114
|
-
### If `awaiting_user:`
|
|
115
|
-
1. Remind user what's needed
|
|
116
|
-
2. Wait for user response
|
|
117
|
-
3. Resume when user provides input
|
|
118
|
-
|
|
119
|
-
### If `blocked:`
|
|
120
|
-
1. Check if blocker is resolved
|
|
121
|
-
2. If resolved → change to `unstarted:` and continue
|
|
122
|
-
3. If still blocked → skip and move to next task
|
|
123
|
-
|
|
124
|
-
### When to Stop and Ask
|
|
125
|
-
|
|
126
|
-
**STOP immediately when:**
|
|
127
|
-
- Hit blocker (missing dependency, test fails, instruction unclear)
|
|
128
|
-
- Plan has critical gaps
|
|
129
|
-
- You don't understand an instruction
|
|
130
|
-
- Verification fails repeatedly
|
|
131
|
-
|
|
132
|
-
Ask for clarification rather than guessing.
|
|
133
|
-
|
|
134
|
-
### When to Revisit Earlier Steps
|
|
135
|
-
|
|
136
|
-
**Return to review when:**
|
|
137
|
-
- Partner updates plan based on feedback
|
|
138
|
-
- Fundamental approach needs rethinking
|
|
139
|
-
|
|
140
|
-
Don't force through blockers — stop and ask.
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## Phase 4: Commit Progress
|
|
145
|
-
|
|
146
|
-
After each task or group of tasks:
|
|
147
|
-
1. Stage changes
|
|
148
|
-
2. Commit with descriptive message referencing task name
|
|
149
|
-
3. Continue to next task
|
|
150
|
-
|
|
151
|
-
Don't wait until end to commit — incremental commits are safer.
|
|
152
|
-
|
|
153
|
-
---
|
|
154
|
-
|
|
155
|
-
## Phase 5: Complete
|
|
156
|
-
|
|
157
|
-
When all tasks are `completed:`:
|
|
158
|
-
|
|
159
|
-
1. Run final verification (tests, lint, build)
|
|
160
|
-
2. Commit all remaining changes
|
|
161
|
-
3. If using a ralph loop, emit `COMPLETE` and call `ralph_done` to cleanly exit
|
|
162
|
-
4. Inform user based on branch strategy:
|
|
163
|
-
|
|
164
|
-
**If working in worktree:**
|
|
165
|
-
> "All tasks complete. Worktree: `{branch}`. Recommend reviewing before merge."
|
|
166
|
-
|
|
167
|
-
If `ask_user` is available, offer an automatic handoff:
|
|
168
|
-
```ts
|
|
169
|
-
ask_user({
|
|
170
|
-
question: "Review this work now?",
|
|
171
|
-
options: [
|
|
172
|
-
{
|
|
173
|
-
label: "Proceed to the review step",
|
|
174
|
-
description: "Review before merge",
|
|
175
|
-
value: "review",
|
|
176
|
-
action: "new_session",
|
|
177
|
-
prefill: "the review step plan:<plan-path>",
|
|
178
|
-
},
|
|
179
|
-
{ label: "Done for now", value: "done", action: "end_turn" },
|
|
180
|
-
],
|
|
181
|
-
allowFreeform: false,
|
|
182
|
-
})
|
|
183
|
-
```
|
|
184
|
-
Copyable fallback:
|
|
185
|
-
```
|
|
186
|
-
the review step plan:<plan-path>
|
|
187
|
-
```
|
|
188
|
-
**Recommend starting a new session** for review; the ask_user launcher can compact/direct queue the command.
|
|
189
|
-
|
|
190
|
-
**If working on main branch:**
|
|
191
|
-
> "All tasks complete. All changes committed directly on main."
|
|
192
|
-
|
|
193
|
-
If `ask_user` is available, offer the same review handoff with `prefill: "the review step plan:<plan-path>"`. Copyable fallback:
|
|
194
|
-
```
|
|
195
|
-
the review step plan:<plan-path>
|
|
196
|
-
```
|
|
197
|
-
No merge needed — changes already on main.
|
|
198
|
-
|
|
199
|
-
---
|
|
200
|
-
|
|
201
|
-
## Resumability
|
|
202
|
-
|
|
203
|
-
If user runs `the implementation step` and plan has `completed:` or `in-progress:` tasks:
|
|
204
|
-
1. Read plan
|
|
205
|
-
2. Identify first `unstarted:` task
|
|
206
|
-
3. Ask user: "Resume from Task N: {name}?"
|
|
207
|
-
4. Continue from there
|
|
208
|
-
|
|
209
|
-
If user provides scope string, only execute matching tasks.
|
|
210
|
-
|
|
211
|
-
---
|
|
212
|
-
|
|
213
|
-
## Notes
|
|
214
|
-
|
|
215
|
-
- Agent reads plan on start — finds what's incomplete
|
|
216
|
-
- Worktree: changes don't affect main branch until merge (skip for small tasks)
|
|
217
|
-
- Main branch: changes committed directly, no merge needed
|
|
218
|
-
- Each worktree session is independent — no coordination with other worktrees
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: worktree-create
|
|
3
|
-
description: "Create git worktree for parallel work. Agent-driven naming."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Creating Worktrees
|
|
7
|
-
|
|
8
|
-
Create a git worktree for isolated parallel work.
|
|
9
|
-
|
|
10
|
-
## Boundaries
|
|
11
|
-
|
|
12
|
-
**This skill MAY:** run git worktree commands, ask user for branch name, suggest names.
|
|
13
|
-
**This skill MAY NOT:** edit code, run tests, implement features.
|
|
14
|
-
|
|
15
|
-
## Command Format
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
the implementation steptree-create <string(greedy)>
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
- `string(greedy)` — description or desired branch name
|
|
22
|
-
- Agent asks user for exact name or suggests based on description
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## Process
|
|
27
|
-
|
|
28
|
-
### Phase 1: Parse Input
|
|
29
|
-
|
|
30
|
-
1. Read the string input
|
|
31
|
-
2. Assess if it's a branch name or a description:
|
|
32
|
-
- Branch name: `feat/auth`, `fix/login-bug` → use directly
|
|
33
|
-
- Description: "add user authentication" → suggest name
|
|
34
|
-
|
|
35
|
-
### Phase 2: Name Resolution
|
|
36
|
-
|
|
37
|
-
**If clear branch name:**
|
|
38
|
-
> "Creating worktree on branch `feat/auth`. Confirm?"
|
|
39
|
-
|
|
40
|
-
**If description:**
|
|
41
|
-
> "Based on your description, I suggest: `feat/user-auth`. What name would you like?"
|
|
42
|
-
|
|
43
|
-
Let user confirm or provide different name.
|
|
44
|
-
|
|
45
|
-
### Phase 3: Create Worktree
|
|
46
|
-
|
|
47
|
-
1. Check if branch already exists (local or remote)
|
|
48
|
-
2. If exists: ask user if they want to reuse or create new
|
|
49
|
-
3. Create worktree:
|
|
50
|
-
```bash
|
|
51
|
-
git worktree add .unipi/worktrees/<branch> -b <branch>
|
|
52
|
-
```
|
|
53
|
-
4. Verify creation succeeded
|
|
54
|
-
|
|
55
|
-
### Phase 4: Confirm
|
|
56
|
-
|
|
57
|
-
Report:
|
|
58
|
-
> "Worktree created: `.unipi/worktrees/<branch>` (branch: `<branch>`)"
|
|
59
|
-
> "To work in this worktree: `the implementation step worktree:<branch> specs:<plan>`"
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## Notes
|
|
64
|
-
|
|
65
|
-
- Worktrees stored in `.unipi/worktrees/` directory
|
|
66
|
-
- Each worktree is a full working copy with its own branch
|
|
67
|
-
- Multiple worktrees can exist for parallel work
|
|
68
|
-
- Use `the implementation steptree-list` to see all worktrees
|
|
69
|
-
- Use `the implementation steptree-merge` to merge back to main
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: worktree-list
|
|
3
|
-
description: "List all unipi worktrees. Shows branch, path, and status."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Listing Worktrees
|
|
7
|
-
|
|
8
|
-
List all git worktrees created by unipi.
|
|
9
|
-
|
|
10
|
-
## Boundaries
|
|
11
|
-
|
|
12
|
-
**This skill MAY:** read filesystem (ls, read), grep for git info.
|
|
13
|
-
**This skill MAY NOT:** edit anything, create worktrees, merge branches, run bash.
|
|
14
|
-
|
|
15
|
-
## Command Format
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
the implementation steptree-list
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
No arguments. Lists all unipi worktrees.
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## Process
|
|
26
|
-
|
|
27
|
-
### Phase 1: Discover Worktrees
|
|
28
|
-
|
|
29
|
-
1. `ls .unipi/worktrees/` — list worktree directories
|
|
30
|
-
2. For each directory:
|
|
31
|
-
- Read `.unipi/worktrees/<branch>/.git` file to get gitdir path
|
|
32
|
-
- Check for uncommitted changes: `ls .unipi/worktrees/<branch>/` and read key files
|
|
33
|
-
3. If `.unipi/worktrees/` doesn't exist or is empty → no worktrees
|
|
34
|
-
|
|
35
|
-
**Exit:** List of worktrees discovered.
|
|
36
|
-
|
|
37
|
-
### Phase 2: Determine Status
|
|
38
|
-
|
|
39
|
-
For each worktree directory:
|
|
40
|
-
|
|
41
|
-
1. Check if `HEAD` file exists in gitdir
|
|
42
|
-
2. Check for modified files by reading directory listing
|
|
43
|
-
3. Determine status:
|
|
44
|
-
- **clean** — no uncommitted changes
|
|
45
|
-
- **dirty** — has uncommitted changes
|
|
46
|
-
|
|
47
|
-
### Phase 3: Present
|
|
48
|
-
|
|
49
|
-
Display in table format:
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
Worktrees:
|
|
53
|
-
┌──────────────────┬────────────────────────────────┬─────────┐
|
|
54
|
-
│ Branch │ Path │ Status │
|
|
55
|
-
├──────────────────┼────────────────────────────────┼─────────┤
|
|
56
|
-
│ feat/auth │ .unipi/worktrees/feat/auth │ clean │
|
|
57
|
-
│ fix/login-bug │ .unipi/worktrees/fix/login-bug │ dirty │
|
|
58
|
-
└──────────────────┴────────────────────────────────┴─────────┘
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
If no worktrees:
|
|
62
|
-
> "No unipi worktrees. Create one with `the implementation steptree-create`"
|
|
63
|
-
|
|
64
|
-
### Phase 4: Suggest Actions
|
|
65
|
-
|
|
66
|
-
Based on state:
|
|
67
|
-
- If dirty worktrees exist → suggest reviewing or committing
|
|
68
|
-
- If clean worktrees exist → suggest working or merging
|
|
69
|
-
- Always available: `the implementation steptree-create`, `the implementation steptree-merge`
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## Notes
|
|
74
|
-
|
|
75
|
-
- Only shows worktrees under `.unipi/worktrees/`
|
|
76
|
-
- Ignores worktrees in other locations
|
|
77
|
-
- Status: `clean` = no uncommitted changes, `dirty` = has changes
|
|
78
|
-
- No bash required — uses ls, read, grep for all discovery
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: worktree-merge
|
|
3
|
-
description: "Merge worktree branches back to main. Gathers context from specs/plans, merges, cleans up."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Worktree Merge
|
|
7
|
-
|
|
8
|
-
Merge completed worktree branches into main. Gather context from docs before merging.
|
|
9
|
-
|
|
10
|
-
**Note:** Only needed when work was done in a worktree (plan `workbranch` set). If work was on main branch directly, skip this — changes already on main.
|
|
11
|
-
|
|
12
|
-
## Process
|
|
13
|
-
|
|
14
|
-
### Phase 1: Gather Context
|
|
15
|
-
|
|
16
|
-
Before merging, read existing specs and plans to understand what each worktree was implementing:
|
|
17
|
-
|
|
18
|
-
1. Read all files in `docs/specs/` (if exists)
|
|
19
|
-
2. Read all files in `docs/plans/` (if exists)
|
|
20
|
-
3. Build a map: branch → what it was working on
|
|
21
|
-
|
|
22
|
-
This context helps during merge conflicts and in the final report.
|
|
23
|
-
|
|
24
|
-
### Phase 2: Resolve Target Branch
|
|
25
|
-
|
|
26
|
-
1. Check for `main` branch: `git branch --list main`
|
|
27
|
-
2. If not found, check `master`: `git branch --list master`
|
|
28
|
-
3. If neither exists, ask user for target branch
|
|
29
|
-
|
|
30
|
-
### Phase 3: Resolve Source Branches
|
|
31
|
-
|
|
32
|
-
**If branches provided in args:**
|
|
33
|
-
- Verify each branch exists: `git branch --list <name>`
|
|
34
|
-
- Check worktree status for each
|
|
35
|
-
|
|
36
|
-
**If no branches provided:**
|
|
37
|
-
- List all worktrees: `git worktree list`
|
|
38
|
-
- Filter to `.unipi/worktrees/` paths only
|
|
39
|
-
- Show each with status (clean/dirty via `git status`)
|
|
40
|
-
- Ask user which to merge
|
|
41
|
-
|
|
42
|
-
### Phase 4: Merge Each Branch
|
|
43
|
-
|
|
44
|
-
For each source branch (in dependency order if specs indicate ordering):
|
|
45
|
-
|
|
46
|
-
1. **Checkout target:** `git checkout main`
|
|
47
|
-
2. **Merge:** `git merge <branch> --no-edit`
|
|
48
|
-
3. **If conflict:**
|
|
49
|
-
- Report which files conflict
|
|
50
|
-
- Reference the spec/plan context: "This branch was working on: <description>"
|
|
51
|
-
- **Structured conflict resolution:**
|
|
52
|
-
1. **Check finalized plan** — read the plan for this branch, understand intended changes
|
|
53
|
-
2. **Brainstorm resolution** — reason about which changes align with the plan's intent
|
|
54
|
-
3. **Read codebase** — read the conflicting files to understand current state
|
|
55
|
-
4. **Ask user** — present options and ask for final decision (always ask, never force)
|
|
56
|
-
- Options to present:
|
|
57
|
-
- Accept incoming (their changes)
|
|
58
|
-
- Accept current (main branch)
|
|
59
|
-
- Manual merge (describe what each side does, ask user to decide)
|
|
60
|
-
- Skip this branch
|
|
61
|
-
4. **If success:**
|
|
62
|
-
- Remove worktree: `git worktree remove .unipi/worktrees/<branch-name>`
|
|
63
|
-
- Delete branch: `git branch -d <branch>`
|
|
64
|
-
- Log success with context: "Merged: <what it was doing>"
|
|
65
|
-
|
|
66
|
-
### Phase 5: Report
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
Merge Summary:
|
|
70
|
-
✓ feat/auth — merged (auth system implementation from specs/auth-system.md)
|
|
71
|
-
✓ fix/login-bug — merged (login fix from plans/bugfix-login.md)
|
|
72
|
-
✗ feat/dashboard — CONFLICT in src/dashboard.ts, skipped
|
|
73
|
-
|
|
74
|
-
Worktrees cleaned: 2 removed
|
|
75
|
-
Branches deleted: 2
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### Phase 6: Suggest Next
|
|
79
|
-
|
|
80
|
-
- If all merged cleanly → suggest `the consolidate step` to save learnings
|
|
81
|
-
- If conflicts remain → suggest resolving and retrying `the implementation steptree-merge`
|
|
82
|
-
- If specs/plans exist for merged work → suggest `the document step` to update docs
|
|
83
|
-
|
|
84
|
-
## Important
|
|
85
|
-
|
|
86
|
-
- ALWAYS read specs/plans before merging — context prevents bad conflict resolution
|
|
87
|
-
- NEVER force push or force merge
|
|
88
|
-
- Ask user before destructive operations (branch deletion)
|
|
89
|
-
- If a worktree has uncommitted changes, warn and skip
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: delegate
|
|
3
|
-
description: Lightweight subagent that inherits the parent model with no default reads
|
|
4
|
-
systemPromptMode: append
|
|
5
|
-
inheritProjectContext: true
|
|
6
|
-
tools: read, grep, find, ls, bash, edit, write, contact_supervisor
|
|
7
|
-
inheritSkills: false
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
You are a delegated agent. Execute the assigned task using the provided tools. Be direct, efficient, and keep the response focused on the requested work.
|
|
11
|
-
|
|
12
|
-
The builtin delegate uses a strict tool allowlist and does not inherit ambient extension tools from the parent session. To use an extension tool, configure a custom agent with the tool name explicitly listed in `tools` and load its provider through `extensions` or `subagentOnlyExtensions`.
|
|
13
|
-
|
|
14
|
-
If runtime bridge instructions identify a safe supervisor target and you are blocked or need a decision, use `contact_supervisor` with `reason: "need_decision"` and stay alive for the reply. Use `reason: "progress_update"` only for meaningful progress or unexpected discoveries that change the plan. Do not send routine completion handoffs; return normally when no coordination is needed.
|