prjct-cli 0.35.2 → 0.35.4
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/core/commands/analysis.ts +58 -32
- package/core/commands/command-data.ts +11 -50
- package/core/commands/commands.ts +18 -21
- package/core/commands/context.ts +238 -0
- package/core/commands/register.ts +7 -5
- package/core/commands/setup.ts +1 -17
- package/core/commands/workflow.ts +3 -2
- package/core/index.ts +2 -4
- package/core/services/index.ts +2 -0
- package/core/services/sync-service.ts +1080 -0
- package/core/types/commands.ts +0 -12
- package/core/types/index.ts +0 -1
- package/dist/bin/prjct.mjs +1219 -310
- package/package.json +2 -8
- package/templates/_bases/tracker-base.md +309 -0
- package/templates/agentic/agent-routing.md +22 -88
- package/templates/agentic/agents/uxui.md +42 -197
- package/templates/agentic/context-filtering.md +14 -56
- package/templates/agentic/orchestrator.md +31 -365
- package/templates/agentic/skill-integration.md +37 -289
- package/templates/agentic/subagent-generation.md +31 -104
- package/templates/agentic/task-fragmentation.md +39 -273
- package/templates/agents/AGENTS.md +32 -188
- package/templates/commands/bug.md +22 -520
- package/templates/commands/dash.md +26 -161
- package/templates/commands/done.md +19 -250
- package/templates/commands/enrich.md +21 -732
- package/templates/commands/github.md +9 -0
- package/templates/commands/history.md +296 -83
- package/templates/commands/idea.md +18 -160
- package/templates/commands/init.md +20 -209
- package/templates/commands/jira.md +9 -0
- package/templates/commands/linear.md +9 -0
- package/templates/commands/merge.md +21 -185
- package/templates/commands/monday.md +9 -0
- package/templates/commands/next.md +21 -103
- package/templates/commands/p.md +198 -63
- package/templates/commands/pause.md +21 -272
- package/templates/commands/resume.md +19 -348
- package/templates/commands/setup.md +0 -1
- package/templates/commands/ship.md +30 -627
- package/templates/commands/sync.md +11 -1345
- package/templates/commands/task.md +17 -439
- package/templates/commands/test.md +30 -259
- package/CLAUDE.md +0 -211
- package/packages/shared/node_modules/@types/bun/LICENSE +0 -21
- package/packages/shared/node_modules/@types/bun/README.md +0 -20
- package/packages/shared/node_modules/@types/bun/index.d.ts +0 -1
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/CLAUDE.md +0 -105
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/README.md +0 -33
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/bun.d.ts +0 -7032
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/bun.ns.d.ts +0 -5
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/bundle.d.ts +0 -74
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/deprecated.d.ts +0 -184
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/devserver.d.ts +0 -187
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/README.md +0 -28
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/bundler/bytecode.mdx +0 -465
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/bundler/css.mdx +0 -1024
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/bundler/esbuild.mdx +0 -298
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/bundler/executables.mdx +0 -1277
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/bundler/fullstack.mdx +0 -1086
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/bundler/hot-reloading.mdx +0 -229
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/bundler/html-static.mdx +0 -488
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/bundler/index.mdx +0 -1604
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/bundler/loaders.mdx +0 -451
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/bundler/macros.mdx +0 -328
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/bundler/minifier.mdx +0 -1286
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/bundler/plugins.mdx +0 -425
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/feedback.mdx +0 -75
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/arraybuffer-to-array.mdx +0 -29
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/arraybuffer-to-blob.mdx +0 -26
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/arraybuffer-to-buffer.mdx +0 -27
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/arraybuffer-to-string.mdx +0 -17
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/arraybuffer-to-typedarray.mdx +0 -41
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/blob-to-arraybuffer.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/blob-to-dataview.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/blob-to-stream.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/blob-to-string.mdx +0 -17
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/blob-to-typedarray.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/buffer-to-arraybuffer.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/buffer-to-blob.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/buffer-to-readablestream.mdx +0 -43
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/buffer-to-string.mdx +0 -27
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/buffer-to-typedarray.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/dataview-to-string.mdx +0 -17
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/typedarray-to-arraybuffer.mdx +0 -27
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/typedarray-to-blob.mdx +0 -18
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/typedarray-to-buffer.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/typedarray-to-dataview.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/typedarray-to-readablestream.mdx +0 -43
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/binary/typedarray-to-string.mdx +0 -18
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/deployment/aws-lambda.mdx +0 -204
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/deployment/digital-ocean.mdx +0 -161
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/deployment/google-cloud-run.mdx +0 -194
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/deployment/railway.mdx +0 -145
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/deployment/render.mdx +0 -82
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/deployment/vercel.mdx +0 -97
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/astro.mdx +0 -82
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/discordjs.mdx +0 -80
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/docker.mdx +0 -151
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/drizzle.mdx +0 -195
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/elysia.mdx +0 -31
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/express.mdx +0 -43
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/gel.mdx +0 -261
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/hono.mdx +0 -47
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/mongoose.mdx +0 -92
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/neon-drizzle.mdx +0 -234
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/neon-serverless-postgres.mdx +0 -60
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/nextjs.mdx +0 -103
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/nuxt.mdx +0 -96
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/pm2.mdx +0 -55
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/prisma-postgres.mdx +0 -169
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/prisma.mdx +0 -164
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/qwik.mdx +0 -114
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/react.mdx +0 -52
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/remix.mdx +0 -97
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/sentry.mdx +0 -54
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/solidstart.mdx +0 -62
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/ssr-react.mdx +0 -49
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/stric.mdx +0 -54
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/sveltekit.mdx +0 -138
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/systemd.mdx +0 -114
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/tanstack-start.mdx +0 -791
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/upstash.mdx +0 -87
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/ecosystem/vite.mdx +0 -77
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/html-rewriter/extract-links.mdx +0 -71
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/html-rewriter/extract-social-meta.mdx +0 -97
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/http/cluster.mdx +0 -69
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/http/fetch-unix.mdx +0 -35
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/http/fetch.mdx +0 -26
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/http/file-uploads.mdx +0 -97
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/http/hot.mdx +0 -28
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/http/proxy.mdx +0 -50
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/http/server.mdx +0 -48
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/http/simple.mdx +0 -20
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/http/stream-file.mdx +0 -50
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/http/stream-iterator.mdx +0 -49
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/http/stream-node-streams-in-bun.mdx +0 -22
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/http/tls.mdx +0 -32
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/index.mdx +0 -10
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/add-dev.mdx +0 -28
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/add-git.mdx +0 -40
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/add-optional.mdx +0 -27
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/add-peer.mdx +0 -45
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/add-tarball.mdx +0 -35
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/add.mdx +0 -44
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/azure-artifacts.mdx +0 -76
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/cicd.mdx +0 -43
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/custom-registry.mdx +0 -32
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/from-npm-install-to-bun-install.mdx +0 -230
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/git-diff-bun-lockfile.mdx +0 -48
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/jfrog-artifactory.mdx +0 -28
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/npm-alias.mdx +0 -25
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/registry-scope.mdx +0 -40
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/trusted.mdx +0 -52
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/workspaces.mdx +0 -70
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/install/yarnlock.mdx +0 -51
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/process/argv.mdx +0 -66
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/process/ctrl-c.mdx +0 -18
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/process/ipc.mdx +0 -69
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/process/nanoseconds.mdx +0 -15
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/process/os-signals.mdx +0 -31
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/process/spawn-stderr.mdx +0 -34
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/process/spawn-stdout.mdx +0 -28
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/process/spawn.mdx +0 -43
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/process/stdin.mdx +0 -62
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/read-file/arraybuffer.mdx +0 -30
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/read-file/buffer.mdx +0 -21
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/read-file/exists.mdx +0 -18
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/read-file/json.mdx +0 -19
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/read-file/mime.mdx +0 -22
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/read-file/stream.mdx +0 -28
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/read-file/string.mdx +0 -24
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/read-file/uint8array.mdx +0 -23
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/read-file/watch.mdx +0 -66
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/build-time-constants.mdx +0 -295
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/cicd.mdx +0 -45
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/codesign-macos-executable.mdx +0 -61
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/define-constant.mdx +0 -149
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/delete-directory.mdx +0 -39
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/delete-file.mdx +0 -21
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/heap-snapshot.mdx +0 -28
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/import-html.mdx +0 -15
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/import-json.mdx +0 -46
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/import-toml.mdx +0 -32
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/import-yaml.mdx +0 -104
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/read-env.mdx +0 -37
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/set-env.mdx +0 -51
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/shell.mdx +0 -42
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/timezone.mdx +0 -38
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/tsconfig-paths.mdx +0 -31
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/typescript.mdx +0 -51
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/vscode-debugger.mdx +0 -47
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/runtime/web-debugger.mdx +0 -103
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/streams/node-readable-to-arraybuffer.mdx +0 -13
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/streams/node-readable-to-blob.mdx +0 -13
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/streams/node-readable-to-json.mdx +0 -14
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/streams/node-readable-to-string.mdx +0 -14
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/streams/node-readable-to-uint8array.mdx +0 -13
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/streams/to-array.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/streams/to-arraybuffer.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/streams/to-blob.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/streams/to-buffer.mdx +0 -17
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/streams/to-json.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/streams/to-string.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/streams/to-typedarray.mdx +0 -24
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/bail.mdx +0 -24
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/concurrent-test-glob.mdx +0 -146
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/coverage-threshold.mdx +0 -67
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/coverage.mdx +0 -49
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/happy-dom.mdx +0 -73
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/migrate-from-jest.mdx +0 -125
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/mock-clock.mdx +0 -50
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/mock-functions.mdx +0 -70
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/rerun-each.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/run-tests.mdx +0 -116
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/skip-tests.mdx +0 -43
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/snapshot.mdx +0 -102
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/spy-on.mdx +0 -49
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/svelte-test.mdx +0 -113
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/testing-library.mdx +0 -93
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/timeout.mdx +0 -17
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/todo-tests.mdx +0 -74
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/update-snapshots.mdx +0 -49
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/test/watch-mode.mdx +0 -24
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/base64.mdx +0 -17
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/deep-equals.mdx +0 -41
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/deflate.mdx +0 -20
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/detect-bun.mdx +0 -28
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/entrypoint.mdx +0 -19
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/escape-html.mdx +0 -24
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/file-url-to-path.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/gzip.mdx +0 -20
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/hash-a-password.mdx +0 -56
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/import-meta-dir.mdx +0 -15
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/import-meta-file.mdx +0 -15
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/import-meta-path.mdx +0 -15
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/javascript-uuid.mdx +0 -25
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/main.mdx +0 -43
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/path-to-file-url.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/sleep.mdx +0 -24
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/upgrade.mdx +0 -93
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/version.mdx +0 -23
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/util/which-path-to-executable-bin.mdx +0 -17
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/websocket/compression.mdx +0 -33
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/websocket/context.mdx +0 -79
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/websocket/pubsub.mdx +0 -43
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/websocket/simple.mdx +0 -38
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/write-file/append.mdx +0 -54
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/write-file/basic.mdx +0 -46
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/write-file/blob.mdx +0 -30
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/write-file/cat.mdx +0 -19
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/write-file/file-cp.mdx +0 -18
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/write-file/filesink.mdx +0 -54
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/write-file/response.mdx +0 -19
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/write-file/stdout.mdx +0 -23
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/write-file/stream.mdx +0 -19
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/guides/write-file/unlink.mdx +0 -18
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/index.mdx +0 -133
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/installation.mdx +0 -365
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/bunx.mdx +0 -91
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/catalogs.mdx +0 -292
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/cli/add.mdx +0 -179
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/cli/audit.mdx +0 -60
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/cli/info.mdx +0 -70
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/cli/install.mdx +0 -606
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/cli/link.mdx +0 -61
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/cli/outdated.mdx +0 -197
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/cli/patch.mdx +0 -69
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/cli/pm.mdx +0 -323
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/cli/publish.mdx +0 -131
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/cli/remove.mdx +0 -16
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/cli/update.mdx +0 -140
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/cli/why.mdx +0 -84
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/filter.mdx +0 -102
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/global-cache.mdx +0 -72
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/isolated-installs.mdx +0 -220
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/lifecycle.mdx +0 -64
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/lockfile.mdx +0 -64
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/npmrc.mdx +0 -111
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/overrides.mdx +0 -83
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/scopes-registries.mdx +0 -35
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/security-scanner-api.mdx +0 -95
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/pm/workspaces.mdx +0 -115
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/project/benchmarking.mdx +0 -241
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/project/bindgen.mdx +0 -223
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/project/building-windows.mdx +0 -133
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/project/contributing.mdx +0 -388
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/project/feedback.mdx +0 -20
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/project/license.mdx +0 -78
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/project/roadmap.mdx +0 -8
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/quickstart.mdx +0 -251
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/auto-install.mdx +0 -97
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/binary-data.mdx +0 -846
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/bun-apis.mdx +0 -59
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/bunfig.mdx +0 -723
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/c-compiler.mdx +0 -204
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/child-process.mdx +0 -659
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/color.mdx +0 -267
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/console.mdx +0 -67
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/cookies.mdx +0 -454
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/debugger.mdx +0 -335
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/environment-variables.mdx +0 -231
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/ffi.mdx +0 -565
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/file-io.mdx +0 -306
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/file-system-router.mdx +0 -118
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/file-types.mdx +0 -435
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/glob.mdx +0 -181
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/globals.mdx +0 -72
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/hashing.mdx +0 -315
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/html-rewriter.mdx +0 -333
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/http/cookies.mdx +0 -79
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/http/error-handling.mdx +0 -40
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/http/metrics.mdx +0 -36
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/http/routing.mdx +0 -289
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/http/server.mdx +0 -645
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/http/tls.mdx +0 -101
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/http/websockets.mdx +0 -414
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/index.mdx +0 -223
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/jsx.mdx +0 -115
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/module-resolution.mdx +0 -374
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/networking/dns.mdx +0 -111
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/networking/fetch.mdx +0 -484
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/networking/tcp.mdx +0 -239
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/networking/udp.mdx +0 -129
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/node-api.mdx +0 -19
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/nodejs-compat.mdx +0 -468
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/plugins.mdx +0 -419
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/redis.mdx +0 -583
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/s3.mdx +0 -863
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/secrets.mdx +0 -340
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/semver.mdx +0 -57
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/shell.mdx +0 -637
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/sql.mdx +0 -1404
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/sqlite.mdx +0 -721
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/streams.mdx +0 -232
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/templating/create.mdx +0 -269
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/templating/init.mdx +0 -58
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/transpiler.mdx +0 -288
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/typescript.mdx +0 -58
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/utils.mdx +0 -922
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/watch-mode.mdx +0 -161
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/web-apis.mdx +0 -29
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/workers.mdx +0 -314
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/runtime/yaml.mdx +0 -469
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/snippets/cli/add.mdx +0 -166
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/snippets/cli/build.mdx +0 -196
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/snippets/cli/bunx.mdx +0 -49
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/snippets/cli/feedback.mdx +0 -17
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/snippets/cli/init.mdx +0 -84
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/snippets/cli/install.mdx +0 -173
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/snippets/cli/link.mdx +0 -163
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/snippets/cli/outdated.mdx +0 -140
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/snippets/cli/patch.mdx +0 -171
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/snippets/cli/publish.mdx +0 -198
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/snippets/cli/remove.mdx +0 -146
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/snippets/cli/run.mdx +0 -293
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/snippets/cli/test.mdx +0 -100
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/snippets/cli/update.mdx +0 -144
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/test/code-coverage.mdx +0 -409
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/test/configuration.mdx +0 -514
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/test/dates-times.mdx +0 -129
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/test/discovery.mdx +0 -90
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/test/dom.mdx +0 -226
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/test/index.mdx +0 -380
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/test/lifecycle.mdx +0 -366
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/test/mocks.mdx +0 -637
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/test/reporters.mdx +0 -126
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/test/runtime-behavior.mdx +0 -342
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/test/snapshots.mdx +0 -434
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/test/writing-tests.mdx +0 -672
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/docs/typescript.mdx +0 -54
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/extensions.d.ts +0 -35
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/fetch.d.ts +0 -79
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/ffi.d.ts +0 -1154
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/globals.d.ts +0 -2067
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/html-rewriter.d.ts +0 -186
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/index.d.ts +0 -32
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/jsc.d.ts +0 -233
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/overrides.d.ts +0 -376
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/package.json +0 -37
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/redis.d.ts +0 -3352
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/s3.d.ts +0 -1299
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/security.d.ts +0 -101
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/serve.d.ts +0 -1296
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/shell.d.ts +0 -380
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/sql.d.ts +0 -887
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/sqlite.d.ts +0 -1321
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/test-globals.d.ts +0 -22
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/test.d.ts +0 -2391
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/vendor/expect-type/branding.d.ts +0 -283
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/vendor/expect-type/index.d.ts +0 -1207
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/vendor/expect-type/messages.d.ts +0 -395
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/vendor/expect-type/overloads.d.ts +0 -669
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/vendor/expect-type/utils.d.ts +0 -431
- package/packages/shared/node_modules/@types/bun/node_modules/bun-types/wasm.d.ts +0 -193
- package/packages/shared/node_modules/@types/bun/package.json +0 -53
- package/packages/shared/package.json +0 -29
- package/packages/shared/src/index.ts +0 -10
- package/packages/shared/src/schemas.ts +0 -124
- package/packages/shared/src/types.ts +0 -187
- package/packages/shared/src/unified.ts +0 -174
- package/packages/shared/src/utils.ts +0 -148
- package/packages/shared/tsconfig.json +0 -18
- package/templates/commands/redo.md +0 -144
- package/templates/commands/undo.md +0 -154
|
@@ -1,1357 +1,23 @@
|
|
|
1
1
|
---
|
|
2
|
-
allowed-tools: [
|
|
3
|
-
description: 'Deep sync - analyze git, update ALL project data'
|
|
4
|
-
timestamp-rule: 'GetTimestamp() for all timestamps'
|
|
5
|
-
architecture: 'Write-Through (JSON → MD → Events)'
|
|
6
|
-
storage-layer: true
|
|
7
|
-
source-of-truth: 'storage/*.json'
|
|
8
|
-
claude-context: 'context/*.md'
|
|
9
|
-
backend-sync: 'sync/pending.json'
|
|
2
|
+
allowed-tools: [Bash]
|
|
10
3
|
---
|
|
11
4
|
|
|
12
|
-
#
|
|
5
|
+
# p. sync
|
|
13
6
|
|
|
14
|
-
**CRITICAL**: This is a DEEP analysis. Sync EVERYTHING with the real state of the repository.
|
|
15
|
-
|
|
16
|
-
## Architecture: Write-Through Pattern
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
Git Analysis → Storage (JSON) → Context (MD) → Project Metadata
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
**Source of Truth**: `storage/*.json` (state, queue, ideas, shipped)
|
|
23
|
-
**Claude Context**: `context/*.md` (now, next, ideas, shipped, CLAUDE.md)
|
|
24
|
-
**Project Metadata**: `project.json`
|
|
25
|
-
|
|
26
|
-
## What Gets Analyzed & Updated
|
|
27
|
-
|
|
28
|
-
### Git Analysis (Deep)
|
|
29
|
-
- `git status` - Uncommitted changes, staged files
|
|
30
|
-
- `git log` - Recent commits to detect completed tasks
|
|
31
|
-
- `git diff` - What's changed since last commit
|
|
32
|
-
- `git branch` - Current branch, feature branches
|
|
33
|
-
|
|
34
|
-
### Storage Files (Source of Truth)
|
|
35
|
-
- `storage/state.json` - Current task state
|
|
36
|
-
- `storage/queue.json` - Task queue
|
|
37
|
-
- `storage/ideas.json` - Ideas list
|
|
38
|
-
- `storage/shipped.json` - Shipped features
|
|
39
|
-
|
|
40
|
-
### Context Files (Generated for Claude)
|
|
41
|
-
- `context/now.md` - Current task (from state.json)
|
|
42
|
-
- `context/next.md` - Task queue (from queue.json)
|
|
43
|
-
- `context/ideas.md` - Ideas (from ideas.json)
|
|
44
|
-
- `context/shipped.md` - Shipped (from shipped.json)
|
|
45
|
-
- `context/CLAUDE.md` - Full project context
|
|
46
|
-
|
|
47
|
-
### Project Metadata
|
|
48
|
-
- `project.json` - ALL fields with real data
|
|
49
|
-
|
|
50
|
-
## Context Variables
|
|
51
|
-
- `{projectId}`: From `.prjct/prjct.config.json`
|
|
52
|
-
- `{globalPath}`: `~/.prjct-cli/projects/{projectId}`
|
|
53
|
-
- `{cwd}`: Current working directory (repo path)
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## Step 0: Migration Check (Legacy Projects)
|
|
58
|
-
|
|
59
|
-
CHECK: Does `.prjct/prjct.config.json` exist?
|
|
60
|
-
|
|
61
|
-
IF file exists:
|
|
62
|
-
READ: `.prjct/prjct.config.json`
|
|
63
|
-
CHECK: Does `projectId` exist and is it a valid UUID?
|
|
64
|
-
|
|
65
|
-
IF projectId is missing OR not a UUID:
|
|
66
|
-
MIGRATE to UUID:
|
|
67
|
-
1. Generate new UUID: `{newProjectId}`
|
|
68
|
-
2. Create global structure: `~/.prjct-cli/projects/{newProjectId}/`
|
|
69
|
-
3. Create subdirectories: storage/, context/, agents/, memory/, analysis/
|
|
70
|
-
4. IF legacy data exists in `.prjct/`:
|
|
71
|
-
- Migrate core/now.md → storage/state.json
|
|
72
|
-
- Migrate planning/ideas.md → storage/ideas.json
|
|
73
|
-
- Migrate progress/shipped.md → storage/shipped.json
|
|
74
|
-
5. Update `.prjct/prjct.config.json` with new `projectId`
|
|
75
|
-
OUTPUT: "🔄 Migrated to UUID format: {newProjectId}"
|
|
76
|
-
|
|
77
|
-
IF file not found:
|
|
78
|
-
CHECK: Does `.prjct/` directory exist? (legacy project without config)
|
|
79
|
-
|
|
80
|
-
IF `.prjct/` exists:
|
|
81
|
-
MIGRATE:
|
|
82
|
-
1. Generate new UUID: `{newProjectId}`
|
|
83
|
-
2. Create `.prjct/prjct.config.json` with `projectId`
|
|
84
|
-
3. Create global structure
|
|
85
|
-
4. Migrate legacy data
|
|
86
|
-
OUTPUT: "🔄 Migrated legacy project to UUID: {newProjectId}"
|
|
87
|
-
ELSE:
|
|
88
|
-
OUTPUT: "No prjct project. Run /p:init first."
|
|
89
|
-
STOP
|
|
90
|
-
|
|
91
|
-
---
|
|
92
|
-
|
|
93
|
-
## Step 1: Read Config
|
|
94
|
-
|
|
95
|
-
READ: `.prjct/prjct.config.json`
|
|
96
|
-
EXTRACT: `projectId`
|
|
97
|
-
|
|
98
|
-
IF file not found:
|
|
99
|
-
OUTPUT: "No prjct project. Run /p:init first."
|
|
100
|
-
STOP
|
|
101
|
-
|
|
102
|
-
---
|
|
103
|
-
|
|
104
|
-
## Step 2: Deep Git Analysis
|
|
105
|
-
|
|
106
|
-
### 2.1 Git Status (Uncommitted Work)
|
|
107
|
-
```bash
|
|
108
|
-
git status --porcelain
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
EXTRACT:
|
|
112
|
-
- `{stagedFiles}`: Files staged for commit
|
|
113
|
-
- `{modifiedFiles}`: Modified but not staged
|
|
114
|
-
- `{untrackedFiles}`: New files
|
|
115
|
-
- `{hasUncommittedChanges}`: true/false
|
|
116
|
-
|
|
117
|
-
### 2.2 Recent Commits (Last 20)
|
|
118
|
-
```bash
|
|
119
|
-
git log --oneline -20 --pretty=format:"%h|%s|%ad" --date=short
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
ANALYZE each commit for completed tasks.
|
|
123
|
-
|
|
124
|
-
EXTRACT: `{completedTasks}` - List of tasks found in commits
|
|
125
|
-
|
|
126
|
-
### 2.3 Current Branch Analysis
|
|
127
|
-
```bash
|
|
128
|
-
git branch --show-current
|
|
129
|
-
git log main..HEAD --oneline 2>/dev/null
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
EXTRACT:
|
|
133
|
-
- `{currentBranch}`: Current branch name
|
|
134
|
-
- `{branchCommits}`: Commits ahead of main
|
|
135
|
-
- `{isFeatureBranch}`: true if not main/master
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
## Step 3: Gather Project Stats
|
|
140
|
-
|
|
141
|
-
### Count Files
|
|
142
|
-
```bash
|
|
143
|
-
find . -type f \( -name "*.js" -o -name "*.ts" -o -name "*.tsx" -o -name "*.py" \) -not -path "./node_modules/*" -not -path "./.git/*" | wc -l
|
|
144
|
-
```
|
|
145
|
-
EXTRACT: `{fileCount}`
|
|
146
|
-
|
|
147
|
-
### Count Commits
|
|
148
|
-
```bash
|
|
149
|
-
git rev-list --count HEAD
|
|
150
|
-
```
|
|
151
|
-
EXTRACT: `{commitCount}`
|
|
152
|
-
|
|
153
|
-
### Get Version
|
|
154
|
-
READ: `package.json` → version field
|
|
155
|
-
EXTRACT: `{version}`
|
|
156
|
-
|
|
157
|
-
### Get Project Name
|
|
158
|
-
READ: `package.json` → name field OR directory name
|
|
159
|
-
EXTRACT: `{projectName}`
|
|
160
|
-
|
|
161
|
-
### Detect Stack
|
|
162
|
-
GLOB for config files and analyze:
|
|
163
|
-
- `package.json` → Node.js, detect React/Vue/Express/Next.js
|
|
164
|
-
- `Cargo.toml` → Rust
|
|
165
|
-
- `go.mod` → Go
|
|
166
|
-
- `requirements.txt` / `pyproject.toml` → Python
|
|
167
|
-
|
|
168
|
-
EXTRACT: `{languages}`, `{frameworks}`, `{techStack}`
|
|
169
|
-
|
|
170
|
-
### Detect Frontend/UI Stack (for UX/UI Agent)
|
|
171
|
-
|
|
172
|
-
**CRITICAL**: If ANY frontend technology is detected, generate the UX/UI agent.
|
|
173
|
-
|
|
174
|
-
#### Web Frontend Detection
|
|
175
|
-
```bash
|
|
176
|
-
# Check package.json for web frameworks
|
|
177
|
-
grep -E '"(react|react-dom|next|vue|nuxt|svelte|@sveltejs/kit|@angular/core)"' package.json 2>/dev/null
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
SET: `{hasWebFrontend}` = true if any match
|
|
181
|
-
|
|
182
|
-
#### Mobile Frontend Detection
|
|
183
|
-
```bash
|
|
184
|
-
# React Native / Expo
|
|
185
|
-
grep -E '"(react-native|expo)"' package.json 2>/dev/null
|
|
186
|
-
|
|
187
|
-
# Flutter
|
|
188
|
-
test -f pubspec.yaml && echo "flutter"
|
|
189
|
-
|
|
190
|
-
# SwiftUI (iOS)
|
|
191
|
-
find . -name "*.swift" -exec grep -l "import SwiftUI" {} \; 2>/dev/null | head -1
|
|
192
|
-
|
|
193
|
-
# Jetpack Compose (Android)
|
|
194
|
-
find . -name "*.kt" -exec grep -l "androidx.compose" {} \; 2>/dev/null | head -1
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
SET: `{hasMobileFrontend}` = true if any match
|
|
198
|
-
|
|
199
|
-
#### Combined Frontend Flag
|
|
200
|
-
```
|
|
201
|
-
{hasFrontendUI} = {hasWebFrontend} OR {hasMobileFrontend}
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
EXTRACT: `{frontendType}` = "web" | "mobile" | "both" | null
|
|
205
|
-
|
|
206
|
-
---
|
|
207
|
-
|
|
208
|
-
## Step 3.5: Deep Project Analysis (TRULY AGENTIC)
|
|
209
|
-
|
|
210
|
-
**CRITICAL: Do NOT follow hardcoded rules. ANALYZE the actual project and UNDERSTAND what it is.**
|
|
211
|
-
|
|
212
|
-
### 3.5.1 Detect Project Type (AGENTIC)
|
|
213
|
-
|
|
214
|
-
**Look at the project root and DETERMINE what kind of project this is:**
|
|
215
|
-
|
|
216
|
-
```bash
|
|
217
|
-
ls -la
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
ANALYZE what files exist and REASON about the project type:
|
|
221
|
-
|
|
222
|
-
| If you see... | Project is... | Ecosystem |
|
|
223
|
-
|---------------|---------------|-----------|
|
|
224
|
-
| `Gemfile` | Ruby/Rails | Ruby |
|
|
225
|
-
| `requirements.txt`, `pyproject.toml`, `setup.py` | Python | Python |
|
|
226
|
-
| `go.mod` | Go | Go |
|
|
227
|
-
| `Cargo.toml` | Rust | Rust |
|
|
228
|
-
| `composer.json` | PHP | PHP |
|
|
229
|
-
| `pom.xml`, `build.gradle` | Java | JVM |
|
|
230
|
-
| `*.csproj`, `*.sln` | .NET/C# | .NET |
|
|
231
|
-
| `mix.exs` | Elixir | Elixir |
|
|
232
|
-
| `Package.swift` | Swift | Apple |
|
|
233
|
-
| `package.json` | Node.js/JavaScript | JavaScript |
|
|
234
|
-
| `pubspec.yaml` | Flutter/Dart | Dart |
|
|
235
|
-
| `Makefile` only | C/C++ or custom | Native |
|
|
236
|
-
|
|
237
|
-
SET: `{ecosystem}` = detected ecosystem
|
|
238
|
-
SET: `{projectType}` = specific type (e.g., "Rails", "Django", "Next.js", "Go API")
|
|
239
|
-
|
|
240
|
-
### 3.5.2 Detect Commands FOR THIS PROJECT (AGENTIC)
|
|
241
|
-
|
|
242
|
-
**Based on the ecosystem, LOOK for the actual commands this project uses:**
|
|
243
|
-
|
|
244
|
-
#### Ruby/Rails
|
|
245
|
-
```bash
|
|
246
|
-
cat Gemfile | head -20 # See dependencies
|
|
247
|
-
test -f bin/rails && echo "rails"
|
|
248
|
-
test -f Rakefile && echo "rake"
|
|
249
|
-
```
|
|
250
|
-
→ Commands: `bundle install`, `rails s`, `rails c`, `rake db:migrate`, `rspec`
|
|
251
|
-
|
|
252
|
-
#### Python
|
|
253
|
-
```bash
|
|
254
|
-
test -f pyproject.toml && cat pyproject.toml | head -20
|
|
255
|
-
test -f requirements.txt && echo "pip"
|
|
256
|
-
which poetry && echo "poetry"
|
|
257
|
-
which uv && echo "uv"
|
|
258
|
-
```
|
|
259
|
-
→ Commands: `pip install -r requirements.txt` OR `poetry install` OR `uv sync`
|
|
260
|
-
|
|
261
|
-
#### Go
|
|
262
|
-
```bash
|
|
263
|
-
cat go.mod | head -5
|
|
264
|
-
```
|
|
265
|
-
→ Commands: `go build`, `go test ./...`, `go run .`
|
|
266
|
-
|
|
267
|
-
#### Rust
|
|
268
|
-
```bash
|
|
269
|
-
cat Cargo.toml | head -10
|
|
270
|
-
```
|
|
271
|
-
→ Commands: `cargo build`, `cargo test`, `cargo run`
|
|
272
|
-
|
|
273
|
-
#### Node.js/JavaScript
|
|
274
|
-
```bash
|
|
275
|
-
# Check lockfile to determine package manager
|
|
276
|
-
test -f bun.lockb && echo "bun"
|
|
277
|
-
test -f pnpm-lock.yaml && echo "pnpm"
|
|
278
|
-
test -f yarn.lock && echo "yarn"
|
|
279
|
-
test -f package-lock.json && echo "npm"
|
|
280
|
-
cat package.json | grep -A 20 '"scripts"'
|
|
281
|
-
```
|
|
282
|
-
→ Commands: Use detected package manager + scripts from package.json
|
|
283
|
-
|
|
284
|
-
**EXTRACT the actual commands:**
|
|
285
|
-
- `{installCommand}` = what installs dependencies
|
|
286
|
-
- `{runCommand}` = how to run scripts
|
|
287
|
-
- `{testCommand}` = how to run tests
|
|
288
|
-
- `{buildCommand}` = how to build
|
|
289
|
-
- `{devCommand}` = how to run dev server
|
|
290
|
-
|
|
291
|
-
### 3.5.3 Detect Code Conventions (AGENTIC)
|
|
292
|
-
|
|
293
|
-
**LOOK at actual files to understand patterns:**
|
|
294
|
-
|
|
295
|
-
```bash
|
|
296
|
-
# List some source files
|
|
297
|
-
find . -type f \( -name "*.rb" -o -name "*.py" -o -name "*.go" -o -name "*.rs" -o -name "*.ts" -o -name "*.js" \) -not -path "*/node_modules/*" -not -path "*/.git/*" | head -10
|
|
298
|
-
|
|
299
|
-
# Check for linters/formatters
|
|
300
|
-
ls .rubocop.yml .eslintrc* .prettierrc* pyproject.toml rustfmt.toml .golangci.yml 2>/dev/null
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
ANALYZE and DETERMINE:
|
|
304
|
-
- `{namingConvention}` = based on actual file names
|
|
305
|
-
- `{linter}` = what linter is configured
|
|
306
|
-
- `{formatter}` = what formatter is used
|
|
307
|
-
|
|
308
|
-
### 3.5.4 Detect Project Structure (AGENTIC)
|
|
309
|
-
|
|
310
|
-
```bash
|
|
311
|
-
ls -d */ 2>/dev/null | head -10
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
UNDERSTAND the structure:
|
|
315
|
-
- Where is source code?
|
|
316
|
-
- Where are tests?
|
|
317
|
-
- Is it a monorepo?
|
|
318
|
-
- What's the architecture?
|
|
319
|
-
|
|
320
|
-
### 3.5.5 Generate Project-Specific Rules (AGENTIC)
|
|
321
|
-
|
|
322
|
-
**Based on YOUR ANALYSIS, generate rules that make sense for THIS project.**
|
|
323
|
-
|
|
324
|
-
Think: "What does a developer working on this project need to know?"
|
|
325
|
-
|
|
326
|
-
Examples:
|
|
327
|
-
- Rails project: "Use `bundle exec` for Ruby commands", "Migrations: `rails db:migrate`"
|
|
328
|
-
- Python/Poetry: "Use `poetry run` to run commands in venv"
|
|
329
|
-
- Go project: "Use `go test ./...` to run all tests"
|
|
330
|
-
- Rust project: "Use `cargo fmt` before commits"
|
|
331
|
-
- Node/bun: "Use `bun` not npm - this project has bun.lockb"
|
|
332
|
-
|
|
333
|
-
### 3.5.6 Write analysis/repo-analysis.json
|
|
334
|
-
|
|
335
|
-
```bash
|
|
336
|
-
mkdir -p {globalPath}/analysis
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
WRITE: `{globalPath}/analysis/repo-analysis.json`
|
|
340
|
-
|
|
341
|
-
```json
|
|
342
|
-
{
|
|
343
|
-
"analyzedAt": "{timestamp}",
|
|
344
|
-
"ecosystem": "{ecosystem}",
|
|
345
|
-
"projectType": "{projectType}",
|
|
346
|
-
"commands": {
|
|
347
|
-
"install": "{installCommand}",
|
|
348
|
-
"run": "{runCommand}",
|
|
349
|
-
"test": "{testCommand}",
|
|
350
|
-
"build": "{buildCommand}",
|
|
351
|
-
"dev": "{devCommand}",
|
|
352
|
-
"lint": "{lintCommand}",
|
|
353
|
-
"format": "{formatCommand}"
|
|
354
|
-
},
|
|
355
|
-
"conventions": {
|
|
356
|
-
"naming": "{namingConvention}",
|
|
357
|
-
"linter": "{linter}",
|
|
358
|
-
"formatter": "{formatter}"
|
|
359
|
-
},
|
|
360
|
-
"structure": {
|
|
361
|
-
"srcDir": "{srcDir}",
|
|
362
|
-
"testDir": "{testDir}",
|
|
363
|
-
"isMonorepo": {isMonorepo}
|
|
364
|
-
},
|
|
365
|
-
"rules": [
|
|
366
|
-
"{rule1 - generated based on analysis}",
|
|
367
|
-
"{rule2 - generated based on analysis}",
|
|
368
|
-
"..."
|
|
369
|
-
]
|
|
370
|
-
}
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
---
|
|
374
|
-
|
|
375
|
-
## Step 3.6: Generate/Update Roadmap (For Existing Projects)
|
|
376
|
-
|
|
377
|
-
**CRITICAL**: This step populates the roadmap from git history for existing projects.
|
|
378
|
-
Features detected from git are marked as `legacy: true` - they do NOT require PRDs.
|
|
379
|
-
|
|
380
|
-
### 3.6.1 Check if Roadmap Exists
|
|
381
|
-
|
|
382
|
-
READ: `{globalPath}/storage/roadmap.json`
|
|
383
|
-
|
|
384
|
-
```
|
|
385
|
-
IF roadmap.json does NOT exist:
|
|
386
|
-
SET: {isNewRoadmap} = true
|
|
387
|
-
SET: {existingFeatures} = []
|
|
388
|
-
ELSE:
|
|
389
|
-
SET: {isNewRoadmap} = false
|
|
390
|
-
SET: {existingFeatures} = roadmap.features
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
IF roadmap already has features AND was NOT generated from git:
|
|
394
|
-
SKIP to Step 4 (don't overwrite manual roadmap)
|
|
395
|
-
|
|
396
|
-
### 3.6.2 Analyze Git History for Features
|
|
397
|
-
|
|
398
|
-
```bash
|
|
399
|
-
# Get all commits with conventional commit format (last 200)
|
|
400
|
-
git log --oneline --all --pretty=format:"%h|%s|%ad|%an" --date=short | head -200
|
|
401
|
-
```
|
|
402
|
-
|
|
403
|
-
PARSE commits and GROUP by conventional commit type:
|
|
404
|
-
|
|
405
|
-
| Prefix | Type | Maps To |
|
|
406
|
-
|--------|------|---------|
|
|
407
|
-
| `feat:` | Feature | New feature |
|
|
408
|
-
| `fix:` | Bug Fix | Bug fix (not a feature) |
|
|
409
|
-
| `refactor:` | Refactor | Code change (not a feature) |
|
|
410
|
-
| `chore:` | Chore | Maintenance (not a feature) |
|
|
411
|
-
| `docs:` | Docs | Documentation (not a feature) |
|
|
412
|
-
| `perf:` | Performance | Enhancement |
|
|
413
|
-
| `test:` | Test | Testing (not a feature) |
|
|
414
|
-
|
|
415
|
-
**Feature Grouping Logic:**
|
|
416
|
-
|
|
417
|
-
```
|
|
418
|
-
FOR EACH commit with "feat:" prefix:
|
|
419
|
-
EXTRACT: feature name from commit message
|
|
420
|
-
# e.g., "feat: add user authentication" → "user authentication"
|
|
421
|
-
# e.g., "feat(api): implement rate limiting" → "api rate limiting"
|
|
422
|
-
|
|
423
|
-
GROUP commits by similar feature names
|
|
424
|
-
COUNT commits per feature group
|
|
425
|
-
SUM lines changed per group: git show --stat {commit} | tail -1
|
|
426
|
-
```
|
|
427
|
-
|
|
428
|
-
SET: `{detectedFeatures}` = grouped features with:
|
|
429
|
-
- name
|
|
430
|
-
- commits (array of {hash, message, date})
|
|
431
|
-
- totalCommits
|
|
432
|
-
- linesAdded
|
|
433
|
-
- linesRemoved
|
|
434
|
-
- firstCommitDate
|
|
435
|
-
- lastCommitDate
|
|
436
|
-
|
|
437
|
-
### 3.6.3 Analyze Feature Branches
|
|
438
|
-
|
|
439
|
-
```bash
|
|
440
|
-
git branch -a --format='%(refname:short)|%(upstream:short)|%(committerdate:short)' 2>/dev/null
|
|
441
|
-
```
|
|
442
|
-
|
|
443
|
-
FOR EACH branch:
|
|
444
|
-
IF branch name matches `feature/*` or `feat/*`:
|
|
445
|
-
COUNT commits ahead of main:
|
|
446
|
-
```bash
|
|
447
|
-
git rev-list --count main..{branch} 2>/dev/null || echo "0"
|
|
448
|
-
```
|
|
449
|
-
|
|
450
|
-
ADD to `{activeBranches}`:
|
|
451
|
-
- name: branch name
|
|
452
|
-
- commitsAhead: count
|
|
453
|
-
- lastCommit: date
|
|
454
|
-
|
|
455
|
-
### 3.6.4 Analyze Tags (Shipped Versions)
|
|
456
|
-
|
|
457
|
-
```bash
|
|
458
|
-
git tag --sort=-creatordate --format='%(refname:short)|%(creatordate:short)' 2>/dev/null | head -20
|
|
459
|
-
```
|
|
460
|
-
|
|
461
|
-
FOR EACH tag:
|
|
462
|
-
EXTRACT version from tag name
|
|
463
|
-
LINK to features completed before tag date
|
|
464
|
-
ADD to `{versionTags}` array
|
|
465
|
-
|
|
466
|
-
### 3.6.5 Generate Initial Roadmap
|
|
467
|
-
|
|
468
|
-
IF {isNewRoadmap} OR roadmap was generated from git:
|
|
469
|
-
|
|
470
|
-
GENERATE UUIDs:
|
|
471
|
-
```bash
|
|
472
|
-
# For each feature
|
|
473
|
-
bun -e "console.log('feat_' + crypto.randomUUID().slice(0,8))" 2>/dev/null || node -e "console.log('feat_' + require('crypto').randomUUID().slice(0,8))"
|
|
474
|
-
```
|
|
475
|
-
|
|
476
|
-
WRITE: `{globalPath}/storage/roadmap.json`
|
|
477
|
-
|
|
478
|
-
```json
|
|
479
|
-
{
|
|
480
|
-
"strategy": null,
|
|
481
|
-
"features": [
|
|
482
|
-
// COMPLETED FEATURES (from git history)
|
|
483
|
-
{
|
|
484
|
-
"id": "feat_{uuid8}",
|
|
485
|
-
"name": "{detected feature name}",
|
|
486
|
-
"description": "Inferred from git history",
|
|
487
|
-
"date": "{firstCommitDate}",
|
|
488
|
-
"status": "completed",
|
|
489
|
-
"impact": "medium",
|
|
490
|
-
"progress": 100,
|
|
491
|
-
"tasks": [],
|
|
492
|
-
"createdAt": "{firstCommitDate}",
|
|
493
|
-
"completedDate": "{lastCommitDate}",
|
|
494
|
-
|
|
495
|
-
// LEGACY MARKERS
|
|
496
|
-
"legacy": true,
|
|
497
|
-
"prdId": null,
|
|
498
|
-
"inferredFrom": "git",
|
|
499
|
-
|
|
500
|
-
// GIT DATA
|
|
501
|
-
"commits": [
|
|
502
|
-
{"hash": "{hash}", "message": "{message}", "date": "{date}"}
|
|
503
|
-
],
|
|
504
|
-
"effort": {
|
|
505
|
-
"estimated": null,
|
|
506
|
-
"actual": {
|
|
507
|
-
"commits": {totalCommits},
|
|
508
|
-
"linesAdded": {linesAdded},
|
|
509
|
-
"linesRemoved": {linesRemoved}
|
|
510
|
-
}
|
|
511
|
-
}
|
|
512
|
-
},
|
|
513
|
-
|
|
514
|
-
// ACTIVE FEATURES (from branches)
|
|
515
|
-
{
|
|
516
|
-
"id": "feat_{uuid8}",
|
|
517
|
-
"name": "{branch name without prefix}",
|
|
518
|
-
"description": "Work in progress",
|
|
519
|
-
"date": "{today}",
|
|
520
|
-
"status": "active",
|
|
521
|
-
"impact": "medium",
|
|
522
|
-
"progress": 0,
|
|
523
|
-
"tasks": [],
|
|
524
|
-
"createdAt": "{today}",
|
|
525
|
-
|
|
526
|
-
// LEGACY MARKERS
|
|
527
|
-
"legacy": true,
|
|
528
|
-
"prdId": null,
|
|
529
|
-
"inferredFrom": "git-branch",
|
|
530
|
-
|
|
531
|
-
// BRANCH DATA
|
|
532
|
-
"branch": "{branch name}",
|
|
533
|
-
"commitsAhead": {count}
|
|
534
|
-
}
|
|
535
|
-
],
|
|
536
|
-
"backlog": [],
|
|
537
|
-
"quarters": [],
|
|
538
|
-
"lastUpdated": "{timestamp}",
|
|
539
|
-
"generatedFrom": "git-history",
|
|
540
|
-
"generatedAt": "{timestamp}"
|
|
541
|
-
}
|
|
542
|
-
```
|
|
543
|
-
|
|
544
|
-
### 3.6.6 Initialize PRDs Storage
|
|
545
|
-
|
|
546
|
-
IF `{globalPath}/storage/prds.json` does NOT exist:
|
|
547
|
-
CREATE empty prds.json:
|
|
548
|
-
```json
|
|
549
|
-
{
|
|
550
|
-
"prds": [],
|
|
551
|
-
"lastUpdated": "{timestamp}"
|
|
552
|
-
}
|
|
553
|
-
```
|
|
554
|
-
|
|
555
|
-
### 3.6.7 Output
|
|
556
|
-
|
|
557
|
-
```
|
|
558
|
-
📊 Roadmap {isNewRoadmap ? "Generated" : "Updated"} from Git History
|
|
559
|
-
|
|
560
|
-
Detected Features:
|
|
561
|
-
├── Completed: {completedFeatures.length} features
|
|
562
|
-
{FOR EACH completedFeature (max 5)}
|
|
563
|
-
│ └── {name} ({totalCommits} commits)
|
|
564
|
-
{END FOR}
|
|
565
|
-
├── Active: {activeBranches.length} in progress
|
|
566
|
-
{FOR EACH activeBranch}
|
|
567
|
-
│ └── {name} ({commitsAhead} commits ahead)
|
|
568
|
-
{END FOR}
|
|
569
|
-
└── Legacy Mode: PRDs not required for existing work
|
|
570
|
-
|
|
571
|
-
Going forward, use `p. prd <title>` before starting new features.
|
|
572
|
-
```
|
|
573
|
-
|
|
574
|
-
SET: `{roadmapGenerated}` = true
|
|
575
|
-
SET: `{completedCount}` = completed features count
|
|
576
|
-
SET: `{activeCount}` = active branches count
|
|
577
|
-
|
|
578
|
-
---
|
|
579
|
-
|
|
580
|
-
## Step 4: Regenerate ALL Context Files
|
|
581
|
-
|
|
582
|
-
### 4.1 Read Storage (Source of Truth)
|
|
583
|
-
|
|
584
|
-
READ: `{globalPath}/storage/state.json`
|
|
585
|
-
READ: `{globalPath}/storage/queue.json`
|
|
586
|
-
READ: `{globalPath}/storage/ideas.json`
|
|
587
|
-
READ: `{globalPath}/storage/shipped.json`
|
|
588
|
-
|
|
589
|
-
### 4.2 Generate context/now.md
|
|
590
|
-
|
|
591
|
-
WRITE: `{globalPath}/context/now.md`
|
|
592
|
-
|
|
593
|
-
IF state.currentTask exists:
|
|
594
|
-
```markdown
|
|
595
|
-
# NOW
|
|
596
|
-
|
|
597
|
-
**{state.currentTask.description}**
|
|
598
|
-
|
|
599
|
-
Started: {state.currentTask.startedAt}
|
|
600
|
-
Session: {state.currentTask.sessionId}
|
|
601
|
-
{IF estimate: Estimate: {state.currentTask.estimate}}
|
|
602
|
-
```
|
|
603
|
-
|
|
604
|
-
ELSE IF state.pausedTask exists:
|
|
605
|
-
```markdown
|
|
606
|
-
# NOW
|
|
607
|
-
|
|
608
|
-
⏸️ **{state.pausedTask.description}** (paused)
|
|
609
|
-
|
|
610
|
-
Paused: {state.pausedTask.pausedAt}
|
|
611
|
-
Reason: {state.pausedTask.pauseReason}
|
|
612
|
-
```
|
|
613
|
-
|
|
614
|
-
ELSE:
|
|
615
|
-
```markdown
|
|
616
|
-
# NOW
|
|
617
|
-
|
|
618
|
-
_No active task_
|
|
619
|
-
|
|
620
|
-
Use `/p:now <task>` to start working.
|
|
621
|
-
```
|
|
622
|
-
|
|
623
|
-
### 4.3 Generate context/next.md
|
|
624
|
-
|
|
625
|
-
WRITE: `{globalPath}/context/next.md`
|
|
626
|
-
|
|
627
|
-
```markdown
|
|
628
|
-
# NEXT
|
|
629
|
-
|
|
630
|
-
## Active
|
|
631
|
-
|
|
632
|
-
{FOR EACH task in queue.tasks WHERE section == "active":}
|
|
633
|
-
- [ ] {task.description} {task.priority ? `[${task.priority}]` : ''}
|
|
634
|
-
{END FOR}
|
|
635
|
-
|
|
636
|
-
## Backlog
|
|
637
|
-
|
|
638
|
-
{FOR EACH task in queue.tasks WHERE section == "backlog":}
|
|
639
|
-
- [ ] {task.description}
|
|
640
|
-
{END FOR}
|
|
641
|
-
```
|
|
642
|
-
|
|
643
|
-
### 4.4 Generate context/ideas.md
|
|
644
|
-
|
|
645
|
-
WRITE: `{globalPath}/context/ideas.md`
|
|
646
|
-
|
|
647
|
-
```markdown
|
|
648
|
-
# IDEAS
|
|
649
|
-
|
|
650
|
-
## Pending
|
|
651
|
-
|
|
652
|
-
{FOR EACH idea in ideas.ideas WHERE status == "pending":}
|
|
653
|
-
- **{idea.text}** {idea.tags.join(' ')}
|
|
654
|
-
- Priority: {idea.priority}
|
|
655
|
-
- Added: {idea.createdAt}
|
|
656
|
-
{END FOR}
|
|
657
|
-
|
|
658
|
-
## Converted
|
|
659
|
-
|
|
660
|
-
{FOR EACH idea in ideas.ideas WHERE status == "converted":}
|
|
661
|
-
- ~~{idea.text}~~ → Feature
|
|
662
|
-
{END FOR}
|
|
663
|
-
```
|
|
664
|
-
|
|
665
|
-
### 4.5 Generate context/shipped.md
|
|
666
|
-
|
|
667
|
-
WRITE: `{globalPath}/context/shipped.md`
|
|
668
|
-
|
|
669
|
-
```markdown
|
|
670
|
-
# SHIPPED 🚀
|
|
671
|
-
|
|
672
|
-
## {Current Month Year}
|
|
673
|
-
|
|
674
|
-
{FOR EACH ship in shipped.shipped WHERE month matches:}
|
|
675
|
-
- **{ship.name}** v{ship.version} - {formatDate(ship.shippedAt)}
|
|
676
|
-
{END FOR}
|
|
677
|
-
|
|
678
|
-
---
|
|
679
|
-
|
|
680
|
-
**Total shipped:** {shipped.shipped.length}
|
|
681
|
-
```
|
|
682
|
-
|
|
683
|
-
---
|
|
684
|
-
|
|
685
|
-
## Step 5: Update context/CLAUDE.md (CRITICAL - AGENTIC)
|
|
686
|
-
|
|
687
|
-
**ALWAYS OVERWRITE** this file on every sync.
|
|
688
|
-
|
|
689
|
-
READ: `{globalPath}/analysis/repo-analysis.json` to get the analysis you just did.
|
|
690
|
-
|
|
691
|
-
WRITE: `{globalPath}/context/CLAUDE.md`
|
|
692
|
-
|
|
693
|
-
**Generate this file BASED ON YOUR ANALYSIS. The content below is a TEMPLATE - adapt it to what you found.**
|
|
694
|
-
|
|
695
|
-
```markdown
|
|
696
|
-
# {projectName} - Project Rules
|
|
697
|
-
<!-- projectId: {projectId} -->
|
|
698
|
-
<!-- Generated: {GetTimestamp()} -->
|
|
699
|
-
<!-- Ecosystem: {ecosystem} | Type: {projectType} -->
|
|
700
|
-
|
|
701
|
-
## THIS PROJECT ({ecosystem})
|
|
702
|
-
|
|
703
|
-
**Type:** {projectType}
|
|
704
|
-
**Path:** {cwd}
|
|
705
|
-
|
|
706
|
-
### Commands (USE THESE, NOT OTHERS)
|
|
707
|
-
|
|
708
|
-
| Action | Command |
|
|
709
|
-
|--------|---------|
|
|
710
|
-
| Install dependencies | \`{installCommand}\` |
|
|
711
|
-
| Run dev server | \`{devCommand}\` |
|
|
712
|
-
| Run tests | \`{testCommand}\` |
|
|
713
|
-
| Build | \`{buildCommand}\` |
|
|
714
|
-
| Lint | \`{lintCommand}\` |
|
|
715
|
-
| Format | \`{formatCommand}\` |
|
|
716
|
-
|
|
717
|
-
### Project-Specific Rules
|
|
718
|
-
|
|
719
|
-
{FOR EACH rule in analysis.rules}
|
|
720
|
-
- {rule}
|
|
721
|
-
{END FOR}
|
|
722
|
-
|
|
723
|
-
### Code Conventions
|
|
724
|
-
|
|
725
|
-
- **Naming**: {namingConvention}
|
|
726
|
-
- **Linter**: {linter}
|
|
727
|
-
- **Formatter**: {formatter}
|
|
728
|
-
{IF isMonorepo}
|
|
729
|
-
- **Monorepo**: Check which package you're in before running commands
|
|
730
|
-
{ENDIF}
|
|
731
|
-
|
|
732
|
-
---
|
|
733
|
-
|
|
734
|
-
## DO vs DON'T (FOR THIS PROJECT)
|
|
735
|
-
|
|
736
|
-
| DO | DON'T |
|
|
737
|
-
|----|-------|
|
|
738
|
-
| \`{installCommand}\` | Wrong install command for this ecosystem |
|
|
739
|
-
| \`{testCommand}\` | Wrong test command |
|
|
740
|
-
| Read files before editing | Assume contents |
|
|
741
|
-
| Use Task(Explore) to understand | Jump to conclusions |
|
|
742
|
-
| Ask when uncertain | Make assumptions |
|
|
743
|
-
|
|
744
|
-
---
|
|
745
|
-
|
|
746
|
-
## PRJCT RULES
|
|
747
|
-
|
|
748
|
-
### Path Resolution
|
|
749
|
-
**ALL prjct writes go to**: \`~/.prjct-cli/projects/{projectId}/\`
|
|
750
|
-
- NEVER write to \`.prjct/\`
|
|
751
|
-
- NEVER write to \`./\` for prjct data
|
|
752
|
-
|
|
753
|
-
### Workflow
|
|
754
|
-
\`\`\`
|
|
755
|
-
p. sync → p. task "desc" → [work] → p. done → p. ship
|
|
756
|
-
\`\`\`
|
|
757
|
-
|
|
758
|
-
| Command | Action |
|
|
759
|
-
|---------|--------|
|
|
760
|
-
| \`p. sync\` | Re-analyze project |
|
|
761
|
-
| \`p. task X\` | Start task |
|
|
762
|
-
| \`p. done\` | Complete subtask |
|
|
763
|
-
| \`p. ship X\` | Ship feature |
|
|
764
|
-
|
|
765
|
-
---
|
|
766
|
-
|
|
767
|
-
## PROJECT STATE
|
|
768
|
-
|
|
769
|
-
| Field | Value |
|
|
770
|
-
|-------|-------|
|
|
771
|
-
| Name | {projectName} |
|
|
772
|
-
| Version | {version} |
|
|
773
|
-
| Ecosystem | {ecosystem} |
|
|
774
|
-
| Branch | {currentBranch} |
|
|
775
|
-
| Files | {fileCount} |
|
|
776
|
-
|
|
777
|
-
**Current Task:** {currentTask.description || "_None_"}
|
|
778
|
-
**Queue:** {queue.tasks.length} tasks
|
|
779
|
-
|
|
780
|
-
---
|
|
781
|
-
|
|
782
|
-
## AGENTS
|
|
783
|
-
|
|
784
|
-
Load from \`{globalPath}/agents/\`:
|
|
785
|
-
{FOR EACH agent in generatedAgents}
|
|
786
|
-
- \`{agent}.md\`
|
|
787
|
-
{END FOR}
|
|
788
|
-
|
|
789
|
-
---
|
|
790
|
-
|
|
791
|
-
## STRUCTURE
|
|
792
|
-
|
|
793
|
-
\`\`\`
|
|
794
|
-
{srcDir}/ # Source code
|
|
795
|
-
{testDir}/ # Tests
|
|
796
|
-
{globalPath}/
|
|
797
|
-
├── storage/ # prjct state
|
|
798
|
-
├── context/ # This file
|
|
799
|
-
├── agents/ # Domain experts
|
|
800
|
-
└── analysis/ # repo-analysis.json
|
|
801
|
-
\`\`\`
|
|
802
|
-
```
|
|
803
|
-
|
|
804
|
-
---
|
|
805
|
-
|
|
806
|
-
## Step 6: Update project.json (CRITICAL: cliVersion)
|
|
807
|
-
|
|
808
|
-
READ existing: `{globalPath}/project.json` (preserve createdAt, integrations)
|
|
809
|
-
|
|
810
|
-
GET CLI version (REQUIRED - this clears the status line warning):
|
|
811
7
|
```bash
|
|
812
|
-
|
|
8
|
+
prjct sync
|
|
813
9
|
```
|
|
814
|
-
SET: `{cliVersion}` = result (e.g., "0.25.1")
|
|
815
|
-
|
|
816
|
-
CHECK: `{previousCliVersion}` = existing.cliVersion (if any)
|
|
817
|
-
SET: `{isVersionUpgrade}` = previousCliVersion != cliVersion OR previousCliVersion is missing
|
|
818
|
-
|
|
819
|
-
**CRITICAL**: The `cliVersion` field MUST be written to project.json. This field:
|
|
820
|
-
- Clears the "⚠️ prjct v{version} available!" status line warning
|
|
821
|
-
- Indicates which CLI version last synced this project
|
|
822
|
-
- If missing, the warning will persist even after sync
|
|
823
|
-
|
|
824
|
-
WRITE: `{globalPath}/project.json` (merge with existing, but ALWAYS update these fields):
|
|
825
|
-
|
|
826
|
-
```json
|
|
827
|
-
{
|
|
828
|
-
"projectId": "{projectId}",
|
|
829
|
-
"repoPath": "{cwd}",
|
|
830
|
-
"name": "{projectName}",
|
|
831
|
-
"version": "{version}",
|
|
832
|
-
"cliVersion": "{cliVersion}", // ← REQUIRED: Must match CLI version to clear warning
|
|
833
|
-
"techStack": {techStack},
|
|
834
|
-
"fileCount": {fileCount},
|
|
835
|
-
"commitCount": {commitCount},
|
|
836
|
-
"stack": "{stack}",
|
|
837
|
-
"currentBranch": "{currentBranch}",
|
|
838
|
-
"hasUncommittedChanges": {hasUncommittedChanges},
|
|
839
|
-
"createdAt": "{existingCreatedAt || GetTimestamp()}",
|
|
840
|
-
"lastSync": "{GetTimestamp()}",
|
|
841
|
-
"integrations": "{existing.integrations || {}}" // ← Preserve integrations
|
|
842
|
-
}
|
|
843
|
-
```
|
|
844
|
-
|
|
845
|
-
### Step 6.1: Update Statusline Script (If Version Upgrade)
|
|
846
|
-
|
|
847
|
-
IF `{isVersionUpgrade}` == true:
|
|
848
|
-
|
|
849
|
-
CHECK: Does `~/.prjct-cli/statusline/statusline.sh` exist?
|
|
850
|
-
(Also check `~/.claude/prjct-statusline.sh` as fallback - follow symlink if applicable)
|
|
851
|
-
|
|
852
|
-
IF file exists:
|
|
853
|
-
READ the statusline script content
|
|
854
|
-
|
|
855
|
-
IF content contains `CLI_VERSION=`:
|
|
856
|
-
EXTRACT current version from script (regex: `/CLI_VERSION="([^"]*)"/`)
|
|
857
|
-
|
|
858
|
-
IF extracted version != `{cliVersion}`:
|
|
859
|
-
UPDATE the CLI_VERSION line in the script:
|
|
860
|
-
```javascript
|
|
861
|
-
const content = fs.readFileSync(statusLinePath, 'utf8')
|
|
862
|
-
const updated = content.replace(/CLI_VERSION="[^"]*"/, `CLI_VERSION="${cliVersion}"`)
|
|
863
|
-
fs.writeFileSync(statusLinePath, updated, { mode: 0o755 })
|
|
864
|
-
```
|
|
865
|
-
OUTPUT: "✓ Statusline updated to v{cliVersion}"
|
|
866
|
-
ELSE:
|
|
867
|
-
// Already at correct version, no action needed
|
|
868
|
-
|
|
869
|
-
ELSE:
|
|
870
|
-
// Script exists but NO CLI_VERSION - old version without version check
|
|
871
|
-
// Replace with new script from assets (has version check logic)
|
|
872
|
-
OUTPUT: "⚠️ Statusline missing version check. Run `prjct setup` to update."
|
|
873
|
-
|
|
874
|
-
ELSE:
|
|
875
|
-
// No statusline script exists - sync doesn't create it
|
|
876
|
-
OUTPUT: "💡 Run `prjct setup` to install statusline"
|
|
877
|
-
|
|
878
|
-
---
|
|
879
|
-
|
|
880
|
-
## Step 7: Generate Claude Code Sub-Agents (AGENTIC)
|
|
881
|
-
|
|
882
|
-
Generate sub-agents for Claude Code in the GLOBAL storage `{globalPath}/agents/` directory.
|
|
883
|
-
|
|
884
|
-
### 7.0 PURGE Legacy Agents (CRITICAL)
|
|
885
|
-
|
|
886
|
-
**ALWAYS purge all existing agents to ensure no legacy remains.**
|
|
887
|
-
|
|
888
|
-
```bash
|
|
889
|
-
rm -rf {globalPath}/agents/*
|
|
890
|
-
```
|
|
891
|
-
|
|
892
|
-
OUTPUT: "🗑️ Purged legacy agents"
|
|
893
|
-
|
|
894
|
-
This ensures:
|
|
895
|
-
- Old agent formats are removed
|
|
896
|
-
- New agent templates are used
|
|
897
|
-
- No outdated instructions remain
|
|
898
|
-
|
|
899
|
-
### 7.1 Create Directory
|
|
900
|
-
|
|
901
|
-
```bash
|
|
902
|
-
mkdir -p {globalPath}/agents
|
|
903
|
-
```
|
|
904
|
-
|
|
905
|
-
### 7.2 Read Generation Instructions
|
|
906
|
-
|
|
907
|
-
READ: `templates/agentic/subagent-generation.md`
|
|
908
|
-
|
|
909
|
-
This template contains:
|
|
910
|
-
- Which workflow agents to ALWAYS generate
|
|
911
|
-
- Which domain agents to generate based on stack
|
|
912
|
-
- Format and structure requirements
|
|
913
|
-
|
|
914
|
-
### 7.3 Generate Workflow Agents (ALWAYS)
|
|
915
|
-
|
|
916
|
-
These 3 agents are ALWAYS created for every prjct project:
|
|
917
|
-
|
|
918
|
-
**prjct-workflow.md** - Handles: /p:now, /p:done, /p:next, /p:pause, /p:resume
|
|
919
|
-
READ template: `templates/subagents/workflow/prjct-workflow.md`
|
|
920
|
-
ADAPT with: projectId, projectPath
|
|
921
|
-
WRITE to: `{globalPath}/agents/prjct-workflow.md`
|
|
922
|
-
|
|
923
|
-
**prjct-planner.md** - Handles: /p:feature, /p:idea, /p:spec, /p:bug
|
|
924
|
-
READ template: `templates/subagents/workflow/prjct-planner.md`
|
|
925
|
-
ADAPT with: projectId, projectPath
|
|
926
|
-
WRITE to: `{globalPath}/agents/prjct-planner.md`
|
|
927
|
-
|
|
928
|
-
**prjct-shipper.md** - Handles: /p:ship
|
|
929
|
-
READ template: `templates/subagents/workflow/prjct-shipper.md`
|
|
930
|
-
ADAPT with: projectId, projectPath, detected test/lint commands
|
|
931
|
-
WRITE to: `{globalPath}/agents/prjct-shipper.md`
|
|
932
|
-
|
|
933
|
-
### 7.4 Generate Domain Agents (Based on Stack)
|
|
934
|
-
|
|
935
|
-
Analyze `{techStack}` from Step 3 and generate ONLY relevant domain agents:
|
|
936
|
-
|
|
937
|
-
| If Detected | Generate | Template |
|
|
938
|
-
|-------------|----------|----------|
|
|
939
|
-
| React, Vue, Angular, Svelte, CSS | `frontend.md` | `templates/subagents/domain/frontend.md` |
|
|
940
|
-
| Node.js, Express, Go, Python API | `backend.md` | `templates/subagents/domain/backend.md` |
|
|
941
|
-
| PostgreSQL, MySQL, MongoDB, Prisma | `database.md` | `templates/subagents/domain/database.md` |
|
|
942
|
-
| Docker, Kubernetes, GitHub Actions | `devops.md` | `templates/subagents/domain/devops.md` |
|
|
943
|
-
| Bun test, Jest, Pytest, testing | `testing.md` | `templates/subagents/domain/testing.md` |
|
|
944
|
-
| **{hasFrontendUI} = true** | `uxui.md` | `templates/agentic/agents/uxui.md` |
|
|
945
|
-
|
|
946
|
-
For EACH detected stack:
|
|
947
|
-
1. READ template from `templates/subagents/domain/{name}.md`
|
|
948
|
-
2. ADAPT description with detected frameworks (e.g., "React specialist" not just "frontend")
|
|
949
|
-
3. WRITE to `{globalPath}/agents/{name}.md`
|
|
950
|
-
|
|
951
|
-
### 7.5 Generate UX/UI Agent (CRITICAL for Frontend Projects)
|
|
952
|
-
|
|
953
|
-
**Priority: UX > UI** - User experience is more important than visuals.
|
|
954
|
-
|
|
955
|
-
IF `{hasFrontendUI}` == true:
|
|
956
|
-
|
|
957
|
-
1. READ template: `templates/agentic/agents/uxui.md`
|
|
958
|
-
2. WRITE to: `{globalPath}/agents/uxui.md`
|
|
959
|
-
3. ADD to `{domainAgents}`: "uxui"
|
|
960
|
-
|
|
961
|
-
OUTPUT: "🎨 Generated UX/UI agent for {frontendType} ({frameworks detected})"
|
|
962
|
-
|
|
963
|
-
The UX/UI agent ensures:
|
|
964
|
-
- **UX First**: Clarity, feedback, reduced friction, error handling, accessibility
|
|
965
|
-
- **Modern UI**: Distinctive typography, bold colors, purposeful animation
|
|
966
|
-
- **Anti-patterns avoided**: No "AI slop" (Inter font, purple gradients, generic layouts)
|
|
967
|
-
- **Checklists**: UX and UI quality gates before shipping
|
|
968
|
-
|
|
969
|
-
### 7.6 Report Generated Agents
|
|
970
|
-
|
|
971
|
-
Track which agents were generated for output:
|
|
972
|
-
- `{workflowAgents}`: Always 3 (prjct-workflow, prjct-planner, prjct-shipper)
|
|
973
|
-
- `{domainAgents}`: List of domain agents generated
|
|
974
|
-
|
|
975
|
-
---
|
|
976
|
-
|
|
977
|
-
## Step 7.5: Install Agent Skills (agentskills.io)
|
|
978
|
-
|
|
979
|
-
**CRITICAL: This step discovers and installs skills from the agentskills.io ecosystem.**
|
|
980
|
-
|
|
981
|
-
Skills follow the Agent Skills standard (by Anthropic). Each skill is a directory with a `SKILL.md` file.
|
|
982
|
-
|
|
983
|
-
### 7.5.1 Check Existing Skills
|
|
984
|
-
|
|
985
|
-
```bash
|
|
986
|
-
ls -d ~/.claude/skills/*/ 2>/dev/null || echo "none"
|
|
987
|
-
```
|
|
988
|
-
|
|
989
|
-
SET: `{existingSkills}` = list of installed skill directories
|
|
990
|
-
|
|
991
|
-
### 7.5.2 Read Skill Mappings
|
|
992
|
-
|
|
993
|
-
READ: `templates/config/skill-mappings.json`
|
|
994
|
-
|
|
995
|
-
This file contains:
|
|
996
|
-
- Agent → Skill mappings
|
|
997
|
-
- Search terms for agentskills.io
|
|
998
|
-
- Anthropic official skills references
|
|
999
|
-
|
|
1000
|
-
### 7.5.3 Search & Install Skills (AGENTIC)
|
|
1001
|
-
|
|
1002
|
-
**For each generated agent, find and install matching skills from agentskills.io.**
|
|
1003
|
-
|
|
1004
|
-
```
|
|
1005
|
-
FOR EACH agent IN {generatedAgents}:
|
|
1006
|
-
GET: skillConfig = skill-mappings.json.agentToSkillMap[agent]
|
|
1007
|
-
|
|
1008
|
-
IF skillConfig.fromAnthropic == true:
|
|
1009
|
-
# PRIORITY 1: Check anthropics/skills repo
|
|
1010
|
-
USE WebFetch:
|
|
1011
|
-
url: "https://api.github.com/repos/anthropics/skills/contents/skills"
|
|
1012
|
-
prompt: "List available skills. Find one matching: {skillConfig.searchTerms}"
|
|
1013
|
-
|
|
1014
|
-
IF skill found:
|
|
1015
|
-
# Download SKILL.md from anthropics/skills
|
|
1016
|
-
USE WebFetch:
|
|
1017
|
-
url: "https://raw.githubusercontent.com/anthropics/skills/main/skills/{skill}/SKILL.md"
|
|
1018
|
-
prompt: "Get the complete SKILL.md content"
|
|
1019
|
-
|
|
1020
|
-
SET: {skillContent} = result
|
|
1021
|
-
SET: {skillSource} = "anthropics/skills"
|
|
1022
|
-
|
|
1023
|
-
ELSE:
|
|
1024
|
-
# PRIORITY 2: Search agentskills.io marketplace
|
|
1025
|
-
USE WebFetch:
|
|
1026
|
-
url: "https://agentskills.io/search?q={skillConfig.searchTerms[0]}"
|
|
1027
|
-
prompt: "Find skills matching {agent}. Return: name, repo URL, description"
|
|
1028
|
-
|
|
1029
|
-
IF results found:
|
|
1030
|
-
SELECT best match based on:
|
|
1031
|
-
- Relevance to agent domain
|
|
1032
|
-
- Recent updates
|
|
1033
|
-
- Good documentation
|
|
1034
|
-
|
|
1035
|
-
# Download from matched repo
|
|
1036
|
-
USE WebFetch:
|
|
1037
|
-
url: "{result.repoUrl}/raw/main/SKILL.md"
|
|
1038
|
-
prompt: "Get the SKILL.md content"
|
|
1039
|
-
|
|
1040
|
-
SET: {skillContent} = result
|
|
1041
|
-
SET: {skillSource} = "agentskills.io"
|
|
1042
|
-
|
|
1043
|
-
IF {skillContent} exists:
|
|
1044
|
-
# Install skill to ~/.claude/skills/{name}/
|
|
1045
|
-
```bash
|
|
1046
|
-
mkdir -p ~/.claude/skills/{skill.name}
|
|
1047
|
-
```
|
|
1048
|
-
|
|
1049
|
-
WRITE: `~/.claude/skills/{skill.name}/SKILL.md`
|
|
1050
|
-
CONTENT: {skillContent}
|
|
1051
|
-
|
|
1052
|
-
OUTPUT: "📦 Installed: {skill.name} (from {skillSource})"
|
|
1053
|
-
ADD to {installedSkills}
|
|
1054
|
-
|
|
1055
|
-
ELSE:
|
|
1056
|
-
# FALLBACK: Create minimal custom skill
|
|
1057
|
-
→ Go to Step 7.5.4
|
|
1058
|
-
```
|
|
1059
|
-
|
|
1060
|
-
### 7.5.4 Create Custom Skill (Fallback)
|
|
1061
|
-
|
|
1062
|
-
If no suitable skill found, CREATE a minimal skill following the agentskills.io spec:
|
|
1063
|
-
|
|
1064
|
-
```bash
|
|
1065
|
-
mkdir -p ~/.claude/skills/{agent}-custom
|
|
1066
|
-
```
|
|
1067
|
-
|
|
1068
|
-
WRITE: `~/.claude/skills/{agent}-custom/SKILL.md`
|
|
1069
|
-
|
|
1070
|
-
```markdown
|
|
1071
|
-
---
|
|
1072
|
-
name: {agent}-custom
|
|
1073
|
-
description: Custom skill for {agent} domain. Use when working on {domain description}.
|
|
1074
|
-
---
|
|
1075
|
-
|
|
1076
|
-
# {Agent} Custom Skill
|
|
1077
|
-
|
|
1078
|
-
This skill provides guidance for {agent} domain tasks.
|
|
1079
|
-
|
|
1080
|
-
## When to Use
|
|
1081
|
-
- {Task type 1 this skill helps with}
|
|
1082
|
-
- {Task type 2 this skill helps with}
|
|
1083
|
-
|
|
1084
|
-
## Guidelines
|
|
1085
|
-
{Domain-specific guidelines based on project analysis}
|
|
1086
|
-
|
|
1087
|
-
## Patterns
|
|
1088
|
-
{Common patterns detected in this project}
|
|
1089
|
-
```
|
|
1090
|
-
|
|
1091
|
-
ADD to {createdSkills}
|
|
1092
|
-
|
|
1093
|
-
### 7.5.5 Install Document Skills (Optional)
|
|
1094
|
-
|
|
1095
|
-
IF project creates documents (PDFs, presentations, spreadsheets):
|
|
1096
|
-
|
|
1097
|
-
```
|
|
1098
|
-
CHECK package.json for: pdf-lib, docx, pptxgenjs, exceljs, etc.
|
|
1099
|
-
|
|
1100
|
-
IF found:
|
|
1101
|
-
INSTALL from anthropics/skills:
|
|
1102
|
-
- pdf/ - PDF creation and editing
|
|
1103
|
-
- docx/ - Word document creation
|
|
1104
|
-
- pptx/ - PowerPoint presentations
|
|
1105
|
-
- xlsx/ - Excel spreadsheets
|
|
1106
|
-
|
|
1107
|
-
FOR EACH docSkill in [pdf, docx, pptx, xlsx]:
|
|
1108
|
-
IF dependency detected:
|
|
1109
|
-
USE WebFetch:
|
|
1110
|
-
url: "https://raw.githubusercontent.com/anthropics/skills/main/skills/{docSkill}/SKILL.md"
|
|
1111
|
-
prompt: "Get SKILL.md content"
|
|
1112
|
-
|
|
1113
|
-
mkdir -p ~/.claude/skills/{docSkill}
|
|
1114
|
-
WRITE: ~/.claude/skills/{docSkill}/SKILL.md
|
|
1115
|
-
```
|
|
1116
|
-
|
|
1117
|
-
### 7.5.6 Save Skills Configuration
|
|
1118
|
-
|
|
1119
|
-
```bash
|
|
1120
|
-
mkdir -p {globalPath}/config
|
|
1121
|
-
```
|
|
1122
|
-
|
|
1123
|
-
WRITE: `{globalPath}/config/skills.json`
|
|
1124
|
-
|
|
1125
|
-
```json
|
|
1126
|
-
{
|
|
1127
|
-
"projectId": "{projectId}",
|
|
1128
|
-
"ecosystem": "{ecosystem}",
|
|
1129
|
-
"syncedAt": "{GetTimestamp()}",
|
|
1130
|
-
"skillsDirectory": "~/.claude/skills/",
|
|
1131
|
-
"skills": [
|
|
1132
|
-
{
|
|
1133
|
-
"name": "{skill.name}",
|
|
1134
|
-
"source": "{skillSource}",
|
|
1135
|
-
"path": "~/.claude/skills/{skill.name}/SKILL.md",
|
|
1136
|
-
"linkedAgents": ["{agent}"],
|
|
1137
|
-
"installedAt": "{GetTimestamp()}"
|
|
1138
|
-
}
|
|
1139
|
-
],
|
|
1140
|
-
"agentSkillMap": {
|
|
1141
|
-
"{agent}": "{skill.name}"
|
|
1142
|
-
}
|
|
1143
|
-
}
|
|
1144
|
-
```
|
|
1145
|
-
|
|
1146
|
-
### 7.5.7 Update Agent Frontmatter
|
|
1147
|
-
|
|
1148
|
-
FOR EACH agent file in `{globalPath}/agents/`:
|
|
1149
|
-
READ agent file
|
|
1150
|
-
GET skill from agentSkillMap[agent.name]
|
|
1151
|
-
|
|
1152
|
-
IF skill exists:
|
|
1153
|
-
UPDATE frontmatter to include: `skills: [{skill}]`
|
|
1154
|
-
WRITE updated agent file
|
|
1155
|
-
|
|
1156
|
-
### 7.5.8 Output Summary
|
|
1157
|
-
|
|
1158
|
-
```
|
|
1159
|
-
OUTPUT:
|
|
1160
|
-
📦 Skills Installed (agentskills.io)
|
|
1161
|
-
├── From anthropics/skills: {anthropicSkills.length}
|
|
1162
|
-
├── From marketplace: {marketplaceSkills.length}
|
|
1163
|
-
├── Custom created: {createdSkills.length}
|
|
1164
|
-
└── Location: ~/.claude/skills/
|
|
1165
|
-
|
|
1166
|
-
🔗 Agent → Skill Mapping:
|
|
1167
|
-
{FOR EACH entry in agentSkillMap}
|
|
1168
|
-
├── {agent}.md → {skill}
|
|
1169
|
-
{END FOR}
|
|
1170
|
-
```
|
|
1171
|
-
|
|
1172
|
-
---
|
|
1173
|
-
|
|
1174
|
-
## Step 8: Log to Memory
|
|
1175
|
-
|
|
1176
|
-
APPEND to: `{globalPath}/memory/events.jsonl`
|
|
1177
|
-
|
|
1178
|
-
```json
|
|
1179
|
-
{"ts":"{GetTimestamp()}","action":"sync","branch":"{currentBranch}","uncommitted":{hasUncommittedChanges},"fileCount":{fileCount},"commitCount":{commitCount}}
|
|
1180
|
-
```
|
|
1181
|
-
|
|
1182
|
-
---
|
|
1183
|
-
|
|
1184
|
-
## Step 9: Backend Sync (Cloud)
|
|
1185
|
-
|
|
1186
|
-
Sync with prjct API if authenticated.
|
|
1187
|
-
|
|
1188
|
-
### 9.1 Check Authentication
|
|
1189
|
-
|
|
1190
|
-
READ: `~/.prjct-cli/config/auth.json`
|
|
1191
|
-
|
|
1192
|
-
IF no auth OR no apiKey:
|
|
1193
|
-
SET: `{cloudSync}` = false
|
|
1194
|
-
OUTPUT TIP: "💡 Run `prjct auth` to enable cloud sync"
|
|
1195
|
-
CONTINUE to output (skip 9.2, 9.3)
|
|
1196
|
-
|
|
1197
|
-
ELSE:
|
|
1198
|
-
SET: `{cloudSync}` = true
|
|
1199
|
-
|
|
1200
|
-
### 9.2 Push Pending Events
|
|
1201
|
-
|
|
1202
|
-
READ: `{globalPath}/sync/pending.json`
|
|
1203
|
-
COUNT: `{pendingCount}` events
|
|
1204
|
-
|
|
1205
|
-
IF pendingCount > 0:
|
|
1206
|
-
CALL syncManager.push(projectId)
|
|
1207
|
-
|
|
1208
|
-
IF success:
|
|
1209
|
-
SET: `{pushedCount}` = result.count
|
|
1210
|
-
OUTPUT: "☁️ Pushed {pushedCount} events to cloud"
|
|
1211
|
-
ELSE:
|
|
1212
|
-
OUTPUT: "⚠️ Cloud sync failed: {error}. Events queued for retry."
|
|
1213
|
-
SET: `{syncError}` = error
|
|
1214
|
-
ELSE:
|
|
1215
|
-
SET: `{pushedCount}` = 0
|
|
1216
|
-
|
|
1217
|
-
### 9.3 Pull Updates (if push succeeded)
|
|
1218
|
-
|
|
1219
|
-
IF cloudSync AND no syncError:
|
|
1220
|
-
CALL syncManager.pull(projectId)
|
|
1221
|
-
|
|
1222
|
-
IF success AND result.count > 0:
|
|
1223
|
-
SET: `{pulledCount}` = result.count
|
|
1224
|
-
OUTPUT: "📥 Pulled {pulledCount} updates from cloud"
|
|
1225
|
-
ELSE:
|
|
1226
|
-
SET: `{pulledCount}` = 0
|
|
1227
|
-
|
|
1228
|
-
---
|
|
1229
|
-
|
|
1230
|
-
## Output
|
|
1231
|
-
|
|
1232
|
-
```
|
|
1233
|
-
🔄 Project synced to prjct v{cliVersion}
|
|
1234
|
-
|
|
1235
|
-
📊 Project Stats
|
|
1236
|
-
├── Files: {fileCount}
|
|
1237
|
-
├── Commits: {commitCount}
|
|
1238
|
-
├── Version: {version}
|
|
1239
|
-
└── Stack: {stack}
|
|
1240
|
-
|
|
1241
|
-
🌿 Git Status
|
|
1242
|
-
├── Branch: {currentBranch}
|
|
1243
|
-
├── Uncommitted: {hasUncommittedChanges ? "Yes - " + modifiedCount + " files" : "Clean"}
|
|
1244
|
-
└── Recent: {recentCommitCount} commits this week
|
|
1245
|
-
|
|
1246
|
-
📁 Context Updated
|
|
1247
|
-
├── context/now.md
|
|
1248
|
-
├── context/next.md
|
|
1249
|
-
├── context/ideas.md
|
|
1250
|
-
├── context/shipped.md
|
|
1251
|
-
└── context/CLAUDE.md
|
|
1252
|
-
|
|
1253
|
-
🤖 Agents Regenerated ({workflowAgents.length + domainAgents.length})
|
|
1254
|
-
├── Workflow: prjct-workflow, prjct-planner, prjct-shipper
|
|
1255
|
-
├── Domain: {domainAgents.join(', ') || 'none'}
|
|
1256
|
-
{IF hasFrontendUI}
|
|
1257
|
-
└── 🎨 UX/UI: uxui.md (Priority: UX > UI)
|
|
1258
|
-
{ENDIF}
|
|
1259
|
-
|
|
1260
|
-
📦 Skills (agentskills.io)
|
|
1261
|
-
├── From anthropics/skills: {anthropicSkills.length}
|
|
1262
|
-
├── From marketplace: {marketplaceSkills.length}
|
|
1263
|
-
├── Custom: {createdSkills.length}
|
|
1264
|
-
└── Location: ~/.claude/skills/
|
|
1265
|
-
|
|
1266
|
-
🔗 Agent → Skill Mapping
|
|
1267
|
-
{FOR EACH entry in agentSkillMap}
|
|
1268
|
-
├── {entry.agent}.md → {entry.skill}/
|
|
1269
|
-
{END FOR}
|
|
1270
|
-
|
|
1271
|
-
{IF isVersionUpgrade}
|
|
1272
|
-
✨ New Features Available in v{cliVersion}:
|
|
1273
|
-
|
|
1274
|
-
• /p:task - Unified task command with agentic classification
|
|
1275
|
-
• Automatic type detection (feature, bug, improvement, refactor, chore)
|
|
1276
|
-
• 7-phase development workflow for all task types
|
|
1277
|
-
• Git branch management with type-based prefixes
|
|
1278
|
-
• UX/UI design workflow for frontend tasks
|
|
1279
|
-
• Design expert integration
|
|
1280
|
-
|
|
1281
|
-
Note: /p:now and /p:feature are deprecated. Use /p:task instead.
|
|
1282
|
-
{ENDIF}
|
|
1283
|
-
|
|
1284
|
-
{IF cloudSync}
|
|
1285
|
-
☁️ Cloud Sync
|
|
1286
|
-
├── Pushed: {pushedCount} events
|
|
1287
|
-
├── Pulled: {pulledCount} updates
|
|
1288
|
-
└── Status: {syncError ? "⚠️ " + syncError : "✓ Synced"}
|
|
1289
|
-
{ELSE}
|
|
1290
|
-
💡 Cloud sync disabled. Run `prjct auth` to enable.
|
|
1291
|
-
{ENDIF}
|
|
1292
|
-
|
|
1293
|
-
{IF hasUncommittedChanges}
|
|
1294
|
-
⚠️ You have uncommitted changes
|
|
1295
|
-
|
|
1296
|
-
Next: Commit your work or continue coding
|
|
1297
|
-
{ELSE}
|
|
1298
|
-
✨ Repository is clean!
|
|
1299
|
-
|
|
1300
|
-
Next: /p:task "your next task"
|
|
1301
|
-
{ENDIF}
|
|
1302
|
-
```
|
|
1303
|
-
|
|
1304
|
-
---
|
|
1305
|
-
|
|
1306
|
-
## Error Handling
|
|
1307
|
-
|
|
1308
|
-
| Error | Response | Action |
|
|
1309
|
-
|-------|----------|--------|
|
|
1310
|
-
| No config | "No prjct project" | STOP |
|
|
1311
|
-
| Not a git repo | "Not a git repository" | WARN, continue without git |
|
|
1312
|
-
| No commits | Use defaults | CONTINUE |
|
|
1313
|
-
| File read error | Skip that file | CONTINUE |
|
|
1314
|
-
|
|
1315
|
-
---
|
|
1316
10
|
|
|
1317
|
-
|
|
11
|
+
CLI handles: git analysis, context generation, agents, skills.
|
|
1318
12
|
|
|
13
|
+
**Output**:
|
|
1319
14
|
```
|
|
1320
|
-
|
|
1321
|
-
├── storage/ # Source of Truth (JSON)
|
|
1322
|
-
│ ├── state.json # Current + paused task
|
|
1323
|
-
│ ├── queue.json # Task queue
|
|
1324
|
-
│ ├── ideas.json # Ideas list
|
|
1325
|
-
│ └── shipped.json # Shipped features
|
|
1326
|
-
├── context/ # For Claude (MD)
|
|
1327
|
-
│ ├── CLAUDE.md # Full context
|
|
1328
|
-
│ ├── now.md # Current task
|
|
1329
|
-
│ ├── next.md # Queue
|
|
1330
|
-
│ ├── ideas.md # Ideas
|
|
1331
|
-
│ └── shipped.md # Shipped
|
|
1332
|
-
├── config/ # Configuration (NEW)
|
|
1333
|
-
│ └── skills.json # Agent-to-skill mappings
|
|
1334
|
-
├── sync/ # Backend Sync
|
|
1335
|
-
│ └── pending.json # Events queue
|
|
1336
|
-
├── agents/ # Specialists
|
|
1337
|
-
├── memory/ # Audit Trail
|
|
1338
|
-
│ └── events.jsonl
|
|
1339
|
-
└── project.json # Metadata
|
|
15
|
+
✅ Synced: {projectName}
|
|
1340
16
|
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
├── prjct-planner.md # /p:plan, /p:prd, /p:spec
|
|
1344
|
-
├── prjct-shipper.md # /p:ship
|
|
1345
|
-
├── frontend.md # (if React/Vue/Angular detected)
|
|
1346
|
-
├── backend.md # (if Node/Go/Python API detected)
|
|
1347
|
-
├── database.md # (if DB detected)
|
|
1348
|
-
├── devops.md # (if Docker/K8s detected)
|
|
1349
|
-
├── testing.md # (if test framework detected)
|
|
1350
|
-
└── uxui.md # (if ANY frontend UI detected)
|
|
17
|
+
Ecosystem: {ecosystem}
|
|
18
|
+
Agents: {count} generated
|
|
1351
19
|
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
│ └── scripts/ # Optional: helper scripts
|
|
1356
|
-
│ └── references/ # Optional: documentation
|
|
20
|
+
Next:
|
|
21
|
+
- Start work → `p. task "description"`
|
|
22
|
+
- See queue → `p. next`
|
|
1357
23
|
```
|