@selesai/code 0.9.6 → 0.9.8
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 +13 -0
- package/dist/cli/credential-print.js +4 -4
- package/dist/cli.js +0 -0
- package/dist/core/agent-session-runtime.js +1 -4
- package/dist/core/agent-session.d.ts +2 -0
- package/dist/core/agent-session.js +26 -0
- package/dist/core/compaction/branch-summarization.js +30 -30
- package/dist/core/compaction/compaction.js +81 -81
- package/dist/core/compaction/utils.js +2 -2
- package/dist/core/export-html/template.css +1066 -1066
- package/dist/core/export-html/template.html +55 -55
- package/dist/core/export-html/template.js +1864 -1864
- package/dist/core/export-html/vendor/highlight.min.js +1212 -1212
- package/dist/core/export-html/vendor/marked.min.js +78 -78
- package/dist/core/handoff.d.ts +11 -0
- package/dist/core/handoff.js +49 -0
- package/dist/core/messages.js +7 -7
- package/dist/extensions/context-compaction-reminder.test.ts +82 -82
- package/dist/extensions/context-compaction-reminder.ts +28 -28
- package/dist/extensions/handoff-new.ts +14 -75
- package/dist/extensions/pi-intercom/LICENSE +21 -21
- package/dist/extensions/pi-intercom/broker/client.test.ts +83 -83
- package/dist/extensions/pi-intercom/broker/extension.test.ts +387 -387
- package/dist/extensions/pi-intercom/broker/framing.test.ts +114 -114
- package/dist/extensions/pi-intercom/broker/paths.test.ts +153 -153
- package/dist/extensions/pi-intercom/broker/paths.ts +134 -134
- package/dist/extensions/pi-intercom/broker/runtime-claim.test.ts +34 -34
- package/dist/extensions/pi-intercom/broker/runtime-claim.ts +21 -21
- package/dist/extensions/pi-intercom/cwd.test.ts +40 -40
- package/dist/extensions/pi-intercom/cwd.ts +31 -31
- package/dist/extensions/pi-intercom/extension-api.ts +44 -44
- package/dist/extensions/pi-intercom/format-context.test.ts +31 -31
- package/dist/extensions/pi-intercom/format-context.ts +32 -32
- package/dist/extensions/pi-intercom/test/overlay-width.test.ts +66 -66
- package/dist/extensions/pi-intercom/ui/compose.ts +143 -143
- package/dist/extensions/pi-intercom/ui/session-list.ts +166 -166
- package/dist/extensions/pi-powerline-footer/bash-mode/shell-session.ts +286 -286
- package/dist/extensions/pi-powerline-footer/bash-mode/transcript.ts +108 -108
- package/dist/extensions/pi-powerline-footer/separators.ts +57 -57
- package/dist/extensions/pi-powerline-footer/tests/session-usage.test.ts +47 -47
- package/dist/extensions/pi-powerline-footer/tests/tps.test.ts +39 -39
- package/dist/extensions/pi-powerline-footer/theme.example.json +24 -24
- package/dist/extensions/pi-powerline-footer/theme.json +12 -12
- package/dist/extensions/pi-powerline-footer/tps.ts +345 -345
- package/dist/extensions/pi-rewind-hook/README.md +245 -245
- package/dist/extensions/pi-rewind-hook/index.ts +1445 -1445
- package/dist/extensions/pi-rewind-hook/package.json +29 -29
- package/dist/extensions/pi-subagents/install.mjs +0 -0
- package/dist/extensions/pi-web-agent/package.json +31 -31
- package/dist/extensions/pi-web-agent/src/backends/config.ts +205 -205
- package/dist/extensions/pi-web-agent/src/backends/doctor.ts +136 -136
- package/dist/extensions/pi-web-agent/src/backends/factory.ts +152 -152
- package/dist/extensions/pi-web-agent/src/backends/settings-reader.ts +25 -25
- package/dist/extensions/pi-web-agent/src/cache/ttl-cache.ts +28 -28
- package/dist/extensions/pi-web-agent/src/changelog-notice.ts +136 -136
- package/dist/extensions/pi-web-agent/src/commands/web-agent-config.ts +946 -946
- package/dist/extensions/pi-web-agent/src/extension.ts +126 -126
- package/dist/extensions/pi-web-agent/src/extract/readability.ts +118 -118
- package/dist/extensions/pi-web-agent/src/fetch/browser-resolution.ts +199 -199
- package/dist/extensions/pi-web-agent/src/fetch/firecrawl-fetch.ts +100 -100
- package/dist/extensions/pi-web-agent/src/fetch/headless-fetch.ts +117 -117
- package/dist/extensions/pi-web-agent/src/fetch/http-fetch.ts +67 -67
- package/dist/extensions/pi-web-agent/src/orchestration/answer-synthesizer.ts +60 -60
- package/dist/extensions/pi-web-agent/src/orchestration/candidate-selector.ts +50 -50
- package/dist/extensions/pi-web-agent/src/orchestration/direct-url.ts +52 -52
- package/dist/extensions/pi-web-agent/src/orchestration/evidence-quality.ts +105 -105
- package/dist/extensions/pi-web-agent/src/orchestration/evidence-ranker.ts +45 -45
- package/dist/extensions/pi-web-agent/src/orchestration/index.ts +28 -28
- package/dist/extensions/pi-web-agent/src/orchestration/query-planner.ts +47 -47
- package/dist/extensions/pi-web-agent/src/orchestration/research-orchestrator.ts +376 -376
- package/dist/extensions/pi-web-agent/src/orchestration/research-types.ts +64 -64
- package/dist/extensions/pi-web-agent/src/orchestration/research-worker.ts +181 -181
- package/dist/extensions/pi-web-agent/src/orchestration/source-profile.ts +101 -101
- package/dist/extensions/pi-web-agent/src/orchestration/stop-decider.ts +81 -81
- package/dist/extensions/pi-web-agent/src/presentation/config-store.ts +210 -210
- package/dist/extensions/pi-web-agent/src/presentation/config.ts +75 -75
- package/dist/extensions/pi-web-agent/src/presentation/explore-presentation.ts +61 -61
- package/dist/extensions/pi-web-agent/src/presentation/fetch-presentation.ts +54 -54
- package/dist/extensions/pi-web-agent/src/presentation/search-presentation.ts +41 -41
- package/dist/extensions/pi-web-agent/src/presentation/select-view.ts +20 -20
- package/dist/extensions/pi-web-agent/src/presentation/types.ts +63 -63
- package/dist/extensions/pi-web-agent/src/search/brave.ts +114 -114
- package/dist/extensions/pi-web-agent/src/search/duckduckgo.ts +72 -72
- package/dist/extensions/pi-web-agent/src/search/searxng.ts +96 -96
- package/dist/extensions/pi-web-agent/src/tools/web-explore.ts +71 -71
- package/dist/extensions/pi-web-agent/src/tools/web-fetch-headless.ts +31 -31
- package/dist/extensions/pi-web-agent/src/tools/web-fetch.ts +31 -31
- package/dist/extensions/pi-web-agent/src/tools/web-search.ts +157 -157
- package/dist/extensions/pi-web-agent/src/types.ts +88 -88
- package/dist/extensions/ponytail/package.json +8 -8
- package/dist/extensions/question/batch.ts +103 -103
- package/dist/extensions/question/constants.ts +30 -30
- package/dist/extensions/question/helpers.ts +58 -58
- package/dist/extensions/question/navigation.ts +14 -14
- package/dist/extensions/question/package.json +19 -19
- package/dist/extensions/question/schemas.ts +43 -43
- package/dist/extensions/question/selection-mode.ts +46 -46
- package/dist/extensions/question/shortcuts.ts +44 -44
- package/dist/extensions/question/types.ts +132 -132
- package/dist/extensions/test-resolve-hook-impl.mjs +6 -6
- package/dist/extensions/test-resolve-hook.mjs +6 -6
- package/dist/extensions/web-agent-onboarding.ts +222 -222
- package/dist/extensions/workflow/package.json +17 -17
- package/dist/modes/rpc/rpc-mode.js +24 -0
- package/dist/modes/rpc/rpc-types.d.ts +19 -0
- package/dist/package-manager-cli.js +71 -71
- package/dist/rpc-entry.js +0 -0
- package/dist/skills/agent-browser/SKILL.md +52 -52
- package/dist/skills/batch-grill-me/SKILL.md +19 -19
- package/dist/skills/grill-me/SKILL.md +10 -10
- package/dist/skills/handoff/SKILL.md +16 -16
- package/dist/skills/handoff-text/SKILL.md +14 -14
- package/dist/skills/implanger/SKILL.md +69 -69
- package/dist/skills/improve-codebase/REFERENCE.md +78 -78
- package/dist/skills/improve-codebase/SKILL.md +178 -178
- package/dist/skills/planger/SKILL.md +166 -166
- package/dist/skills/ponytail/SKILL.md +116 -116
- package/dist/skills/ponytail-audit/SKILL.md +42 -42
- package/dist/skills/ponytail-debt/SKILL.md +45 -45
- package/dist/skills/ponytail-gain/SKILL.md +51 -51
- package/dist/skills/ponytail-help/SKILL.md +70 -70
- package/dist/skills/ponytail-review/SKILL.md +58 -58
- package/dist/skills/selesai-handoff/SKILL.md +20 -20
- package/dist/skills/workflow-creation/SKILL.md +73 -73
- package/dist/themes/powerline-footer/theme.json +33 -33
- package/docs/compaction.md +396 -396
- package/docs/containerization.md +111 -111
- package/docs/development.md +71 -71
- package/docs/docs.json +164 -164
- package/docs/environment-variables.md +86 -86
- package/docs/index.md +83 -83
- package/docs/json.md +82 -82
- package/docs/models.md +502 -502
- package/docs/packages.md +227 -227
- package/docs/plans/subagent-delegation/phase-0-correctness.md +264 -264
- package/docs/plans/subagent-delegation/phase-1-behavioral-contract.md +485 -485
- package/docs/plans/subagent-delegation/phase-2-context-controls.md +281 -281
- package/docs/plans/subagent-delegation/phase-3-advisory-routing.md +361 -361
- package/docs/plans/subagent-delegation/phase-4-optional-enforcement.md +380 -380
- package/docs/prompt-templates.md +95 -95
- package/docs/providers.md +293 -293
- package/docs/sdk.md +1143 -1143
- package/docs/security.md +59 -59
- package/docs/session-format.md +414 -414
- package/docs/sessions.md +145 -145
- package/docs/shared-host-extensions.md +109 -109
- package/docs/shell-aliases.md +13 -13
- package/docs/skills.md +231 -231
- package/docs/terminal-setup.md +142 -142
- package/docs/termux.md +127 -127
- package/docs/themes.md +295 -295
- package/docs/tmux.md +63 -63
- package/docs/tui.md +927 -927
- package/docs/windows.md +17 -17
- package/examples/README.md +25 -25
- package/examples/extensions/README.md +211 -211
- package/examples/extensions/auto-commit-on-exit.ts +49 -49
- package/examples/extensions/bash-spawn-hook.ts +30 -30
- package/examples/extensions/bookmark.ts +50 -50
- package/examples/extensions/border-status-editor.ts +150 -150
- package/examples/extensions/built-in-tool-renderer.ts +249 -249
- package/examples/extensions/claude-rules.ts +86 -86
- package/examples/extensions/commands.ts +72 -72
- package/examples/extensions/confirm-destructive.ts +59 -59
- package/examples/extensions/custom-compaction.ts +130 -130
- package/examples/extensions/custom-footer.ts +64 -64
- package/examples/extensions/custom-header.ts +73 -73
- package/examples/extensions/custom-provider-anthropic/index.ts +610 -610
- package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -24
- package/examples/extensions/custom-provider-anthropic/package.json +19 -19
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +404 -404
- package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -16
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -82
- package/examples/extensions/dirty-repo-guard.ts +56 -56
- package/examples/extensions/doom-overlay/README.md +46 -46
- package/examples/extensions/doom-overlay/doom/build/doom.js +21 -21
- package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
- package/examples/extensions/doom-overlay/doom/build.sh +152 -152
- package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -72
- package/examples/extensions/doom-overlay/doom-component.ts +132 -132
- package/examples/extensions/doom-overlay/doom-engine.ts +173 -173
- package/examples/extensions/doom-overlay/doom-keys.ts +104 -104
- package/examples/extensions/doom-overlay/index.ts +74 -74
- package/examples/extensions/doom-overlay/wad-finder.ts +51 -51
- package/examples/extensions/dynamic-resources/SKILL.md +8 -8
- package/examples/extensions/dynamic-resources/dynamic.json +79 -79
- package/examples/extensions/dynamic-resources/dynamic.md +5 -5
- package/examples/extensions/dynamic-resources/index.ts +15 -15
- package/examples/extensions/dynamic-tools.ts +74 -74
- package/examples/extensions/event-bus.ts +43 -43
- package/examples/extensions/file-trigger.ts +41 -41
- package/examples/extensions/git-checkpoint.ts +53 -53
- package/examples/extensions/git-merge-and-resolve.ts +115 -115
- package/examples/extensions/github-issue-autocomplete.ts +185 -185
- package/examples/extensions/gondolin/index.ts +531 -531
- package/examples/extensions/gondolin/package-lock.json +185 -185
- package/examples/extensions/gondolin/package.json +19 -19
- package/examples/extensions/handoff.ts +199 -199
- package/examples/extensions/hello.ts +26 -26
- package/examples/extensions/hidden-thinking-label.ts +53 -53
- package/examples/extensions/inline-bash.ts +94 -94
- package/examples/extensions/input-transform-streaming.ts +39 -39
- package/examples/extensions/input-transform.ts +43 -43
- package/examples/extensions/interactive-shell.ts +196 -196
- package/examples/extensions/mac-system-theme.ts +47 -47
- package/examples/extensions/message-renderer.ts +59 -59
- package/examples/extensions/minimal-mode.ts +426 -426
- package/examples/extensions/modal-editor.ts +85 -85
- package/examples/extensions/model-status.ts +31 -31
- package/examples/extensions/notify.ts +55 -55
- package/examples/extensions/overlay-qa-tests.ts +1450 -1450
- package/examples/extensions/overlay-test.ts +153 -153
- package/examples/extensions/permission-gate.ts +34 -34
- package/examples/extensions/pirate.ts +47 -47
- package/examples/extensions/plan-mode/README.md +66 -66
- package/examples/extensions/plan-mode/index.ts +390 -390
- package/examples/extensions/plan-mode/utils.ts +168 -168
- package/examples/extensions/preset.ts +436 -436
- package/examples/extensions/project-trust.ts +64 -64
- package/examples/extensions/prompt-customizer.ts +97 -97
- package/examples/extensions/protected-paths.ts +30 -30
- package/examples/extensions/provider-payload.ts +18 -18
- package/examples/extensions/qna.ts +122 -122
- package/examples/extensions/question.ts +285 -285
- package/examples/extensions/questionnaire.ts +448 -448
- package/examples/extensions/rainbow-editor.ts +88 -88
- package/examples/extensions/reload-runtime.ts +37 -37
- package/examples/extensions/rpc-demo.ts +118 -118
- package/examples/extensions/sandbox/index.ts +321 -321
- package/examples/extensions/sandbox/package-lock.json +92 -92
- package/examples/extensions/sandbox/package.json +19 -19
- package/examples/extensions/send-user-message.ts +97 -97
- package/examples/extensions/session-name.ts +27 -27
- package/examples/extensions/shutdown-command.ts +63 -63
- package/examples/extensions/snake.ts +343 -343
- package/examples/extensions/space-invaders.ts +560 -560
- package/examples/extensions/ssh.ts +220 -220
- package/examples/extensions/status-line.ts +32 -32
- package/examples/extensions/structured-output.ts +65 -65
- package/examples/extensions/subagent/README.md +175 -175
- package/examples/extensions/subagent/agents/planner.md +37 -37
- package/examples/extensions/subagent/agents/reviewer.md +35 -35
- package/examples/extensions/subagent/agents/scout.md +50 -50
- package/examples/extensions/subagent/agents/worker.md +24 -24
- package/examples/extensions/subagent/agents.ts +126 -126
- package/examples/extensions/subagent/index.ts +1015 -1015
- package/examples/extensions/subagent/prompts/implement-and-review.md +10 -10
- package/examples/extensions/subagent/prompts/implement.md +10 -10
- package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -9
- package/examples/extensions/summarize.ts +209 -209
- package/examples/extensions/system-prompt-header.ts +17 -17
- package/examples/extensions/tic-tac-toe.ts +1008 -1008
- package/examples/extensions/timed-confirm.ts +70 -70
- package/examples/extensions/titlebar-spinner.ts +58 -58
- package/examples/extensions/todo.ts +297 -297
- package/examples/extensions/tool-override.ts +144 -144
- package/examples/extensions/tools.ts +146 -146
- package/examples/extensions/trigger-compact.ts +50 -50
- package/examples/extensions/truncated-tool.ts +195 -195
- package/examples/extensions/widget-placement.ts +9 -9
- package/examples/extensions/with-deps/index.ts +32 -32
- package/examples/extensions/with-deps/package-lock.json +31 -31
- package/examples/extensions/with-deps/package.json +22 -22
- package/examples/extensions/working-indicator.ts +123 -123
- package/examples/extensions/working-message-test.ts +25 -25
- package/examples/rpc-extension-ui.ts +632 -632
- package/examples/sdk/01-minimal.ts +26 -26
- package/examples/sdk/02-custom-model.ts +53 -53
- package/examples/sdk/03-custom-prompt.ts +75 -75
- package/examples/sdk/04-skills.ts +55 -55
- package/examples/sdk/05-tools.ts +48 -48
- package/examples/sdk/06-extensions.ts +99 -99
- package/examples/sdk/07-context-files.ts +47 -47
- package/examples/sdk/08-prompt-templates.ts +51 -51
- package/examples/sdk/09-api-keys-and-oauth.ts +52 -52
- package/examples/sdk/10-settings.ts +53 -53
- package/examples/sdk/11-sessions.ts +52 -52
- package/examples/sdk/12-full-control.ts +79 -79
- package/examples/sdk/13-session-runtime.ts +67 -67
- package/examples/sdk/README.md +144 -144
- package/package.json +1 -1
|
@@ -52,91 +52,91 @@ function getPackageCommandUsage(command) {
|
|
|
52
52
|
}
|
|
53
53
|
const CONFIG_COMMAND_USAGE = `${APP_NAME} config [-l] [--approve|--no-approve]`;
|
|
54
54
|
function printConfigCommandHelp() {
|
|
55
|
-
console.log(`${chalk.bold("Usage:")}
|
|
56
|
-
${CONFIG_COMMAND_USAGE}
|
|
57
|
-
|
|
58
|
-
Open the resource configuration TUI to enable or disable package resources.
|
|
59
|
-
Without -l, starts in global settings (~/${CONFIG_DIR_NAME}/agent/settings.json).
|
|
60
|
-
Press Tab in the TUI to switch between global and project-local modes.
|
|
61
|
-
|
|
62
|
-
Options:
|
|
63
|
-
-l, --local Edit project overrides (${CONFIG_DIR_NAME}/settings.json)
|
|
64
|
-
-a, --approve Trust project-local files for this command with -l
|
|
65
|
-
-na, --no-approve Ignore project-local files for this command with -l
|
|
55
|
+
console.log(`${chalk.bold("Usage:")}
|
|
56
|
+
${CONFIG_COMMAND_USAGE}
|
|
57
|
+
|
|
58
|
+
Open the resource configuration TUI to enable or disable package resources.
|
|
59
|
+
Without -l, starts in global settings (~/${CONFIG_DIR_NAME}/agent/settings.json).
|
|
60
|
+
Press Tab in the TUI to switch between global and project-local modes.
|
|
61
|
+
|
|
62
|
+
Options:
|
|
63
|
+
-l, --local Edit project overrides (${CONFIG_DIR_NAME}/settings.json)
|
|
64
|
+
-a, --approve Trust project-local files for this command with -l
|
|
65
|
+
-na, --no-approve Ignore project-local files for this command with -l
|
|
66
66
|
`);
|
|
67
67
|
}
|
|
68
68
|
function printPackageCommandHelp(command) {
|
|
69
69
|
switch (command) {
|
|
70
70
|
case "install":
|
|
71
|
-
console.log(`${chalk.bold("Usage:")}
|
|
72
|
-
${getPackageCommandUsage("install")}
|
|
73
|
-
|
|
74
|
-
Install a package and add it to settings.
|
|
75
|
-
|
|
76
|
-
Options:
|
|
77
|
-
-l, --local Install project-locally (${CONFIG_DIR_NAME}/settings.json)
|
|
78
|
-
-a, --approve Trust project-local files for this command
|
|
79
|
-
-na, --no-approve Ignore project-local files for this command
|
|
80
|
-
|
|
81
|
-
Examples:
|
|
82
|
-
${APP_NAME} install npm:@foo/bar
|
|
83
|
-
${APP_NAME} install git:github.com/user/repo
|
|
84
|
-
${APP_NAME} install git:git@github.com:user/repo
|
|
85
|
-
${APP_NAME} install https://github.com/user/repo
|
|
86
|
-
${APP_NAME} install ssh://git@github.com/user/repo
|
|
87
|
-
${APP_NAME} install ./local/path
|
|
71
|
+
console.log(`${chalk.bold("Usage:")}
|
|
72
|
+
${getPackageCommandUsage("install")}
|
|
73
|
+
|
|
74
|
+
Install a package and add it to settings.
|
|
75
|
+
|
|
76
|
+
Options:
|
|
77
|
+
-l, --local Install project-locally (${CONFIG_DIR_NAME}/settings.json)
|
|
78
|
+
-a, --approve Trust project-local files for this command
|
|
79
|
+
-na, --no-approve Ignore project-local files for this command
|
|
80
|
+
|
|
81
|
+
Examples:
|
|
82
|
+
${APP_NAME} install npm:@foo/bar
|
|
83
|
+
${APP_NAME} install git:github.com/user/repo
|
|
84
|
+
${APP_NAME} install git:git@github.com:user/repo
|
|
85
|
+
${APP_NAME} install https://github.com/user/repo
|
|
86
|
+
${APP_NAME} install ssh://git@github.com/user/repo
|
|
87
|
+
${APP_NAME} install ./local/path
|
|
88
88
|
`);
|
|
89
89
|
return;
|
|
90
90
|
case "remove":
|
|
91
|
-
console.log(`${chalk.bold("Usage:")}
|
|
92
|
-
${getPackageCommandUsage("remove")}
|
|
93
|
-
|
|
94
|
-
Remove a package and its source from settings.
|
|
95
|
-
Alias: ${APP_NAME} uninstall <source> [-l]
|
|
96
|
-
|
|
97
|
-
Options:
|
|
98
|
-
-l, --local Remove from project settings (${CONFIG_DIR_NAME}/settings.json)
|
|
99
|
-
-a, --approve Trust project-local files for this command
|
|
100
|
-
-na, --no-approve Ignore project-local files for this command
|
|
101
|
-
|
|
102
|
-
Examples:
|
|
103
|
-
${APP_NAME} remove npm:@foo/bar
|
|
104
|
-
${APP_NAME} uninstall npm:@foo/bar
|
|
91
|
+
console.log(`${chalk.bold("Usage:")}
|
|
92
|
+
${getPackageCommandUsage("remove")}
|
|
93
|
+
|
|
94
|
+
Remove a package and its source from settings.
|
|
95
|
+
Alias: ${APP_NAME} uninstall <source> [-l]
|
|
96
|
+
|
|
97
|
+
Options:
|
|
98
|
+
-l, --local Remove from project settings (${CONFIG_DIR_NAME}/settings.json)
|
|
99
|
+
-a, --approve Trust project-local files for this command
|
|
100
|
+
-na, --no-approve Ignore project-local files for this command
|
|
101
|
+
|
|
102
|
+
Examples:
|
|
103
|
+
${APP_NAME} remove npm:@foo/bar
|
|
104
|
+
${APP_NAME} uninstall npm:@foo/bar
|
|
105
105
|
`);
|
|
106
106
|
return;
|
|
107
107
|
case "update":
|
|
108
|
-
console.log(`${chalk.bold("Usage:")}
|
|
109
|
-
${getPackageCommandUsage("update")}
|
|
110
|
-
|
|
111
|
-
Update pi, installed packages, or model catalogs.
|
|
112
|
-
|
|
113
|
-
Options:
|
|
114
|
-
--self Update pi only (default when no target is given)
|
|
115
|
-
--extensions Update installed packages only
|
|
116
|
-
--models Refresh model catalogs only
|
|
117
|
-
--all Update pi and installed packages
|
|
118
|
-
--extension <source> Update one package only
|
|
119
|
-
-a, --approve Trust project-local files for this command
|
|
120
|
-
-na, --no-approve Ignore project-local files for this command
|
|
121
|
-
--force Reinstall pi even if the current version is latest
|
|
122
|
-
|
|
123
|
-
Short forms:
|
|
124
|
-
${APP_NAME} update Update pi only
|
|
125
|
-
${APP_NAME} update --all Update pi and all extensions
|
|
126
|
-
${APP_NAME} update --models Refresh model catalogs only
|
|
127
|
-
${APP_NAME} update <source> Update one package
|
|
128
|
-
${APP_NAME} update pi Update pi only (self works as alias to pi)
|
|
108
|
+
console.log(`${chalk.bold("Usage:")}
|
|
109
|
+
${getPackageCommandUsage("update")}
|
|
110
|
+
|
|
111
|
+
Update pi, installed packages, or model catalogs.
|
|
112
|
+
|
|
113
|
+
Options:
|
|
114
|
+
--self Update pi only (default when no target is given)
|
|
115
|
+
--extensions Update installed packages only
|
|
116
|
+
--models Refresh model catalogs only
|
|
117
|
+
--all Update pi and installed packages
|
|
118
|
+
--extension <source> Update one package only
|
|
119
|
+
-a, --approve Trust project-local files for this command
|
|
120
|
+
-na, --no-approve Ignore project-local files for this command
|
|
121
|
+
--force Reinstall pi even if the current version is latest
|
|
122
|
+
|
|
123
|
+
Short forms:
|
|
124
|
+
${APP_NAME} update Update pi only
|
|
125
|
+
${APP_NAME} update --all Update pi and all extensions
|
|
126
|
+
${APP_NAME} update --models Refresh model catalogs only
|
|
127
|
+
${APP_NAME} update <source> Update one package
|
|
128
|
+
${APP_NAME} update pi Update pi only (self works as alias to pi)
|
|
129
129
|
`);
|
|
130
130
|
return;
|
|
131
131
|
case "list":
|
|
132
|
-
console.log(`${chalk.bold("Usage:")}
|
|
133
|
-
${getPackageCommandUsage("list")}
|
|
134
|
-
|
|
135
|
-
List installed packages from user and project settings.
|
|
136
|
-
|
|
137
|
-
Options:
|
|
138
|
-
-a, --approve Trust project-local files for this command
|
|
139
|
-
-na, --no-approve Ignore project-local files for this command
|
|
132
|
+
console.log(`${chalk.bold("Usage:")}
|
|
133
|
+
${getPackageCommandUsage("list")}
|
|
134
|
+
|
|
135
|
+
List installed packages from user and project settings.
|
|
136
|
+
|
|
137
|
+
Options:
|
|
138
|
+
-a, --approve Trust project-local files for this command
|
|
139
|
+
-na, --no-approve Ignore project-local files for this command
|
|
140
140
|
`);
|
|
141
141
|
return;
|
|
142
142
|
}
|
package/dist/rpc-entry.js
CHANGED
|
File without changes
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: agent-browser
|
|
3
|
-
description: Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
|
|
4
|
-
allowed-tools: Bash(agent-browser:*), Bash(npx agent-browser:*)
|
|
5
|
-
hidden: true
|
|
6
|
-
disable-model-invocation: true
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# agent-browser
|
|
10
|
-
|
|
11
|
-
Fast browser automation CLI for AI agents. Chrome/Chromium via CDP with
|
|
12
|
-
accessibility-tree snapshots and compact `@eN` element refs.
|
|
13
|
-
|
|
14
|
-
Install: `npm i -g agent-browser && agent-browser install`
|
|
15
|
-
|
|
16
|
-
## Start here
|
|
17
|
-
|
|
18
|
-
This file is a discovery stub, not the usage guide. Before running any
|
|
19
|
-
`agent-browser` command, load the actual workflow content from the CLI:
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
agent-browser skills get core # start here — workflows, common patterns, troubleshooting
|
|
23
|
-
agent-browser skills get core --full # include full command reference and templates
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
The CLI serves skill content that always matches the installed version,
|
|
27
|
-
so instructions never go stale. The content in this stub cannot change
|
|
28
|
-
between releases, which is why it just points at `skills get core`.
|
|
29
|
-
|
|
30
|
-
## Specialized skills
|
|
31
|
-
|
|
32
|
-
Load a specialized skill when the task falls outside browser web pages:
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
agent-browser skills get electron # Electron desktop apps (VS Code, Slack, Discord, Figma, ...)
|
|
36
|
-
agent-browser skills get slack # Slack workspace automation
|
|
37
|
-
agent-browser skills get dogfood # Exploratory testing / QA / bug hunts
|
|
38
|
-
agent-browser skills get vercel-sandbox # agent-browser inside Vercel Sandbox microVMs
|
|
39
|
-
agent-browser skills get agentcore # AWS Bedrock AgentCore cloud browsers
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
Run `agent-browser skills list` to see everything available on the
|
|
43
|
-
installed version.
|
|
44
|
-
|
|
45
|
-
## Why agent-browser
|
|
46
|
-
|
|
47
|
-
- Fast native Rust CLI, not a Node.js wrapper
|
|
48
|
-
- Works with any AI agent (Cursor, Claude Code, Codex, Continue, Windsurf, etc.)
|
|
49
|
-
- Chrome/Chromium via CDP with no Playwright or Puppeteer dependency
|
|
50
|
-
- Accessibility-tree snapshots with element refs for reliable interaction
|
|
51
|
-
- Sessions, authentication vault, state persistence, video recording
|
|
52
|
-
- Specialized skills for Electron apps, Slack, exploratory testing, cloud providers
|
|
1
|
+
---
|
|
2
|
+
name: agent-browser
|
|
3
|
+
description: Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
|
|
4
|
+
allowed-tools: Bash(agent-browser:*), Bash(npx agent-browser:*)
|
|
5
|
+
hidden: true
|
|
6
|
+
disable-model-invocation: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# agent-browser
|
|
10
|
+
|
|
11
|
+
Fast browser automation CLI for AI agents. Chrome/Chromium via CDP with
|
|
12
|
+
accessibility-tree snapshots and compact `@eN` element refs.
|
|
13
|
+
|
|
14
|
+
Install: `npm i -g agent-browser && agent-browser install`
|
|
15
|
+
|
|
16
|
+
## Start here
|
|
17
|
+
|
|
18
|
+
This file is a discovery stub, not the usage guide. Before running any
|
|
19
|
+
`agent-browser` command, load the actual workflow content from the CLI:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
agent-browser skills get core # start here — workflows, common patterns, troubleshooting
|
|
23
|
+
agent-browser skills get core --full # include full command reference and templates
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The CLI serves skill content that always matches the installed version,
|
|
27
|
+
so instructions never go stale. The content in this stub cannot change
|
|
28
|
+
between releases, which is why it just points at `skills get core`.
|
|
29
|
+
|
|
30
|
+
## Specialized skills
|
|
31
|
+
|
|
32
|
+
Load a specialized skill when the task falls outside browser web pages:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
agent-browser skills get electron # Electron desktop apps (VS Code, Slack, Discord, Figma, ...)
|
|
36
|
+
agent-browser skills get slack # Slack workspace automation
|
|
37
|
+
agent-browser skills get dogfood # Exploratory testing / QA / bug hunts
|
|
38
|
+
agent-browser skills get vercel-sandbox # agent-browser inside Vercel Sandbox microVMs
|
|
39
|
+
agent-browser skills get agentcore # AWS Bedrock AgentCore cloud browsers
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Run `agent-browser skills list` to see everything available on the
|
|
43
|
+
installed version.
|
|
44
|
+
|
|
45
|
+
## Why agent-browser
|
|
46
|
+
|
|
47
|
+
- Fast native Rust CLI, not a Node.js wrapper
|
|
48
|
+
- Works with any AI agent (Cursor, Claude Code, Codex, Continue, Windsurf, etc.)
|
|
49
|
+
- Chrome/Chromium via CDP with no Playwright or Puppeteer dependency
|
|
50
|
+
- Accessibility-tree snapshots with element refs for reliable interaction
|
|
51
|
+
- Sessions, authentication vault, state persistence, video recording
|
|
52
|
+
- Specialized skills for Electron apps, Slack, exploratory testing, cloud providers
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: batch-grill-me
|
|
3
|
-
description: A relentless interview that asks every frontier question at once, round by round.
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
Interview the user relentlessly until you reach a shared understanding. Map this as a **design tree**: every decision branches into the decisions that hang off it.
|
|
8
|
-
|
|
9
|
-
Work the tree in **rounds**. The **frontier** is every decision whose prerequisites are already settled — the questions you can ask *now* without guessing at answers you haven't heard yet.
|
|
10
|
-
|
|
11
|
-
Before asking a frontier, normalize it by intent. Remove semantic duplicates and merge items that ask for the same decision into one concise parent question; when compatible, combine their choices into one `select` or `multiselect`. Different wording, examples, or context do not make a new decision. Keep questions separate only when the user could reasonably answer them differently and each answer must be recorded independently.
|
|
12
|
-
|
|
13
|
-
For every normalized, non-empty frontier, call the `question` tool **exactly once** with its `questions` array; never print frontier questions as plain chat text. Give every item a stable `id`, short `label`, one-sentence `question`, and `context` containing the recommended answer and why in at most two short sentences. Do not restate the question or option labels in `context`. Provide options when known and set `allowOther: true` when the user may need another answer. The batch UI lets the user revisit pages before pressing Enter on its final review page to submit all answers. Wait for that tool result, map returned `answers` by `id`, then recompute the next frontier.
|
|
14
|
-
|
|
15
|
-
Each round the user answers reshapes the tree — settled decisions push the frontier outward and unblock questions that depended on them. Recompute the frontier and ask the next round. A question whose answer depends on another question still open in this round belongs to a *later* round, not this one.
|
|
16
|
-
|
|
17
|
-
Finding *facts* is your job, never the user's. When a frontier question needs a fact from the environment (filesystem, tools, etc.), dispatch a sub-agent to find it — don't ask the user for anything you could look up yourself. Don't block on it: a running exploration is an unsettled prerequisite, so only the questions downstream of it wait for the sub-agent to report — ask the rest of the frontier now. The *decisions* are the user's — put each to them and wait.
|
|
18
|
-
|
|
19
|
-
The session is done when the frontier is empty: every branch of the design tree visited, nothing left silently assumed. Do not act on it until the user confirms you have reached a shared understanding.
|
|
1
|
+
---
|
|
2
|
+
name: batch-grill-me
|
|
3
|
+
description: A relentless interview that asks every frontier question at once, round by round.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Interview the user relentlessly until you reach a shared understanding. Map this as a **design tree**: every decision branches into the decisions that hang off it.
|
|
8
|
+
|
|
9
|
+
Work the tree in **rounds**. The **frontier** is every decision whose prerequisites are already settled — the questions you can ask *now* without guessing at answers you haven't heard yet.
|
|
10
|
+
|
|
11
|
+
Before asking a frontier, normalize it by intent. Remove semantic duplicates and merge items that ask for the same decision into one concise parent question; when compatible, combine their choices into one `select` or `multiselect`. Different wording, examples, or context do not make a new decision. Keep questions separate only when the user could reasonably answer them differently and each answer must be recorded independently.
|
|
12
|
+
|
|
13
|
+
For every normalized, non-empty frontier, call the `question` tool **exactly once** with its `questions` array; never print frontier questions as plain chat text. Give every item a stable `id`, short `label`, one-sentence `question`, and `context` containing the recommended answer and why in at most two short sentences. Do not restate the question or option labels in `context`. Provide options when known and set `allowOther: true` when the user may need another answer. The batch UI lets the user revisit pages before pressing Enter on its final review page to submit all answers. Wait for that tool result, map returned `answers` by `id`, then recompute the next frontier.
|
|
14
|
+
|
|
15
|
+
Each round the user answers reshapes the tree — settled decisions push the frontier outward and unblock questions that depended on them. Recompute the frontier and ask the next round. A question whose answer depends on another question still open in this round belongs to a *later* round, not this one.
|
|
16
|
+
|
|
17
|
+
Finding *facts* is your job, never the user's. When a frontier question needs a fact from the environment (filesystem, tools, etc.), dispatch a sub-agent to find it — don't ask the user for anything you could look up yourself. Don't block on it: a running exploration is an unsettled prerequisite, so only the questions downstream of it wait for the sub-agent to report — ask the rest of the frontier now. The *decisions* are the user's — put each to them and wait.
|
|
18
|
+
|
|
19
|
+
The session is done when the frontier is empty: every branch of the design tree visited, nothing left silently assumed. Do not act on it until the user confirms you have reached a shared understanding.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: grill-me
|
|
3
|
-
description: Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
|
|
7
|
-
|
|
8
|
-
Ask the questions one at a time.
|
|
9
|
-
|
|
10
|
-
If a question can be answered by exploring the codebase, explore the codebase instead.
|
|
1
|
+
---
|
|
2
|
+
name: grill-me
|
|
3
|
+
description: Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
|
|
7
|
+
|
|
8
|
+
Ask the questions one at a time.
|
|
9
|
+
|
|
10
|
+
If a question can be answered by exploring the codebase, explore the codebase instead.
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: handoff
|
|
3
|
-
description: Compact the current conversation into a handoff document for another agent to pick up.
|
|
4
|
-
argument-hint: "What will the next session be used for?"
|
|
5
|
-
disable-model-invocation: true
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
Write a handoff document summarising the current conversation so a fresh agent can continue the work. Save to the temporary directory of the user's OS - not the current workspace.
|
|
9
|
-
|
|
10
|
-
Include a "suggested skills" section in the document, which suggests skills that the agent should invoke.
|
|
11
|
-
|
|
12
|
-
Do not duplicate content already captured in other artifacts (PRDs, plans, ADRs, issues, commits, diffs). Reference them by path or URL instead.
|
|
13
|
-
|
|
14
|
-
Redact any sensitive information, such as API keys, passwords, or personally identifiable information.
|
|
15
|
-
|
|
16
|
-
If the user passed arguments, treat them as a description of what the next session will focus on and tailor the doc accordingly.
|
|
1
|
+
---
|
|
2
|
+
name: handoff
|
|
3
|
+
description: Compact the current conversation into a handoff document for another agent to pick up.
|
|
4
|
+
argument-hint: "What will the next session be used for?"
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Write a handoff document summarising the current conversation so a fresh agent can continue the work. Save to the temporary directory of the user's OS - not the current workspace.
|
|
9
|
+
|
|
10
|
+
Include a "suggested skills" section in the document, which suggests skills that the agent should invoke.
|
|
11
|
+
|
|
12
|
+
Do not duplicate content already captured in other artifacts (PRDs, plans, ADRs, issues, commits, diffs). Reference them by path or URL instead.
|
|
13
|
+
|
|
14
|
+
Redact any sensitive information, such as API keys, passwords, or personally identifiable information.
|
|
15
|
+
|
|
16
|
+
If the user passed arguments, treat them as a description of what the next session will focus on and tailor the doc accordingly.
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: handoff-text
|
|
3
|
-
description: Compact the current conversation into a handoff document for another agent to pick up.
|
|
4
|
-
argument-hint: "What will the next session be used for?"
|
|
5
|
-
disable-model-invocation: true
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
Write a handoff document summarising the current conversation so a fresh agent can continue the work. Dont save the handoff, output only.
|
|
9
|
-
|
|
10
|
-
Do not duplicate content already captured in other artifacts (PRDs, plans, ADRs, issues, commits, diffs). Reference them by path or URL instead.
|
|
11
|
-
|
|
12
|
-
Redact any sensitive information, such as API keys, passwords, or personally identifiable information.
|
|
13
|
-
|
|
14
|
-
If the user passed arguments, treat them as a description of what the next session will focus on and tailor the doc accordingly.
|
|
1
|
+
---
|
|
2
|
+
name: handoff-text
|
|
3
|
+
description: Compact the current conversation into a handoff document for another agent to pick up.
|
|
4
|
+
argument-hint: "What will the next session be used for?"
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Write a handoff document summarising the current conversation so a fresh agent can continue the work. Dont save the handoff, output only.
|
|
9
|
+
|
|
10
|
+
Do not duplicate content already captured in other artifacts (PRDs, plans, ADRs, issues, commits, diffs). Reference them by path or URL instead.
|
|
11
|
+
|
|
12
|
+
Redact any sensitive information, such as API keys, passwords, or personally identifiable information.
|
|
13
|
+
|
|
14
|
+
If the user passed arguments, treat them as a description of what the next session will focus on and tailor the doc accordingly.
|
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: implanger
|
|
3
|
-
description: Execute the Planger's style planning
|
|
4
|
-
argument-hint: "For Subagent to be able to understand Planger and can execute it perfectly"
|
|
5
|
-
disable-model-invocation: true
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Goal
|
|
9
|
-
|
|
10
|
-
Implement the requested change with the smallest correct modification.
|
|
11
|
-
|
|
12
|
-
## Before Changing Code
|
|
13
|
-
|
|
14
|
-
- Read surrounding code
|
|
15
|
-
- Follow existing patterns
|
|
16
|
-
- Verify assumptions
|
|
17
|
-
- Trace usages when needed
|
|
18
|
-
|
|
19
|
-
Never assume behavior that can be inspected.
|
|
20
|
-
|
|
21
|
-
## Implementation Rules
|
|
22
|
-
|
|
23
|
-
- Prefer consistency over preference
|
|
24
|
-
- Make the smallest correct change
|
|
25
|
-
- Reuse existing code before creating new code
|
|
26
|
-
- Do not solve future problems
|
|
27
|
-
- Do not refactor unrelated areas
|
|
28
|
-
- Do not introduce abstractions for one use case
|
|
29
|
-
|
|
30
|
-
## Backward Compatibility
|
|
31
|
-
|
|
32
|
-
Do not add:
|
|
33
|
-
|
|
34
|
-
- Wrappers
|
|
35
|
-
- Adapters
|
|
36
|
-
- Fallbacks
|
|
37
|
-
- Feature flags
|
|
38
|
-
- Dual execution paths
|
|
39
|
-
|
|
40
|
-
unless explicitly required.
|
|
41
|
-
|
|
42
|
-
When replacing behavior:
|
|
43
|
-
|
|
44
|
-
1. Find usages
|
|
45
|
-
2. Update usages
|
|
46
|
-
3. Remove obsolete code
|
|
47
|
-
|
|
48
|
-
Prefer one source of truth.
|
|
49
|
-
|
|
50
|
-
## Comments
|
|
51
|
-
|
|
52
|
-
Only explain:
|
|
53
|
-
|
|
54
|
-
- Business rules
|
|
55
|
-
- External constraints
|
|
56
|
-
- Vendor quirks
|
|
57
|
-
- Non-obvious decisions
|
|
58
|
-
|
|
59
|
-
Do not narrate code.
|
|
60
|
-
|
|
61
|
-
## Validation
|
|
62
|
-
|
|
63
|
-
Before completion verify:
|
|
64
|
-
|
|
65
|
-
- Requirement satisfied
|
|
66
|
-
- Scope remained limited
|
|
67
|
-
- Existing patterns followed
|
|
68
|
-
- No unnecessary complexity added
|
|
69
|
-
- No dead code remains
|
|
1
|
+
---
|
|
2
|
+
name: implanger
|
|
3
|
+
description: Execute the Planger's style planning
|
|
4
|
+
argument-hint: "For Subagent to be able to understand Planger and can execute it perfectly"
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
Implement the requested change with the smallest correct modification.
|
|
11
|
+
|
|
12
|
+
## Before Changing Code
|
|
13
|
+
|
|
14
|
+
- Read surrounding code
|
|
15
|
+
- Follow existing patterns
|
|
16
|
+
- Verify assumptions
|
|
17
|
+
- Trace usages when needed
|
|
18
|
+
|
|
19
|
+
Never assume behavior that can be inspected.
|
|
20
|
+
|
|
21
|
+
## Implementation Rules
|
|
22
|
+
|
|
23
|
+
- Prefer consistency over preference
|
|
24
|
+
- Make the smallest correct change
|
|
25
|
+
- Reuse existing code before creating new code
|
|
26
|
+
- Do not solve future problems
|
|
27
|
+
- Do not refactor unrelated areas
|
|
28
|
+
- Do not introduce abstractions for one use case
|
|
29
|
+
|
|
30
|
+
## Backward Compatibility
|
|
31
|
+
|
|
32
|
+
Do not add:
|
|
33
|
+
|
|
34
|
+
- Wrappers
|
|
35
|
+
- Adapters
|
|
36
|
+
- Fallbacks
|
|
37
|
+
- Feature flags
|
|
38
|
+
- Dual execution paths
|
|
39
|
+
|
|
40
|
+
unless explicitly required.
|
|
41
|
+
|
|
42
|
+
When replacing behavior:
|
|
43
|
+
|
|
44
|
+
1. Find usages
|
|
45
|
+
2. Update usages
|
|
46
|
+
3. Remove obsolete code
|
|
47
|
+
|
|
48
|
+
Prefer one source of truth.
|
|
49
|
+
|
|
50
|
+
## Comments
|
|
51
|
+
|
|
52
|
+
Only explain:
|
|
53
|
+
|
|
54
|
+
- Business rules
|
|
55
|
+
- External constraints
|
|
56
|
+
- Vendor quirks
|
|
57
|
+
- Non-obvious decisions
|
|
58
|
+
|
|
59
|
+
Do not narrate code.
|
|
60
|
+
|
|
61
|
+
## Validation
|
|
62
|
+
|
|
63
|
+
Before completion verify:
|
|
64
|
+
|
|
65
|
+
- Requirement satisfied
|
|
66
|
+
- Scope remained limited
|
|
67
|
+
- Existing patterns followed
|
|
68
|
+
- No unnecessary complexity added
|
|
69
|
+
- No dead code remains
|