@pasko70/pibo 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +106 -254
- package/context/codex-base-prompt.md +4 -0
- package/context/compute-worker.md +23 -0
- package/context/pibo-native-tooling.md +18 -0
- package/context/pibo-system-prompt.md +69 -8
- package/dist/api/simple-agent-api.js +136 -0
- package/dist/app-context.js +4 -0
- package/dist/apps/chat/agent-profiles.js +18 -3
- package/dist/apps/chat/agent-store.js +113 -16
- package/dist/apps/chat/chat-api-routes.js +311 -0
- package/dist/apps/chat/chat-capability-routes.js +90 -0
- package/dist/apps/chat/chat-files.js +178 -0
- package/dist/apps/chat/chat-request-normalizers.js +681 -0
- package/dist/apps/chat/chat-settings-routes.js +75 -0
- package/dist/apps/chat/chat-trace-helpers.js +94 -0
- package/dist/apps/chat/chat-user-skill-routes.js +149 -0
- package/dist/apps/chat/cron-api.js +213 -0
- package/dist/apps/chat/data/chat-data-mappers.js +74 -0
- package/dist/apps/chat/data/event-command-service.js +75 -0
- package/dist/apps/chat/data/navigation-query-service.js +11 -0
- package/dist/apps/chat/data/project-service.js +844 -0
- package/dist/apps/chat/data/read-state-service.js +42 -0
- package/dist/apps/chat/data/room-service.js +52 -0
- package/dist/apps/chat/data/session-query-service.js +63 -0
- package/dist/apps/chat/data/timeline-query-service.js +96 -0
- package/dist/apps/chat/event-log.js +1 -307
- package/dist/apps/chat/model-catalog.js +7 -2
- package/dist/apps/chat/output-compactor.js +126 -0
- package/dist/apps/chat/output-event-policy.js +17 -0
- package/dist/apps/chat/project-workflow-human-actions.js +347 -0
- package/dist/apps/chat/project-workflow-sessions.js +260 -0
- package/dist/apps/chat/provider-auth-actions.js +43 -0
- package/dist/apps/chat/ralph-api.js +156 -0
- package/dist/apps/chat/read-model.js +1 -218
- package/dist/apps/chat/rooms.js +1 -321
- package/dist/apps/chat/static-assets.js +996 -0
- package/dist/apps/chat/stream.js +29 -6
- package/dist/apps/chat/trace.js +179 -1003
- package/dist/apps/chat/types/event-store.js +1 -0
- package/dist/apps/chat/types/read-model.js +1 -0
- package/dist/apps/chat/types/rooms.js +36 -0
- package/dist/apps/chat/web-app.js +3131 -1959
- package/dist/apps/chat/workflow-catalog.js +572 -0
- package/dist/apps/chat/workflow-edge-compatibility.js +51 -0
- package/dist/apps/chat/workflow-json-schema-validation.js +335 -0
- package/dist/apps/chat/workflow-persistence-model.js +140 -0
- package/dist/apps/chat/workflow-persistence.js +633 -0
- package/dist/apps/chat/workflow-registered-ref-params.js +130 -0
- package/dist/apps/chat/workflow-registered-ref-pickers.js +179 -0
- package/dist/apps/chat/workflow-registered-ref-validation.js +210 -0
- package/dist/apps/chat/workflow-v2-security-validation.js +93 -0
- package/dist/apps/chat/workflow-validation-helpers.js +114 -0
- package/dist/apps/chat-ui/assets/{dist-CNLWH2qh.js → dist-B4lw9z4F.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-8e4L8ciw.js → dist-BbTaHWON.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-CMZOa5ik.js → dist-BcT_c1EJ.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-DNcnQRPF.js → dist-CGINd7XU.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-CqqUC8Ce.js → dist-CrBzZkUp.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-D2N4-LIc.js → dist-CyyISotB.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-CUqpST5w.js → dist-DFbnFNpX.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-CspjOeBj.js → dist-DGLWQLX8.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-B7bbI3Qz.js → dist-DfcIkFSN.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-v4pjHlB7.js → dist-sKDHTwaT.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-D9L4MSRF.js → dist-y9D6la48.js} +1 -1
- package/dist/apps/chat-ui/assets/index-C25VYnyb.css +1 -0
- package/dist/apps/chat-ui/assets/index-CUkuvI3v.js +165 -0
- package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-144x144.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-192x192.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-48x48.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-512x512.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-72x72.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-96x96.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/1024.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/114.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/120.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/128.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/144.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/152.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/16.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/167.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/180.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/192.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/20.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/256.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/29.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/32.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/40.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/50.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/512.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/57.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/58.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/60.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/64.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/72.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/76.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/80.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/87.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/LargeTile.scale-100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/LargeTile.scale-125.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/LargeTile.scale-150.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/LargeTile.scale-200.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/LargeTile.scale-400.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SmallTile.scale-100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SmallTile.scale-125.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SmallTile.scale-150.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SmallTile.scale-200.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SmallTile.scale-400.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SplashScreen.scale-100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SplashScreen.scale-125.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SplashScreen.scale-150.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SplashScreen.scale-200.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SplashScreen.scale-400.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square150x150Logo.scale-100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square150x150Logo.scale-125.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square150x150Logo.scale-150.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square150x150Logo.scale-200.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square150x150Logo.scale-400.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-16.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-20.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-24.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-256.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-30.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-32.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-36.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-40.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-44.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-48.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-60.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-64.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-72.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-80.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-96.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-16.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-20.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-24.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-256.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-30.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-32.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-36.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-40.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-44.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-48.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-60.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-64.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-72.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-80.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-96.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.scale-100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.scale-125.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.scale-150.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.scale-200.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.scale-400.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-16.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-20.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-24.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-256.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-30.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-32.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-36.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-40.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-44.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-48.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-60.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-64.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-72.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-80.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-96.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/StoreLogo.scale-100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/StoreLogo.scale-125.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/StoreLogo.scale-150.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/StoreLogo.scale-200.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/StoreLogo.scale-400.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Wide310x150Logo.scale-100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Wide310x150Logo.scale-125.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Wide310x150Logo.scale-150.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Wide310x150Logo.scale-200.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Wide310x150Logo.scale-400.png +0 -0
- package/dist/apps/chat-ui/index.html +8 -3
- package/dist/apps/chat-ui/manifest.webmanifest +25 -0
- package/dist/apps/chat-ui/sw.js +41 -0
- package/dist/apps/chat-vscode-web/assets/index-B5QK07zO.css +2 -0
- package/dist/apps/chat-vscode-web/assets/index-C3GTPyDo.js +41 -0
- package/dist/apps/chat-vscode-web/index.html +14 -0
- package/dist/apps/cli-ui/InkSessionApp.js +1218 -0
- package/dist/apps/cli-ui/InkTerminalLine.js +53 -0
- package/dist/apps/cli-ui/InkTerminalRow.js +304 -0
- package/dist/apps/cli-ui/InkTerminalView.js +25 -0
- package/dist/apps/cli-ui/cliSessionsCommand.js +232 -0
- package/dist/apps/cli-ui/index.js +8 -0
- package/dist/apps/cli-ui/inkColors.js +67 -0
- package/dist/apps/cli-ui/inkJson.js +244 -0
- package/dist/apps/cli-ui/inkMarkdown.js +122 -0
- package/dist/apps/context-files-ui/assets/{dist-DFi2YGux.js → dist-BOiGdrG-.js} +1 -1
- package/dist/apps/context-files-ui/assets/{dist-DyfSeBMu.js → dist-DK01b7x4.js} +1 -1
- package/dist/apps/context-files-ui/assets/{dist-CwbH_3RN.js → dist-DPG9jOQ-.js} +1 -1
- package/dist/apps/context-files-ui/assets/{dist-dTBsFYAl.js → dist-Dp5AH00p.js} +1 -1
- package/dist/apps/context-files-ui/assets/{dist-CxRLRmMx.js → dist-DqYw0LH7.js} +1 -1
- package/dist/apps/context-files-ui/assets/{dist-MyZgX9K2.js → dist-TF5iO5ML.js} +1 -1
- package/dist/apps/context-files-ui/assets/{dist-DQXzt2Ng.js → dist-TbjAhles.js} +1 -1
- package/dist/apps/context-files-ui/assets/{dist-YwR9dpb-.js → dist-ZsBbt0uY.js} +1 -1
- package/dist/apps/context-files-ui/assets/{dist-CKQF1zEu.js → dist-kmsvtHkH.js} +1 -1
- package/dist/apps/context-files-ui/assets/{dist-BJW3917N.js → dist-vnd7PMu3.js} +1 -1
- package/dist/apps/context-files-ui/assets/{index-BwRDoHMC.css → index-B92tL3Pp.css} +1 -1
- package/dist/apps/context-files-ui/assets/{index-GwvjXytt.js → index-BhAWD3dv.js} +2 -2
- package/dist/apps/context-files-ui/index.html +2 -2
- package/dist/apps/vscode-artifacts/latest.vsix +0 -0
- package/dist/apps/vscode-artifacts/pibo-vscode-1.3.0.vsix +0 -0
- package/dist/auth/better-auth.js +2 -1
- package/dist/auth/login-actions.js +251 -0
- package/dist/auth/openai-codex-usage.js +147 -0
- package/dist/bin/pibo.js +0 -0
- package/dist/bin/rg.js +15 -0
- package/dist/cli-session/fakeSessionSource.js +804 -0
- package/dist/cli-session/index.js +3 -0
- package/dist/cli-session/localSessionSource.js +1144 -0
- package/dist/cli-session/sessionSource.js +13 -0
- package/dist/cli.js +159 -14
- package/dist/compute/cli.js +415 -0
- package/dist/compute/docker.js +827 -0
- package/dist/compute/resource-health.js +333 -0
- package/dist/compute/resource-policy.js +98 -0
- package/dist/config/config.js +9 -5
- package/dist/core/context-build.js +677 -0
- package/dist/core/model-defaults.js +51 -9
- package/dist/core/pibo-home.js +8 -0
- package/dist/core/profiles.js +48 -0
- package/dist/core/provider-telemetry.js +222 -0
- package/dist/core/routed-session.js +441 -47
- package/dist/core/runtime-telemetry.js +853 -0
- package/dist/core/runtime.js +103 -15
- package/dist/core/session-errors.js +47 -0
- package/dist/core/session-model.js +39 -0
- package/dist/core/session-router.js +292 -62
- package/dist/core/shared-app.js +17 -0
- package/dist/core/skill-expansion.js +43 -0
- package/dist/core/system-prompt-template.js +9 -9
- package/dist/core/telemetry-staleness.js +128 -0
- package/dist/core/test-output-compaction.js +145 -0
- package/dist/core/user-settings.js +73 -0
- package/dist/cron/channel.js +28 -0
- package/dist/cron/cli.js +230 -0
- package/dist/cron/plugin.js +11 -0
- package/dist/cron/schedule.js +214 -0
- package/dist/cron/service.js +177 -0
- package/dist/cron/store.js +349 -0
- package/dist/cron/types.js +1 -0
- package/dist/data/cli.js +184 -0
- package/dist/data/event-log.js +106 -0
- package/dist/data/final-app-space-cutover-migration.js +728 -0
- package/dist/data/ingest-service.js +389 -0
- package/dist/data/message-store.js +62 -0
- package/dist/data/navigation-store.js +75 -0
- package/dist/data/observation-store.js +46 -0
- package/dist/data/payload-store.js +144 -0
- package/dist/data/pibo-store.js +59 -0
- package/dist/data/schema.js +434 -0
- package/dist/data/session-store.js +63 -0
- package/dist/data/shared-app-migration.js +757 -0
- package/dist/data/sqlite-schema.js +12 -0
- package/dist/data/telemetry-preview.js +65 -0
- package/dist/data/telemetry-queries.js +212 -0
- package/dist/data/telemetry-retention.js +50 -0
- package/dist/data/telemetry-rows.js +158 -0
- package/dist/data/telemetry.js +357 -0
- package/dist/debug/delta-compaction.js +99 -0
- package/dist/debug/detail-format.js +86 -0
- package/dist/debug/events.js +149 -29
- package/dist/debug/failures.js +162 -0
- package/dist/debug/index.js +655 -30
- package/dist/debug/messages.js +185 -0
- package/dist/debug/next-commands.js +6 -0
- package/dist/debug/payloads.js +123 -0
- package/dist/debug/pty.js +924 -0
- package/dist/debug/session.js +45 -15
- package/dist/debug/sql.js +1 -1
- package/dist/debug/stores.js +18 -13
- package/dist/debug/summary.js +72 -0
- package/dist/debug/telemetry.js +649 -0
- package/dist/debug/tools.js +168 -0
- package/dist/debug/trace-render-check.js +151 -0
- package/dist/debug/trace.js +152 -27
- package/dist/debug/web-artifacts.js +63 -0
- package/dist/debug/web-options.js +313 -0
- package/dist/debug/web-render-analysis.js +310 -0
- package/dist/debug/web-snapshot-browser-scripts.js +303 -0
- package/dist/debug/web-streaming-benchmark-analysis.js +605 -0
- package/dist/debug/web-streaming-browser-library.js +928 -0
- package/dist/debug/web-streaming-browser-scripts.js +242 -0
- package/dist/debug/web-streaming-provider-telemetry.js +194 -0
- package/dist/debug/web-streaming-report.js +493 -0
- package/dist/debug/web-streaming-types.js +1 -0
- package/dist/debug/web.js +574 -0
- package/dist/gateway/backup.js +83 -0
- package/dist/gateway/cli.js +511 -0
- package/dist/gateway/fallback.js +155 -0
- package/dist/gateway/pidfile.js +84 -0
- package/dist/gateway/protocol.js +16 -0
- package/dist/gateway/server.js +172 -17
- package/dist/gateway/tool.js +54 -51
- package/dist/gateway/web.js +74 -2
- package/dist/index.js +3 -1
- package/dist/local/client.js +3 -3
- package/dist/local/extension.js +8 -5
- package/dist/plugins/builtin.js +251 -49
- package/dist/plugins/chat-vscode-web.js +28 -0
- package/dist/plugins/codex-compat.js +0 -41
- package/dist/plugins/context-files.js +98 -18
- package/dist/plugins/dev-auth.js +124 -0
- package/dist/plugins/native-tooling.js +15 -0
- package/dist/plugins/registry.js +49 -1
- package/dist/plugins/web-annotations.js +27 -0
- package/dist/providers/minimax.js +70 -0
- package/dist/providers/openai-compat.js +48 -0
- package/dist/ralph/channel.js +8 -0
- package/dist/ralph/cli.js +152 -0
- package/dist/ralph/plugin.js +14 -0
- package/dist/ralph/service.js +271 -0
- package/dist/ralph/stopping.js +151 -0
- package/dist/ralph/store.js +450 -0
- package/dist/ralph/templates.js +200 -0
- package/dist/ralph/types.js +1 -0
- package/dist/reliability/store.js +42 -26
- package/dist/runs/registry.js +72 -35
- package/dist/session-ui/commandCatalog.js +193 -0
- package/dist/session-ui/commandResults.js +95 -0
- package/dist/session-ui/index.js +7 -0
- package/dist/session-ui/ownerViewModel.js +27 -0
- package/dist/session-ui/roomSessionViewModel.js +69 -0
- package/dist/session-ui/statusViewModel.js +127 -0
- package/dist/session-ui/terminalCards.js +210 -0
- package/dist/session-ui/terminalRows.js +937 -0
- package/dist/session-ui/terminalValue.js +45 -0
- package/dist/sessions/pibo-data-store.js +178 -0
- package/dist/sessions/sqlite-store.js +78 -12
- package/dist/sessions/store.js +11 -4
- package/dist/sessions/workflow-session-kind.js +20 -0
- package/dist/setup/cli.js +567 -0
- package/dist/shared/trace-async-agent-runs.js +127 -0
- package/dist/shared/trace-engine.js +96 -0
- package/dist/shared/trace-event-projection.js +679 -0
- package/dist/shared/trace-live-reducer.js +191 -0
- package/dist/shared/trace-nodes.js +76 -0
- package/dist/shared/trace-order.js +11 -10
- package/dist/shared/trace-patch-nodes.js +83 -0
- package/dist/shared/trace-run-notifications.js +69 -0
- package/dist/shared/trace-subagent-links.js +46 -0
- package/dist/shared/trace-transcript.js +303 -0
- package/dist/shared/trace-types.js +1 -0
- package/dist/shared-app.js +4 -0
- package/dist/signals/aggregate.js +65 -0
- package/dist/signals/events.js +1 -0
- package/dist/signals/projector.js +158 -0
- package/dist/signals/registry.js +513 -0
- package/dist/signals/store.js +1 -0
- package/dist/signals/types.js +1 -0
- package/dist/skills/cli.js +117 -0
- package/dist/tools/agent-browser-leases.js +219 -0
- package/dist/tools/agent-browser-wrapper.js +99 -0
- package/dist/tools/browser-pool.js +623 -0
- package/dist/tools/browser-use-cdp.js +56 -4
- package/dist/tools/browser-use-leases.js +215 -37
- package/dist/tools/browser-use-wrapper.js +508 -65
- package/dist/tools/cdp-client.js +189 -0
- package/dist/tools/guides.js +203 -4
- package/dist/tools/index.js +666 -16
- package/dist/tools/npm-runtime.js +136 -0
- package/dist/tools/registry.js +107 -8
- package/dist/tools/runtime/index.js +3 -0
- package/dist/tools/runtime/node-backend.js +225 -0
- package/dist/tools/runtime/node-worker-source.js +206 -0
- package/dist/tools/runtime/python-backend.js +227 -0
- package/dist/tools/runtime/python-worker-source.js +178 -0
- package/dist/tools/runtime/registry.js +255 -0
- package/dist/tools/runtime/tool.js +168 -0
- package/dist/tools/runtime/types.js +1 -0
- package/dist/tools/web-search.js +2 -1
- package/dist/user-skills/installer.js +39 -36
- package/dist/user-skills/store.js +50 -11
- package/dist/vscode/cli.js +90 -0
- package/dist/vscode/code-cli.js +119 -0
- package/dist/vscode/install.js +177 -0
- package/dist/vscode/status.js +80 -0
- package/dist/vscode/types.js +14 -0
- package/dist/vscode/uninstall.js +49 -0
- package/dist/vscode/vsix-fetcher.js +131 -0
- package/dist/web/auth.js +5 -1
- package/dist/web/channel.js +86 -0
- package/dist/web/http.js +79 -14
- package/dist/web-annotations/api.js +348 -0
- package/dist/web-annotations/attachments.js +201 -0
- package/dist/web-annotations/cdp.js +1107 -0
- package/dist/web-annotations/index.js +7 -0
- package/dist/web-annotations/store.js +407 -0
- package/dist/web-annotations/tools.js +350 -0
- package/dist/web-annotations/types.js +34 -0
- package/dist/web-annotations/validation.js +288 -0
- package/docs/README.md +23 -0
- package/docs/ops/install-developer-host.md +112 -0
- package/docs/ops/install-user-host.md +76 -0
- package/docs/ops/upgrade-user-to-developer-host.md +69 -0
- package/docs/ops/vscode-extension-release.md +138 -0
- package/package.json +24 -9
- package/skills/builtin/pi-agent-harness/SKILL.md +24 -24
- package/skills/builtin/pibo-docker-system/SKILL.md +170 -0
- package/skills/builtin/pibo-spec-writing/SKILL.md +330 -0
- package/skills/builtin/prd/SKILL.md +143 -0
- package/skills/builtin/ralph-loop/SKILL.md +359 -0
- package/skills/builtin/ralph-prd-json/SKILL.md +123 -0
- package/skills/builtin/skill-creator/LICENSE.txt +202 -0
- package/skills/builtin/skill-creator/SKILL.md +513 -0
- package/skills/builtin/skill-creator/agents/analyzer.md +274 -0
- package/skills/builtin/skill-creator/agents/comparator.md +202 -0
- package/skills/builtin/skill-creator/agents/grader.md +223 -0
- package/skills/builtin/skill-creator/assets/eval_review.html +146 -0
- package/skills/builtin/skill-creator/eval-viewer/generate_review.py +471 -0
- package/skills/builtin/skill-creator/eval-viewer/viewer.html +1325 -0
- package/skills/builtin/skill-creator/references/schemas.md +430 -0
- package/skills/builtin/skill-creator/scripts/__init__.py +0 -0
- package/skills/builtin/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/skills/builtin/skill-creator/scripts/generate_report.py +326 -0
- package/skills/builtin/skill-creator/scripts/improve_description.py +247 -0
- package/skills/builtin/skill-creator/scripts/package_skill.py +136 -0
- package/skills/builtin/skill-creator/scripts/quick_validate.py +103 -0
- package/skills/builtin/skill-creator/scripts/run_eval.py +310 -0
- package/skills/builtin/skill-creator/scripts/run_loop.py +328 -0
- package/skills/builtin/skill-creator/scripts/utils.py +47 -0
- package/skills/builtin/web-annotations/SKILL.md +93 -0
- package/dist/apps/chat-ui/assets/index-D2Qxambd.js +0 -151
- package/dist/apps/chat-ui/assets/index-DXx368XK.css +0 -1
- package/dist/env.js +0 -32
- package/dist/plugins/core-tools.js +0 -94
- package/dist/plugins/example.js +0 -67
- package/dist/plugins/remote-agent.js +0 -9
- package/dist/remote/channel.js +0 -176
- package/dist/remote/client.js +0 -92
- package/dist/remote/examples/tui-controller.js +0 -263
- package/dist/remote/protocol.js +0 -55
- package/dist/remote/session-client.js +0 -189
- package/dist/sessions/bindings.js +0 -41
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pibo-docker-system
|
|
3
|
+
description: Use this skill for Pibo Docker Compute System work, isolated implementation, worker worktrees, Chat Web or gateway testing, worker dev auth, browser/CDP validation, resource cleanup, and when coordinating Docker worker use with the github-server-flow strategy.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Pibo Docker Compute System
|
|
7
|
+
|
|
8
|
+
Use Docker compute workers as the isolated execution boundary for Pibo code work, gateway checks, Chat Web validation, browser automation, and end-to-end tests. Keep Docker-specific operating rules here instead of duplicating them in `AGENTS.md`.
|
|
9
|
+
|
|
10
|
+
## Relationship to GitHub flow
|
|
11
|
+
|
|
12
|
+
Use this skill together with `github-server-flow`:
|
|
13
|
+
|
|
14
|
+
- `github-server-flow` owns branch, PR, fork mirror, and release strategy.
|
|
15
|
+
- `pibo-docker-system` owns where implementation and validation run.
|
|
16
|
+
- Normal code work starts from `upstream/dev` on a focused branch, then runs inside a Docker dev worker.
|
|
17
|
+
- Do not use `origin/dev` as a preview or staging branch just to test work. Push focused branches to `origin` and open PRs to `upstream/dev`.
|
|
18
|
+
- Documentation-only edits do not require a Docker worker unless they are coupled to code, build, gateway, or browser validation.
|
|
19
|
+
|
|
20
|
+
### Worker branch pattern
|
|
21
|
+
|
|
22
|
+
`pibo compute dev spawn --worktree <name>` creates or attaches a Git worktree and uses `<name>` as the local branch name. Because container names and worktree names should be simple, prefer a slash-free local worker branch and push it to a slash-based PR branch when ready.
|
|
23
|
+
|
|
24
|
+
Recommended pattern:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
cd /root/code/pibo
|
|
28
|
+
git fetch origin --prune
|
|
29
|
+
git fetch upstream --prune
|
|
30
|
+
|
|
31
|
+
# Use a slash-free local branch/worktree name created from upstream/dev.
|
|
32
|
+
git branch <short-topic> upstream/dev
|
|
33
|
+
pibo compute dev spawn --worktree <short-topic>
|
|
34
|
+
|
|
35
|
+
# Work in the returned worktree, then push as a focused PR branch.
|
|
36
|
+
cd /root/code/pibo/.worktrees/<short-topic>
|
|
37
|
+
git push -u origin HEAD:feature/<short-topic>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
If the local branch already exists and points at the intended base, `pibo compute dev spawn --worktree <short-topic>` attaches a worktree for it. If it does not exist, the compute CLI creates it from the current checkout, so pre-create the branch from `upstream/dev` when strict upstream-first history matters.
|
|
41
|
+
|
|
42
|
+
## Commands
|
|
43
|
+
|
|
44
|
+
Discover progressively with the CLI first:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
pibo compute --help
|
|
48
|
+
pibo compute dev --help
|
|
49
|
+
pibo compute dev spawn --help
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Common commands:
|
|
53
|
+
|
|
54
|
+
- `pibo compute spawn [--name <name>]` — create a short-lived worker container. It is useful for isolated checks but does not create the development worktree flow.
|
|
55
|
+
- `pibo compute dev spawn --worktree <name>` — create a long-lived dev worker with a Git worktree and deterministic port block.
|
|
56
|
+
- `pibo compute rebuild` — force a fresh Docker image build.
|
|
57
|
+
- `pibo compute list` / `pibo compute list --all` — inspect worker and dev-worker containers.
|
|
58
|
+
- `pibo compute release <id>` — stop and remove the named worker container. This does not delete the Git worktree.
|
|
59
|
+
- `pibo compute reap --dry-run` — preview worker cleanup.
|
|
60
|
+
- `pibo compute reap --apply` — apply selected cleanup. Dev workers are excluded unless the command explicitly includes them.
|
|
61
|
+
- `pibo compute health` / `pibo compute doctor` — read-only resource health checks.
|
|
62
|
+
- `pibo compute diagnostics` / `pibo compute disk` — read-only Docker disk diagnostics.
|
|
63
|
+
|
|
64
|
+
## Development rule
|
|
65
|
+
|
|
66
|
+
Use a Docker dev worker for Pibo code and feature implementation whenever the compute system is available, especially for:
|
|
67
|
+
|
|
68
|
+
- gateway changes;
|
|
69
|
+
- Chat Web changes;
|
|
70
|
+
- browser automation;
|
|
71
|
+
- auth behavior;
|
|
72
|
+
- runtime/session routing changes;
|
|
73
|
+
- CLI/TUI changes that need realistic user-visible validation;
|
|
74
|
+
- end-to-end checks.
|
|
75
|
+
|
|
76
|
+
Do not edit the host checkout as an experimental workspace for code changes. Do not restart, replace, or run ad hoc host gateways for development unless the user explicitly requests host operations or Docker is unavailable. The host gateway is for observation and production/dev deployment only.
|
|
77
|
+
|
|
78
|
+
## Worker lifecycle
|
|
79
|
+
|
|
80
|
+
1. Start from the GitHub strategy: fetch remotes, create a focused branch from `upstream/dev`, and spawn a dev worker for that branch.
|
|
81
|
+
2. Use the returned worktree for edits.
|
|
82
|
+
3. Use the returned web and CDP ports for app and browser checks.
|
|
83
|
+
4. Run builds/tests inside the worker worktree when the work requires runtime validation.
|
|
84
|
+
5. Release the container with `pibo compute release <id>` when done.
|
|
85
|
+
6. Keep, merge, push, or discard the Git worktree only after review or explicit user approval.
|
|
86
|
+
|
|
87
|
+
Releasing a dev worker removes the container, not the worktree. Worktree deletion is a separate Git cleanup decision.
|
|
88
|
+
|
|
89
|
+
## Gateway and deployment boundaries
|
|
90
|
+
|
|
91
|
+
Host gateways are managed only through the Pibo CLI:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
pibo gateway web status
|
|
95
|
+
pibo gateway web start
|
|
96
|
+
pibo gateway web restart
|
|
97
|
+
pibo gateway dev status
|
|
98
|
+
pibo gateway dev start
|
|
99
|
+
pibo gateway dev restart
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
After Docker validation, use the host dev gateway for host-level testing:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
./scripts/deploy-web-dev.sh
|
|
106
|
+
pibo gateway dev restart
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
The hosted dev Chat URL is host-specific. Set `PIBO_DEV_PUBLIC_URL` or `PIBO_DEV_BASE_URL` in the environment or repo-local `.env.developer-host`; do not hard-code public hostnames in docs, scripts, or skills.
|
|
110
|
+
|
|
111
|
+
Deploy production only after dev testing succeeds and the user approves it:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
./scripts/deploy-web.sh
|
|
115
|
+
pibo gateway web restart
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
If the production gateway restart is blocked because active agent work is running, ask the user before interrupting sessions. Do not bypass the CLI restart guard without explicit confirmation.
|
|
119
|
+
|
|
120
|
+
## Dev auth boundary
|
|
121
|
+
|
|
122
|
+
Dev auth belongs only to Docker workers.
|
|
123
|
+
|
|
124
|
+
- `gateway:web` inside a worker enables dev auth through the Docker entrypoint's internal option.
|
|
125
|
+
- `PIBO_DEV_AUTH` does not enable dev auth for normal host gateways.
|
|
126
|
+
- Never start the host gateway with dev-auth flags or fake-auth infrastructure.
|
|
127
|
+
- The normal host gateway must use Better Auth.
|
|
128
|
+
- Dev-auth web access is loopback-only; if a worker web port is accidentally reached through a public reverse proxy, auth requests are rejected.
|
|
129
|
+
|
|
130
|
+
If auth is needed inside a Docker worker, use the `pibo-debug-auth` skill rather than bypassing auth ad hoc.
|
|
131
|
+
|
|
132
|
+
## Browser and app validation
|
|
133
|
+
|
|
134
|
+
For Chat Web browser debugging while changing Pibo, start from the Docker dev worker when one is available. Use the worker's returned web/CDP ports so browser automation and gateway restarts stay isolated from host gateways.
|
|
135
|
+
|
|
136
|
+
Useful validation evidence includes:
|
|
137
|
+
|
|
138
|
+
- route visited;
|
|
139
|
+
- visible state or DOM assertions;
|
|
140
|
+
- screenshot path;
|
|
141
|
+
- CDP target details;
|
|
142
|
+
- request/response evidence;
|
|
143
|
+
- terminal output for CLI/TUI flows.
|
|
144
|
+
|
|
145
|
+
A gateway healthcheck only proves the service responds. For Web, CLI, TUI, gateway, runtime, auth, or agent-routing work, also verify user-visible behavior when feasible:
|
|
146
|
+
|
|
147
|
+
- Use browser/CDP or browser-use for Web UI flows.
|
|
148
|
+
- Use a pseudo-TTY or interactive shell for Ink/TUI flows.
|
|
149
|
+
- Use the real command, API, router, or persistence path when the default path is locally testable.
|
|
150
|
+
|
|
151
|
+
Fake/demo checks and healthchecks are useful supporting evidence, but do not treat them as final validation for a user-facing default path unless the real path is unavailable or explicitly out of scope.
|
|
152
|
+
|
|
153
|
+
## Resource hygiene
|
|
154
|
+
|
|
155
|
+
- Workers are intended to be bounded and recyclable.
|
|
156
|
+
- Prefer `pibo compute release <id>` when you finish with a worker.
|
|
157
|
+
- Use `pibo compute list --all` to inspect running, stopped, dirty, and OOM-killed workers.
|
|
158
|
+
- Use `pibo compute reap --dry-run` before destructive cleanup.
|
|
159
|
+
- Use `pibo compute health` and `pibo compute diagnostics --json` for read-only resource investigations.
|
|
160
|
+
- Do not delete worktrees just because containers were released. Worktree cleanup must be explicit.
|
|
161
|
+
|
|
162
|
+
## Source docs
|
|
163
|
+
|
|
164
|
+
For exact product requirements and implementation details, read the canonical docs on demand:
|
|
165
|
+
|
|
166
|
+
- `docs/specs/capabilities/docker-compute-workers.md`
|
|
167
|
+
- `docs/specs/capabilities/standalone-docker-runtime.md`
|
|
168
|
+
- `docs/project/compute-browser-resource-operating-model.md`
|
|
169
|
+
- `docs/project/compute-browser-resource-rollout-checklist.md`
|
|
170
|
+
- `src/skills/pibo-debug-auth/SKILL.md`
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pibo-spec-writing
|
|
3
|
+
description: Defines how Pibo specs are written, structured, reviewed, and split into proposals, capability specs, phase specs, designs, and tasks. Use this whenever the user asks to create, review, rewrite, compare, or implement a spec; mentions requirements, acceptance criteria, scope, roadmap, proposal, design plan, tasks, OpenSpec, Spec Kit, GSD, or spec-driven development; or asks where project documentation should live.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Pibo Spec Writing
|
|
7
|
+
|
|
8
|
+
Use this skill when creating or reviewing specs for Pibo. A good Pibo spec is behavior-first, scoped, testable, concise, and traceable to implementation work. Keep implementation details out of the spec unless they are externally visible constraints.
|
|
9
|
+
|
|
10
|
+
## Core principles
|
|
11
|
+
|
|
12
|
+
Write specs so another agent can implement and verify the work without reading the original chat.
|
|
13
|
+
|
|
14
|
+
1. Start with why the change matters.
|
|
15
|
+
2. Define the observable behavior, not the code shape.
|
|
16
|
+
3. Bound the scope with clear in-scope and out-of-scope lists.
|
|
17
|
+
4. Make every requirement testable.
|
|
18
|
+
5. Add scenarios or acceptance criteria for each important behavior.
|
|
19
|
+
6. Track assumptions and open questions instead of hiding them.
|
|
20
|
+
7. Link requirements to phases, tasks, or plans when the work is large.
|
|
21
|
+
8. Use clear prose: active voice, concrete words, short paragraphs, and no puffery.
|
|
22
|
+
9. For user-facing UI, CLI, TUI, gateway, runtime, or agent-routing changes, name the expected verification level instead of assuming unit tests are enough.
|
|
23
|
+
|
|
24
|
+
## Where specs live
|
|
25
|
+
|
|
26
|
+
Follow the project documentation structure:
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
docs/
|
|
30
|
+
project/ Current project docs and canonical documentation
|
|
31
|
+
specs/ Product, technical, and implementation specifications
|
|
32
|
+
plans/ Implementation plans and design plans
|
|
33
|
+
reports/ Investigation, validation, and generated reports
|
|
34
|
+
legacy/ Old documentation kept for reference
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Do not create new root-level `plans/`, `reports/`, or `specs/` directories.
|
|
38
|
+
|
|
39
|
+
Use `docs/specs/` for durable specs. Use `docs/plans/` for implementation plans. Use `docs/reports/` for analyses, validations, and findings.
|
|
40
|
+
|
|
41
|
+
## Choose the right spec shape
|
|
42
|
+
|
|
43
|
+
### Capability spec
|
|
44
|
+
|
|
45
|
+
Use a capability spec for durable system behavior, especially behavior that should remain true after the current change ships.
|
|
46
|
+
|
|
47
|
+
Good path:
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
docs/specs/capabilities/<capability-name>.md
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Use this for auth behavior, session routing, profile behavior, tool registration, gateway contracts, API behavior, UI behavior, or other long-lived contracts.
|
|
54
|
+
|
|
55
|
+
### Change spec
|
|
56
|
+
|
|
57
|
+
Use a change spec when proposing a feature, fix, or migration.
|
|
58
|
+
|
|
59
|
+
Good path:
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
docs/specs/changes/<change-name>/
|
|
63
|
+
proposal.md
|
|
64
|
+
spec.md
|
|
65
|
+
design.md # include when technical choices matter
|
|
66
|
+
tasks.md # include when ready to implement
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Phase spec
|
|
70
|
+
|
|
71
|
+
Use a phase spec for multi-step work that needs a roadmap.
|
|
72
|
+
|
|
73
|
+
Good path:
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
docs/specs/phases/<NN-phase-name>/
|
|
77
|
+
spec.md
|
|
78
|
+
context.md # implementation decisions, references, existing-code notes
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Required structure for most Pibo specs
|
|
82
|
+
|
|
83
|
+
Use this template unless the task clearly needs a smaller artifact.
|
|
84
|
+
|
|
85
|
+
```markdown
|
|
86
|
+
# Spec: [Name]
|
|
87
|
+
|
|
88
|
+
**Status:** Draft | Approved | Implementing | Done
|
|
89
|
+
**Created:** YYYY-MM-DD
|
|
90
|
+
**Requester / Source:** [user, issue, discussion, or change]
|
|
91
|
+
**Related docs:** [links]
|
|
92
|
+
|
|
93
|
+
## Why
|
|
94
|
+
|
|
95
|
+
[Problem, opportunity, or user need. One or two concrete paragraphs.]
|
|
96
|
+
|
|
97
|
+
## Goal
|
|
98
|
+
|
|
99
|
+
[One precise sentence that says what changes from current state to target state.]
|
|
100
|
+
|
|
101
|
+
## Background / Current State
|
|
102
|
+
|
|
103
|
+
[What exists today. What is broken, missing, confusing, slow, unsafe, or expensive.]
|
|
104
|
+
|
|
105
|
+
## Scope
|
|
106
|
+
|
|
107
|
+
### In Scope
|
|
108
|
+
|
|
109
|
+
- [Concrete behavior or deliverable]
|
|
110
|
+
|
|
111
|
+
### Out of Scope
|
|
112
|
+
|
|
113
|
+
- [Excluded item] — [reason]
|
|
114
|
+
|
|
115
|
+
## Requirements
|
|
116
|
+
|
|
117
|
+
### Requirement: [Name]
|
|
118
|
+
|
|
119
|
+
The system MUST/SHALL [observable behavior].
|
|
120
|
+
|
|
121
|
+
#### Current
|
|
122
|
+
|
|
123
|
+
[Current behavior or absence of behavior.]
|
|
124
|
+
|
|
125
|
+
#### Target
|
|
126
|
+
|
|
127
|
+
[Desired behavior.]
|
|
128
|
+
|
|
129
|
+
#### Acceptance
|
|
130
|
+
|
|
131
|
+
[Concrete pass/fail check.]
|
|
132
|
+
|
|
133
|
+
#### Scenario: [Name]
|
|
134
|
+
|
|
135
|
+
- GIVEN [state]
|
|
136
|
+
- WHEN [action/event]
|
|
137
|
+
- THEN [expected outcome]
|
|
138
|
+
|
|
139
|
+
## Edge Cases
|
|
140
|
+
|
|
141
|
+
- [Boundary, failure, permission, concurrency, or empty-state case]
|
|
142
|
+
|
|
143
|
+
## Constraints
|
|
144
|
+
|
|
145
|
+
- **Compatibility:** ...
|
|
146
|
+
- **Security / Privacy:** ...
|
|
147
|
+
- **Performance:** ...
|
|
148
|
+
- **Dependencies:** ...
|
|
149
|
+
|
|
150
|
+
## Success Criteria
|
|
151
|
+
|
|
152
|
+
- [ ] SC-001: [Measurable or directly observable outcome]
|
|
153
|
+
- [ ] SC-002: [Another pass/fail outcome]
|
|
154
|
+
|
|
155
|
+
## Assumptions and Open Questions
|
|
156
|
+
|
|
157
|
+
### Assumptions
|
|
158
|
+
|
|
159
|
+
- [Reasonable default taken to keep progress moving]
|
|
160
|
+
|
|
161
|
+
### Open Questions
|
|
162
|
+
|
|
163
|
+
- [Question that materially affects scope, UX, security, or architecture]
|
|
164
|
+
|
|
165
|
+
## Traceability
|
|
166
|
+
|
|
167
|
+
| Requirement | Scenario / Story | Plan / Task | Status |
|
|
168
|
+
|---|---|---|---|
|
|
169
|
+
| REQ-001 | [Scenario] | [Plan or task] | Pending |
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Minimal spec
|
|
173
|
+
|
|
174
|
+
For small work, use the shortest form that remains testable:
|
|
175
|
+
|
|
176
|
+
```markdown
|
|
177
|
+
# Spec: [Name]
|
|
178
|
+
|
|
179
|
+
## Why
|
|
180
|
+
## Goal
|
|
181
|
+
## Scope
|
|
182
|
+
### In Scope
|
|
183
|
+
### Out of Scope
|
|
184
|
+
## Requirements
|
|
185
|
+
## Acceptance Criteria
|
|
186
|
+
## Assumptions / Open Questions
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Use the full template when the change touches multiple modules, changes public behavior, affects auth/security/data, or will be implemented across multiple sessions.
|
|
190
|
+
|
|
191
|
+
## Requirement rules
|
|
192
|
+
|
|
193
|
+
Write requirements as behavior contracts.
|
|
194
|
+
|
|
195
|
+
Good:
|
|
196
|
+
|
|
197
|
+
```markdown
|
|
198
|
+
### Requirement: Dev gateway status is discoverable
|
|
199
|
+
|
|
200
|
+
The CLI MUST show whether the dev gateway is running, its PID when known, and the command to inspect logs.
|
|
201
|
+
|
|
202
|
+
#### Scenario: Gateway is running
|
|
203
|
+
- GIVEN the dev gateway process is active
|
|
204
|
+
- WHEN an operator runs `pibo gateway dev status`
|
|
205
|
+
- THEN the output includes status, PID, port, and next diagnostic command
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Weak:
|
|
209
|
+
|
|
210
|
+
```markdown
|
|
211
|
+
### Requirement: Improve gateway status
|
|
212
|
+
Make gateway status better and more robust.
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
A requirement is ready when a reviewer can say pass or fail without guessing.
|
|
216
|
+
|
|
217
|
+
## Reuse, parity, and verification clarity
|
|
218
|
+
|
|
219
|
+
When a feature is described as "same as Web", "derived from Web", "reuse the view", "shared UI", "Terminal View", or similar, do not silently reduce that to shared data. State the intended reuse level:
|
|
220
|
+
|
|
221
|
+
- data/state only
|
|
222
|
+
- renderer-neutral view model
|
|
223
|
+
- interaction/controller logic
|
|
224
|
+
- renderer/component logic
|
|
225
|
+
- visual and behavioral parity
|
|
226
|
+
|
|
227
|
+
If visual or behavioral parity is required, add acceptance checks that compare the relevant surfaces with the same fixture or user flow. If parity is intentionally out of scope, say so and describe the user-visible difference.
|
|
228
|
+
|
|
229
|
+
For user-facing UI, CLI, TUI, gateway, runtime, auth, or agent-routing specs, include at least one realistic validation scenario for the default user path when feasible. Fake data, demo mode, mocks, and render snapshots are useful, but they should not be the only acceptance evidence for behavior users will exercise directly unless the real path is unavailable or explicitly out of scope.
|
|
230
|
+
|
|
231
|
+
## Scenario rules
|
|
232
|
+
|
|
233
|
+
Prefer GIVEN / WHEN / THEN for user-visible behavior and system contracts. Use WHEN / THEN only for simple event-response behavior.
|
|
234
|
+
|
|
235
|
+
Cover at least:
|
|
236
|
+
|
|
237
|
+
- primary success path
|
|
238
|
+
- empty or missing state
|
|
239
|
+
- invalid input or permission failure
|
|
240
|
+
- migration or compatibility path when relevant
|
|
241
|
+
|
|
242
|
+
## Proposal structure
|
|
243
|
+
|
|
244
|
+
Use `proposal.md` to explain intent before deep design.
|
|
245
|
+
|
|
246
|
+
```markdown
|
|
247
|
+
# Proposal: [Change]
|
|
248
|
+
|
|
249
|
+
## Why
|
|
250
|
+
|
|
251
|
+
## What Changes
|
|
252
|
+
|
|
253
|
+
## Capabilities
|
|
254
|
+
|
|
255
|
+
### New Capabilities
|
|
256
|
+
- `<kebab-name>`: [brief behavior area]
|
|
257
|
+
|
|
258
|
+
### Modified Capabilities
|
|
259
|
+
- `<existing-name>`: [changed behavior]
|
|
260
|
+
|
|
261
|
+
## Impact
|
|
262
|
+
|
|
263
|
+
- **Code:** ...
|
|
264
|
+
- **APIs / CLI:** ...
|
|
265
|
+
- **Data:** ...
|
|
266
|
+
- **Auth / Security:** ...
|
|
267
|
+
- **Docs:** ...
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## Design structure
|
|
271
|
+
|
|
272
|
+
Use `design.md` when technical choices matter. Keep requirements in the spec; put implementation choices here.
|
|
273
|
+
|
|
274
|
+
```markdown
|
|
275
|
+
# Design: [Change]
|
|
276
|
+
|
|
277
|
+
## Context
|
|
278
|
+
## Goals / Non-Goals
|
|
279
|
+
## Decisions
|
|
280
|
+
### Decision: [Choice]
|
|
281
|
+
- **Choice:** ...
|
|
282
|
+
- **Rationale:** ...
|
|
283
|
+
- **Alternatives considered:** ...
|
|
284
|
+
|
|
285
|
+
## Risks / Trade-offs
|
|
286
|
+
## Migration / Rollback
|
|
287
|
+
## Open Questions
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
## Tasks structure
|
|
291
|
+
|
|
292
|
+
Use `tasks.md` only after the spec and design are stable enough to act on.
|
|
293
|
+
|
|
294
|
+
```markdown
|
|
295
|
+
# Tasks: [Change]
|
|
296
|
+
|
|
297
|
+
## 1. Setup / Foundation
|
|
298
|
+
- [ ] 1.1 [Concrete task with file path]
|
|
299
|
+
|
|
300
|
+
## 2. Requirement: [Name]
|
|
301
|
+
- [ ] 2.1 [Test or validation task]
|
|
302
|
+
- [ ] 2.2 [Implementation task]
|
|
303
|
+
|
|
304
|
+
## 3. Validation
|
|
305
|
+
- [ ] 3.1 Run [command]
|
|
306
|
+
- [ ] 3.2 Verify [observable behavior]
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
Tasks should be small enough for one agent session. Include file paths and validation commands when known.
|
|
310
|
+
|
|
311
|
+
## Review checklist
|
|
312
|
+
|
|
313
|
+
Before treating a spec as ready, check:
|
|
314
|
+
|
|
315
|
+
- [ ] The `Why` names a real problem or opportunity.
|
|
316
|
+
- [ ] The `Goal` is specific and measurable.
|
|
317
|
+
- [ ] Scope has both in-scope and out-of-scope items.
|
|
318
|
+
- [ ] Requirements use MUST or SHALL for mandatory behavior.
|
|
319
|
+
- [ ] Each requirement has acceptance checks or scenarios.
|
|
320
|
+
- [ ] Edge cases include failure and empty-state behavior where relevant.
|
|
321
|
+
- [ ] Assumptions are visible.
|
|
322
|
+
- [ ] Open questions are few and material.
|
|
323
|
+
- [ ] Implementation details live in `design.md` or `tasks.md`, not in behavioral requirements.
|
|
324
|
+
- [ ] The spec is concise, concrete, and free of promotional language.
|
|
325
|
+
|
|
326
|
+
## Writing style
|
|
327
|
+
|
|
328
|
+
Write for humans and agents. Prefer short sentences. Use active voice. Omit needless words. Avoid vague adjectives such as robust, seamless, powerful, and cutting-edge. Replace them with concrete behavior.
|
|
329
|
+
|
|
330
|
+
Use tables only when they make comparison or traceability easier. Do not decorate specs with excessive emoji or bold text.
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prd
|
|
3
|
+
description: 'Generate high-quality Product Requirements Documents (PRDs) for software systems and AI-powered features. Includes executive summaries, user stories, technical specifications, and risk analysis.'
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Product Requirements Document (PRD)
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
Design comprehensive, production-grade Product Requirements Documents (PRDs) that bridge the gap between business vision and technical execution. This skill works for modern software systems, ensuring that requirements are clearly defined.
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
Use this skill when:
|
|
16
|
+
|
|
17
|
+
- Starting a new product or feature development cycle
|
|
18
|
+
- Translating a vague idea into a concrete technical specification
|
|
19
|
+
- Defining requirements for AI-powered features
|
|
20
|
+
- Stakeholders need a unified "source of truth" for project scope
|
|
21
|
+
- User asks to "write a PRD", "document requirements", or "plan a feature"
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Operational Workflow
|
|
26
|
+
|
|
27
|
+
### Phase 1: Discovery (The Interview)
|
|
28
|
+
|
|
29
|
+
Before writing a single line of the PRD, you **MUST** interrogate the user to fill knowledge gaps. Do not assume context.
|
|
30
|
+
|
|
31
|
+
**Ask about:**
|
|
32
|
+
|
|
33
|
+
- **The Core Problem**: Why are we building this now?
|
|
34
|
+
- **Success Metrics**: How do we know it worked?
|
|
35
|
+
- **Constraints**: Budget, tech stack, or deadline?
|
|
36
|
+
|
|
37
|
+
### Phase 2: Analysis & Scoping
|
|
38
|
+
|
|
39
|
+
Synthesize the user's input. Identify dependencies and hidden complexities.
|
|
40
|
+
|
|
41
|
+
- Map out the **User Flow**.
|
|
42
|
+
- Define **Non-Goals** to protect the timeline.
|
|
43
|
+
|
|
44
|
+
### Phase 3: Technical Drafting
|
|
45
|
+
|
|
46
|
+
Generate the document using the **Strict PRD Schema** below.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## PRD Quality Standards
|
|
51
|
+
|
|
52
|
+
### Requirements Quality
|
|
53
|
+
|
|
54
|
+
Use concrete, measurable criteria. Avoid "fast", "easy", or "intuitive".
|
|
55
|
+
|
|
56
|
+
```diff
|
|
57
|
+
# Vague (BAD)
|
|
58
|
+
- The search should be fast and return relevant results.
|
|
59
|
+
- The UI must look modern and be easy to use.
|
|
60
|
+
|
|
61
|
+
# Concrete (GOOD)
|
|
62
|
+
+ The search must return results within 200ms for a 10k record dataset.
|
|
63
|
+
+ The search algorithm must achieve >= 85% Precision@10 in benchmark evals.
|
|
64
|
+
+ The UI must follow the 'Vercel/Next.js' design system and achieve 100% Lighthouse Accessibility score.
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Strict PRD Schema
|
|
70
|
+
|
|
71
|
+
You **MUST** follow this exact structure for the output:
|
|
72
|
+
|
|
73
|
+
### 1. Executive Summary
|
|
74
|
+
|
|
75
|
+
- **Problem Statement**: 1-2 sentences on the pain point.
|
|
76
|
+
- **Proposed Solution**: 1-2 sentences on the fix.
|
|
77
|
+
- **Success Criteria**: 3-5 measurable KPIs.
|
|
78
|
+
|
|
79
|
+
### 2. User Experience & Functionality
|
|
80
|
+
|
|
81
|
+
- **User Personas**: Who is this for?
|
|
82
|
+
- **User Stories**: `As a [user], I want to [action] so that [benefit].`
|
|
83
|
+
- **Acceptance Criteria**: Bulleted list of "Done" definitions for each story.
|
|
84
|
+
- **Non-Goals**: What are we NOT building?
|
|
85
|
+
|
|
86
|
+
### 3. AI System Requirements (If Applicable)
|
|
87
|
+
|
|
88
|
+
- **Tool Requirements**: What tools and APIs are needed?
|
|
89
|
+
- **Evaluation Strategy**: How to measure output quality and accuracy.
|
|
90
|
+
|
|
91
|
+
### 4. Technical Specifications
|
|
92
|
+
|
|
93
|
+
- **Architecture Overview**: Data flow and component interaction.
|
|
94
|
+
- **Integration Points**: APIs, DBs, and Auth.
|
|
95
|
+
- **Security & Privacy**: Data handling and compliance.
|
|
96
|
+
|
|
97
|
+
### 5. Risks & Roadmap
|
|
98
|
+
|
|
99
|
+
- **Phased Rollout**: MVP -> v1.1 -> v2.0.
|
|
100
|
+
- **Technical Risks**: Latency, cost, or dependency failures.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Implementation Guidelines
|
|
105
|
+
|
|
106
|
+
### DO (Always)
|
|
107
|
+
|
|
108
|
+
- **Define Testing**: For AI systems, specify how to test and validate output quality.
|
|
109
|
+
- **Iterate**: Present a draft and ask for feedback on specific sections.
|
|
110
|
+
|
|
111
|
+
### DON'T (Avoid)
|
|
112
|
+
|
|
113
|
+
- **Skip Discovery**: Never write a PRD without asking at least 2 clarifying questions first.
|
|
114
|
+
- **Hallucinate Constraints**: If the user didn't specify a tech stack, ask or label it as `TBD`.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Example: Intelligent Search System
|
|
119
|
+
|
|
120
|
+
### 1. Executive Summary
|
|
121
|
+
|
|
122
|
+
**Problem**: Users struggle to find specific documentation snippets in massive repositories.
|
|
123
|
+
**Solution**: An intelligent search system that provides direct answers with source citations.
|
|
124
|
+
**Success**:
|
|
125
|
+
|
|
126
|
+
- Reduce search time by 50%.
|
|
127
|
+
- Citation accuracy >= 95%.
|
|
128
|
+
|
|
129
|
+
### 2. User Stories
|
|
130
|
+
|
|
131
|
+
- **Story**: As a developer, I want to ask natural language questions so I don't have to guess keywords.
|
|
132
|
+
- **AC**:
|
|
133
|
+
- Supports multi-turn clarification.
|
|
134
|
+
- Returns code blocks with "Copy" button.
|
|
135
|
+
|
|
136
|
+
### 3. AI System Architecture
|
|
137
|
+
|
|
138
|
+
- **Tools Required**: `codesearch`, `grep`, `webfetch`.
|
|
139
|
+
|
|
140
|
+
### 4. Evaluation
|
|
141
|
+
|
|
142
|
+
- **Benchmark**: Test with 50 common developer questions.
|
|
143
|
+
- **Pass Rate**: 90% must match expected citations.
|