docs: update paths after 2026-06-06 repo consolidation
Repos consolidated under ~/src/blockninja/ parent (collection, not monorepo). This repo moved from ~/src/core to ~/src/blockninja/core. Updates historical plan/audit docs that referenced the old paths. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
af7f44c34d
commit
48c54814ec
@ -16,7 +16,7 @@ Date: 2026-06-03
|
||||
|
||||
Execute each item against a freshly-rebuilt orchestrator (`podman compose
|
||||
build orchestrator-backend && podman compose up -d orchestrator-backend`)
|
||||
and a freshly-reinstalled CLI (`go install ./cmd/ninja` from `~/src/core`).
|
||||
and a freshly-reinstalled CLI (`go install ./cmd/ninja` from `~/src/blockninja/core`).
|
||||
For each item, capture the actual output/observation next to the
|
||||
expectation. Mark a checkbox ONLY after observing the success criterion
|
||||
with your own eyes.
|
||||
@ -244,14 +244,14 @@ uses; commands assume access via `podman exec blockninja-db psql -U orchestrator
|
||||
|
||||
- [x] Run:
|
||||
```bash
|
||||
ls ~/src/orchestrator/backend/internal/registry/ 2>&1
|
||||
ls ~/src/blockninja/orchestrator/backend/internal/registry/ 2>&1
|
||||
```
|
||||
- [x] Output does NOT include a `git` directory.
|
||||
- [x] `grep -r "internal/registry/git" ~/src/orchestrator/backend/ 2>/dev/null | grep -v "^Binary"` returns nothing.
|
||||
- [x] `grep -r "internal/registry/git" ~/src/blockninja/orchestrator/backend/ 2>/dev/null | grep -v "^Binary"` returns nothing.
|
||||
|
||||
### D3. `RegistryGitPath` config is gone
|
||||
|
||||
- [x] Run `grep -n "RegistryGitPath\|REGISTRY_GIT_PATH" ~/src/orchestrator/backend/internal/config/config.go`.
|
||||
- [x] Run `grep -n "RegistryGitPath\|REGISTRY_GIT_PATH" ~/src/blockninja/orchestrator/backend/internal/config/config.go`.
|
||||
- [x] Output is empty.
|
||||
|
||||
### D4. `registry_versions.git_commit` / `git_tag` columns are gone
|
||||
@ -264,14 +264,14 @@ uses; commands assume access via `podman exec blockninja-db psql -U orchestrator
|
||||
|
||||
### D5. `Plugin.git_remote_url` is not in the proto
|
||||
|
||||
- [x] Run `grep -n "git_remote_url\|GitRemoteUrl" ~/src/orchestrator/proto/orchestrator/v1/plugin_registry.proto ~/src/core/proto/orchestrator/v1/plugin_registry.proto`.
|
||||
- [x] Run `grep -n "git_remote_url\|GitRemoteUrl" ~/src/blockninja/orchestrator/proto/orchestrator/v1/plugin_registry.proto ~/src/blockninja/core/proto/orchestrator/v1/plugin_registry.proto`.
|
||||
- [x] No matches.
|
||||
|
||||
### D6. The CLI no longer references the `ninja` git remote
|
||||
|
||||
- [x] Run `grep -nE 'remote\s+(add|remove)\s+"?ninja' ~/src/core/cmd/ninja/cmd/plugin.go`.
|
||||
- [x] Run `grep -nE 'remote\s+(add|remove)\s+"?ninja' ~/src/blockninja/core/cmd/ninja/cmd/plugin.go`.
|
||||
- [x] No matches.
|
||||
- [x] Run `grep -nE '"git",\s*"push",\s*"ninja"' ~/src/core/cmd/ninja/cmd/plugin.go`.
|
||||
- [x] Run `grep -nE '"git",\s*"push",\s*"ninja"' ~/src/blockninja/core/cmd/ninja/cmd/plugin.go`.
|
||||
- [x] No matches.
|
||||
|
||||
---
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# Execution prompt — Plugin publish (tarball) + categories
|
||||
|
||||
Copy the body below verbatim into a new Claude Code session at the repo
|
||||
root (`~/src/core`) when you want execution to start. The prompt is
|
||||
root (`~/src/blockninja/core`) when you want execution to start. The prompt is
|
||||
self-contained: anyone reading it should be able to drive the work end
|
||||
to end without further context.
|
||||
|
||||
@ -16,17 +16,17 @@ the process below in order. Do not skip steps. Do not improvise.
|
||||
### 1. Required reading (in this order)
|
||||
|
||||
Read these three files fully before touching any code. Treat each as
|
||||
authoritative for its purpose. They live in `~/src/core`:
|
||||
authoritative for its purpose. They live in `~/src/blockninja/core`:
|
||||
|
||||
1. **Spec / design** — `docs/superpowers/specs/2026-06-03-plugin-publish-and-categories-design.md`. Defines *what* and *why*. Do not change this without the user's explicit OK.
|
||||
2. **Plan** — `docs/superpowers/plans/2026-06-03-plugin-publish-and-categories.md`. Defines the ordered, bite-sized tasks with full code blocks. Do not change this without the user's explicit OK either. Each task ends with a commit.
|
||||
3. **UAT checklist** — `docs/superpowers/audits/2026-06-03-plugin-publish-and-categories-uat.md`. The hard gate. The work is NOT done until every UAT item has been observed to pass with your own eyes. The UAT may not be softened, skipped, or interpreted away. If any item turns out to be ambiguous or impossible, STOP and ask the user.
|
||||
|
||||
Also be aware: work spans TWO git repos.
|
||||
- `~/src/core` — Go module `git.dev.alexdunmow.com/block/core`. Holds the ninja CLI (`cmd/ninja/`), the SDK (`plugin/`), and a mirrored copy of the orchestrator proto under `proto/` + `internal/api/`.
|
||||
- `~/src/orchestrator` — Go module at `backend/`. Holds the orchestrator service, schema, migrations, and proto source of truth.
|
||||
- `~/src/blockninja/core` — Go module `git.dev.alexdunmow.com/block/core`. Holds the ninja CLI (`cmd/ninja/`), the SDK (`plugin/`), and a mirrored copy of the orchestrator proto under `proto/` + `internal/api/`.
|
||||
- `~/src/blockninja/orchestrator` — Go module at `backend/`. Holds the orchestrator service, schema, migrations, and proto source of truth.
|
||||
|
||||
CLAUDE.md in each repo applies. Read `~/src/core/CLAUDE.md` if you have not (key rule: no `replace` directives in any `go.mod`).
|
||||
CLAUDE.md in each repo applies. Read `~/src/blockninja/core/CLAUDE.md` if you have not (key rule: no `replace` directives in any `go.mod`).
|
||||
|
||||
### 2. Process
|
||||
|
||||
@ -79,7 +79,7 @@ top to bottom. For each box:
|
||||
- Run the command(s) the item specifies, against the actual orchestrator
|
||||
(you may need to `podman compose build orchestrator-backend &&
|
||||
podman compose up -d orchestrator-backend` first) and the actual
|
||||
installed CLI (`cd ~/src/core && go install ./cmd/ninja`).
|
||||
installed CLI (`cd ~/src/blockninja/core && go install ./cmd/ninja`).
|
||||
- Observe the result with your own eyes.
|
||||
- Tick the box ONLY if the observation matches the expectation.
|
||||
- If it doesn't match: do not tick. Return to the plan, identify which
|
||||
|
||||
@ -9,8 +9,8 @@
|
||||
**Tech Stack:** Go (orchestrator backend + ninja CLI), Connect RPC over HTTP, Postgres + sqlc + goose, klauspost/compress/zstd, stdlib `archive/tar`.
|
||||
|
||||
**Repos involved:**
|
||||
- `~/src/orchestrator` (backend module at `backend/`)
|
||||
- `~/src/core` (ninja CLI at `cmd/ninja/`, SDK at `plugin/`)
|
||||
- `~/src/blockninja/orchestrator` (backend module at `backend/`)
|
||||
- `~/src/blockninja/core` (ninja CLI at `cmd/ninja/`, SDK at `plugin/`)
|
||||
|
||||
Tasks are tagged `[orch]` or `[core]` to indicate which repo they live in. Proto change tasks touch both repos.
|
||||
|
||||
@ -18,7 +18,7 @@ Tasks are tagged `[orch]` or `[core]` to indicate which repo they live in. Proto
|
||||
|
||||
## File Structure
|
||||
|
||||
**`~/src/orchestrator/backend/` changes:**
|
||||
**`~/src/blockninja/orchestrator/backend/` changes:**
|
||||
- Create: `internal/registry/archive/archive.go` — pure helpers: open tar.zst, walk to `plugin.mod`, enforce size caps.
|
||||
- Create: `internal/registry/archive/archive_test.go`
|
||||
- Create: `internal/registry/api/category.go` — `ListCategories` handler.
|
||||
@ -38,7 +38,7 @@ Tasks are tagged `[orch]` or `[core]` to indicate which repo they live in. Proto
|
||||
- Auto-regen: `internal/db/*.sql.go` via `make sqlc`.
|
||||
- Auto-regen: `sql/schema.sql` via `make schema`.
|
||||
|
||||
**`~/src/core/` changes:**
|
||||
**`~/src/blockninja/core/` changes:**
|
||||
- Create: `cmd/ninja/internal/archive/archive.go` — pure helper to build `tar.zst` from `git archive HEAD`.
|
||||
- Create: `cmd/ninja/internal/archive/archive_test.go`
|
||||
- Modify: `proto/orchestrator/v1/plugin_registry.proto` — mirror orchestrator's proto changes.
|
||||
@ -54,12 +54,12 @@ Tasks are tagged `[orch]` or `[core]` to indicate which repo they live in. Proto
|
||||
## Task 1: [core] Add klauspost/compress dependency
|
||||
|
||||
**Files:**
|
||||
- Modify: `~/src/core/go.mod`, `~/src/core/go.sum`
|
||||
- Modify: `~/src/blockninja/core/go.mod`, `~/src/blockninja/core/go.sum`
|
||||
|
||||
- [ ] **Step 1: Fetch the dep**
|
||||
|
||||
```bash
|
||||
cd ~/src/core
|
||||
cd ~/src/blockninja/core
|
||||
go get github.com/klauspost/compress/zstd@latest
|
||||
go mod tidy
|
||||
```
|
||||
@ -81,12 +81,12 @@ git commit -m "chore(core): add klauspost/compress for plugin archive zstd"
|
||||
## Task 2: [orch] Add klauspost/compress dependency
|
||||
|
||||
**Files:**
|
||||
- Modify: `~/src/orchestrator/backend/go.mod`, `~/src/orchestrator/backend/go.sum`
|
||||
- Modify: `~/src/blockninja/orchestrator/backend/go.mod`, `~/src/blockninja/orchestrator/backend/go.sum`
|
||||
|
||||
- [ ] **Step 1: Fetch the dep**
|
||||
|
||||
```bash
|
||||
cd ~/src/orchestrator/backend
|
||||
cd ~/src/blockninja/orchestrator/backend
|
||||
go get github.com/klauspost/compress/zstd@latest
|
||||
go mod tidy
|
||||
```
|
||||
@ -112,12 +112,12 @@ through zstd. Returns the compressed bytes. Lives in
|
||||
`cmd/ninja/internal/archive/` so the CLI can use it but nothing else.
|
||||
|
||||
**Files:**
|
||||
- Create: `~/src/core/cmd/ninja/internal/archive/archive.go`
|
||||
- Create: `~/src/core/cmd/ninja/internal/archive/archive_test.go`
|
||||
- Create: `~/src/blockninja/core/cmd/ninja/internal/archive/archive.go`
|
||||
- Create: `~/src/blockninja/core/cmd/ninja/internal/archive/archive_test.go`
|
||||
|
||||
- [ ] **Step 1: Write the failing test**
|
||||
|
||||
`~/src/core/cmd/ninja/internal/archive/archive_test.go`:
|
||||
`~/src/blockninja/core/cmd/ninja/internal/archive/archive_test.go`:
|
||||
|
||||
```go
|
||||
package archive
|
||||
@ -214,14 +214,14 @@ func keys(m map[string]string) []string {
|
||||
- [ ] **Step 2: Run test to verify it fails**
|
||||
|
||||
```bash
|
||||
cd ~/src/core
|
||||
cd ~/src/blockninja/core
|
||||
go test ./cmd/ninja/internal/archive/...
|
||||
```
|
||||
Expected: FAIL — package doesn't exist yet.
|
||||
|
||||
- [ ] **Step 3: Implement**
|
||||
|
||||
`~/src/core/cmd/ninja/internal/archive/archive.go`:
|
||||
`~/src/blockninja/core/cmd/ninja/internal/archive/archive.go`:
|
||||
|
||||
```go
|
||||
package archive
|
||||
@ -288,12 +288,12 @@ decompresses, walks the tar, extracts `plugin.mod`, and returns parsed
|
||||
contents.
|
||||
|
||||
**Files:**
|
||||
- Create: `~/src/orchestrator/backend/internal/registry/archive/archive.go`
|
||||
- Create: `~/src/orchestrator/backend/internal/registry/archive/archive_test.go`
|
||||
- Create: `~/src/blockninja/orchestrator/backend/internal/registry/archive/archive.go`
|
||||
- Create: `~/src/blockninja/orchestrator/backend/internal/registry/archive/archive_test.go`
|
||||
|
||||
- [ ] **Step 1: Write the failing test**
|
||||
|
||||
`~/src/orchestrator/backend/internal/registry/archive/archive_test.go`:
|
||||
`~/src/blockninja/orchestrator/backend/internal/registry/archive/archive_test.go`:
|
||||
|
||||
```go
|
||||
package archive
|
||||
@ -374,14 +374,14 @@ func TestOpenAndValidate_RejectsDecompressionBomb(t *testing.T) {
|
||||
- [ ] **Step 2: Run test to verify failure**
|
||||
|
||||
```bash
|
||||
cd ~/src/orchestrator/backend
|
||||
cd ~/src/blockninja/orchestrator/backend
|
||||
go test ./internal/registry/archive/...
|
||||
```
|
||||
Expected: FAIL — package doesn't exist.
|
||||
|
||||
- [ ] **Step 3: Implement**
|
||||
|
||||
`~/src/orchestrator/backend/internal/registry/archive/archive.go`:
|
||||
`~/src/blockninja/orchestrator/backend/internal/registry/archive/archive.go`:
|
||||
|
||||
```go
|
||||
package archive
|
||||
@ -475,10 +475,10 @@ Goose migration that drops `git_commit` and `git_tag` columns on
|
||||
`registry_versions`. These are not used after the publish flow change.
|
||||
|
||||
**Files:**
|
||||
- Create: `~/src/orchestrator/backend/sql/migrations/00055_drop_publish_git_fields.sql`
|
||||
- Modify: `~/src/orchestrator/backend/sql/queries/registry_versions.sql`
|
||||
- Modify: `~/src/orchestrator/backend/sql/schema.sql` (auto via `make schema`)
|
||||
- Regen: `~/src/orchestrator/backend/internal/db/*.sql.go` (auto via `make sqlc`)
|
||||
- Create: `~/src/blockninja/orchestrator/backend/sql/migrations/00055_drop_publish_git_fields.sql`
|
||||
- Modify: `~/src/blockninja/orchestrator/backend/sql/queries/registry_versions.sql`
|
||||
- Modify: `~/src/blockninja/orchestrator/backend/sql/schema.sql` (auto via `make schema`)
|
||||
- Regen: `~/src/blockninja/orchestrator/backend/internal/db/*.sql.go` (auto via `make sqlc`)
|
||||
|
||||
- [ ] **Step 1: Write the migration**
|
||||
|
||||
@ -521,7 +521,7 @@ Renumber the placeholders accordingly.
|
||||
- [ ] **Step 3: Run the migration**
|
||||
|
||||
```bash
|
||||
cd ~/src/orchestrator/backend
|
||||
cd ~/src/blockninja/orchestrator/backend
|
||||
make migrate
|
||||
```
|
||||
Expected: migrations applied through `00055`.
|
||||
@ -558,14 +558,14 @@ git commit -m "feat(orch): drop git_commit/git_tag from registry_versions"
|
||||
`PublishVersionRequest` drops `git_ref` and gains `string version` + `bytes archive`. `CreatePluginResponse` drops `git_remote_url`. Apply in both proto files and regen.
|
||||
|
||||
**Files:**
|
||||
- Modify: `~/src/orchestrator/proto/orchestrator/v1/plugin_registry.proto`
|
||||
- Modify: `~/src/core/proto/orchestrator/v1/plugin_registry.proto`
|
||||
- Regen: `~/src/orchestrator/backend/api/orchestrator/v1/plugin_registry.pb.go` + connect file (via `cd ~/src/orchestrator && make -C backend proto` or `buf generate`)
|
||||
- Regen: `~/src/core/internal/api/orchestrator/v1/plugin_registry.pb.go` + connect file (via `cd ~/src/core && buf generate`)
|
||||
- Modify: `~/src/blockninja/orchestrator/proto/orchestrator/v1/plugin_registry.proto`
|
||||
- Modify: `~/src/blockninja/core/proto/orchestrator/v1/plugin_registry.proto`
|
||||
- Regen: `~/src/blockninja/orchestrator/backend/api/orchestrator/v1/plugin_registry.pb.go` + connect file (via `cd ~/src/blockninja/orchestrator && make -C backend proto` or `buf generate`)
|
||||
- Regen: `~/src/blockninja/core/internal/api/orchestrator/v1/plugin_registry.pb.go` + connect file (via `cd ~/src/blockninja/core && buf generate`)
|
||||
|
||||
- [ ] **Step 1: Edit orchestrator proto**
|
||||
|
||||
In `~/src/orchestrator/proto/orchestrator/v1/plugin_registry.proto`, replace:
|
||||
In `~/src/blockninja/orchestrator/proto/orchestrator/v1/plugin_registry.proto`, replace:
|
||||
|
||||
```proto
|
||||
message CreatePluginResponse {
|
||||
@ -609,12 +609,12 @@ message PublishVersionRequest {
|
||||
|
||||
- [ ] **Step 2: Mirror to core proto**
|
||||
|
||||
Apply the identical changes to `~/src/core/proto/orchestrator/v1/plugin_registry.proto`. (Note: the two protos have small drift — keep core's drift intact and apply only the two diffs above.)
|
||||
Apply the identical changes to `~/src/blockninja/core/proto/orchestrator/v1/plugin_registry.proto`. (Note: the two protos have small drift — keep core's drift intact and apply only the two diffs above.)
|
||||
|
||||
- [ ] **Step 3: Regen orchestrator**
|
||||
|
||||
```bash
|
||||
cd ~/src/orchestrator
|
||||
cd ~/src/blockninja/orchestrator
|
||||
make -C backend proto
|
||||
```
|
||||
Expected: `backend/api/orchestrator/v1/plugin_registry.pb.go` regenerated.
|
||||
@ -622,7 +622,7 @@ Expected: `backend/api/orchestrator/v1/plugin_registry.pb.go` regenerated.
|
||||
- [ ] **Step 4: Regen core**
|
||||
|
||||
```bash
|
||||
cd ~/src/core
|
||||
cd ~/src/blockninja/core
|
||||
buf generate
|
||||
```
|
||||
Expected: `internal/api/orchestrator/v1/plugin_registry.pb.go` regenerated.
|
||||
@ -631,14 +631,14 @@ Expected: `internal/api/orchestrator/v1/plugin_registry.pb.go` regenerated.
|
||||
|
||||
In orchestrator:
|
||||
```bash
|
||||
cd ~/src/orchestrator
|
||||
cd ~/src/blockninja/orchestrator
|
||||
git add proto/ backend/api/ frontend/src/lib/api/gen/
|
||||
git commit -m "feat(orch): PublishVersionRequest takes bytes archive; drop git_remote_url"
|
||||
```
|
||||
|
||||
In core:
|
||||
```bash
|
||||
cd ~/src/core
|
||||
cd ~/src/blockninja/core
|
||||
git add proto/ internal/api/
|
||||
git commit -m "feat(core): mirror PublishVersionRequest archive bytes proto change"
|
||||
```
|
||||
@ -650,12 +650,12 @@ extract `plugin.mod`, cross-check fields, store via `regstorage`, record
|
||||
the version. No git, no `repos`, no tag.
|
||||
|
||||
**Files:**
|
||||
- Modify: `~/src/orchestrator/backend/internal/registry/api/publish.go`
|
||||
- Modify: `~/src/orchestrator/backend/internal/registry/api/converters.go`
|
||||
- Modify: `~/src/blockninja/orchestrator/backend/internal/registry/api/publish.go`
|
||||
- Modify: `~/src/blockninja/orchestrator/backend/internal/registry/api/converters.go`
|
||||
|
||||
- [ ] **Step 1: Replace publish.go contents**
|
||||
|
||||
Open `~/src/orchestrator/backend/internal/registry/api/publish.go` and replace its contents with:
|
||||
Open `~/src/blockninja/orchestrator/backend/internal/registry/api/publish.go` and replace its contents with:
|
||||
|
||||
```go
|
||||
package api
|
||||
@ -861,7 +861,7 @@ func splitRef(ref string) (scope, name string, ok bool) {
|
||||
|
||||
- [ ] **Step 2: Update `versionToProto` to drop git fields**
|
||||
|
||||
In `~/src/orchestrator/backend/internal/registry/api/converters.go`, replace `versionToProto` with:
|
||||
In `~/src/blockninja/orchestrator/backend/internal/registry/api/converters.go`, replace `versionToProto` with:
|
||||
|
||||
```go
|
||||
func versionToProto(v db.RegistryVersion) *orchestratorv1.Version {
|
||||
@ -887,7 +887,7 @@ Go back to Task 6 and add: remove `string git_commit = 4;` and `string git_tag =
|
||||
- [ ] **Step 3: Verify build**
|
||||
|
||||
```bash
|
||||
cd ~/src/orchestrator/backend
|
||||
cd ~/src/blockninja/orchestrator/backend
|
||||
go build ./...
|
||||
```
|
||||
Expected: clean (Task 5's `git_commit`/`git_tag` references now resolved by the new converter).
|
||||
@ -909,7 +909,7 @@ git commit -m "feat(orch): rewrite PublishVersion to use tar.zst archive"
|
||||
## Task 8: [orch] Drop `git_remote_url` and update `CreatePlugin` handler
|
||||
|
||||
**Files:**
|
||||
- Modify: `~/src/orchestrator/backend/internal/registry/api/plugin.go`
|
||||
- Modify: `~/src/blockninja/orchestrator/backend/internal/registry/api/plugin.go`
|
||||
|
||||
- [ ] **Step 1: Remove `git_remote_url` from CreatePlugin response**
|
||||
|
||||
@ -981,14 +981,14 @@ git commit -m "feat(orch): drop GitRemoteUrl from CreatePlugin response"
|
||||
## Task 9: [orch] Delete `internal/registry/git/`, wiring + config cleanup
|
||||
|
||||
**Files:**
|
||||
- Delete: `~/src/orchestrator/backend/internal/registry/git/` (entire directory)
|
||||
- Modify: `~/src/orchestrator/backend/internal/server/registry_wiring.go`
|
||||
- Modify: `~/src/orchestrator/backend/internal/config/config.go`
|
||||
- Delete: `~/src/blockninja/orchestrator/backend/internal/registry/git/` (entire directory)
|
||||
- Modify: `~/src/blockninja/orchestrator/backend/internal/server/registry_wiring.go`
|
||||
- Modify: `~/src/blockninja/orchestrator/backend/internal/config/config.go`
|
||||
|
||||
- [ ] **Step 1: Delete the git package**
|
||||
|
||||
```bash
|
||||
cd ~/src/orchestrator/backend
|
||||
cd ~/src/blockninja/orchestrator/backend
|
||||
git rm -r internal/registry/git/
|
||||
```
|
||||
|
||||
@ -1143,11 +1143,11 @@ git commit -m "feat(orch): delete registry/git package, drop /git route and Regi
|
||||
## Task 10: [core] Rewrite `publish` CLI command
|
||||
|
||||
**Files:**
|
||||
- Modify: `~/src/core/cmd/ninja/cmd/plugin.go` (the `newPluginPublishCmd` function)
|
||||
- Modify: `~/src/blockninja/core/cmd/ninja/cmd/plugin.go` (the `newPluginPublishCmd` function)
|
||||
|
||||
- [ ] **Step 1: Replace `newPluginPublishCmd`**
|
||||
|
||||
In `~/src/core/cmd/ninja/cmd/plugin.go`, replace `newPluginPublishCmd` with:
|
||||
In `~/src/blockninja/core/cmd/ninja/cmd/plugin.go`, replace `newPluginPublishCmd` with:
|
||||
|
||||
```go
|
||||
func newPluginPublishCmd() *cobra.Command {
|
||||
@ -1238,7 +1238,7 @@ At the top of `plugin.go`, add to the imports:
|
||||
- [ ] **Step 3: Verify build**
|
||||
|
||||
```bash
|
||||
cd ~/src/core
|
||||
cd ~/src/blockninja/core
|
||||
go build ./...
|
||||
```
|
||||
Expected: clean.
|
||||
@ -1260,7 +1260,7 @@ git commit -m "feat(cli): rewrite plugin publish to send tar.zst archive"
|
||||
## Task 11: [core] Rewrite `init` CLI command (auto-commit, no remote)
|
||||
|
||||
**Files:**
|
||||
- Modify: `~/src/core/cmd/ninja/cmd/plugin.go` (the `newPluginInitCmd` function and the closing of the git-repo block)
|
||||
- Modify: `~/src/blockninja/core/cmd/ninja/cmd/plugin.go` (the `newPluginInitCmd` function and the closing of the git-repo block)
|
||||
|
||||
- [ ] **Step 1: Replace the git-repo block**
|
||||
|
||||
@ -1333,7 +1333,7 @@ func autoCommitPluginMod() error {
|
||||
- [ ] **Step 3: Verify build**
|
||||
|
||||
```bash
|
||||
cd ~/src/core
|
||||
cd ~/src/blockninja/core
|
||||
go build ./...
|
||||
```
|
||||
Expected: clean.
|
||||
@ -1360,7 +1360,7 @@ This is verification only — no commit.
|
||||
- [ ] **Step 1: Restart the orchestrator**
|
||||
|
||||
```bash
|
||||
cd ~/src/orchestrator
|
||||
cd ~/src/blockninja/orchestrator
|
||||
podman compose build orchestrator-backend
|
||||
podman compose up -d orchestrator-backend
|
||||
```
|
||||
@ -1416,13 +1416,13 @@ rm -rf /tmp/smokeplugin
|
||||
## Task 13: [core] Add `Kind` and `Categories` to `ModFile` + update `writeMod`
|
||||
|
||||
**Files:**
|
||||
- Modify: `~/src/core/plugin/mod.go`
|
||||
- Modify: `~/src/core/plugin/mod_test.go`
|
||||
- Modify: `~/src/core/cmd/ninja/cmd/plugin.go` (the `writeMod` helper)
|
||||
- Modify: `~/src/blockninja/core/plugin/mod.go`
|
||||
- Modify: `~/src/blockninja/core/plugin/mod_test.go`
|
||||
- Modify: `~/src/blockninja/core/cmd/ninja/cmd/plugin.go` (the `writeMod` helper)
|
||||
|
||||
- [ ] **Step 1: Add the new test cases**
|
||||
|
||||
Append to `~/src/core/plugin/mod_test.go`:
|
||||
Append to `~/src/blockninja/core/plugin/mod_test.go`:
|
||||
|
||||
```go
|
||||
func TestParseModFull_KindAndCategories(t *testing.T) {
|
||||
@ -1465,14 +1465,14 @@ version = "0.1.0"
|
||||
- [ ] **Step 2: Run tests to verify failure**
|
||||
|
||||
```bash
|
||||
cd ~/src/core
|
||||
cd ~/src/blockninja/core
|
||||
go test ./plugin/...
|
||||
```
|
||||
Expected: FAIL — `Kind`/`Categories` fields don't exist yet.
|
||||
|
||||
- [ ] **Step 3: Add fields to `ModPlugin`**
|
||||
|
||||
In `~/src/core/plugin/mod.go`, replace `ModPlugin` with:
|
||||
In `~/src/blockninja/core/plugin/mod.go`, replace `ModPlugin` with:
|
||||
|
||||
```go
|
||||
type ModPlugin struct {
|
||||
@ -1493,7 +1493,7 @@ Expected: PASS.
|
||||
|
||||
- [ ] **Step 5: Update `writeMod` to emit new fields**
|
||||
|
||||
In `~/src/core/cmd/ninja/cmd/plugin.go`, replace `writeMod` with:
|
||||
In `~/src/blockninja/core/cmd/ninja/cmd/plugin.go`, replace `writeMod` with:
|
||||
|
||||
```go
|
||||
func writeMod(path string, m *core.ModFile) error {
|
||||
@ -1542,10 +1542,10 @@ git commit -m "feat(sdk): add Kind and Categories to ModPlugin; writeMod emits t
|
||||
## Task 14: [orch] Migration — add `kind` to registry_plugins + new `registry_categories` table
|
||||
|
||||
**Files:**
|
||||
- Create: `~/src/orchestrator/backend/sql/migrations/00056_plugin_kind_and_categories.sql`
|
||||
- Create: `~/src/orchestrator/backend/sql/queries/registry_categories.sql`
|
||||
- Modify: `~/src/orchestrator/backend/sql/queries/registry_plugins.sql` (add kind handling)
|
||||
- Auto-regen: `~/src/orchestrator/backend/sql/schema.sql` and `~/src/orchestrator/backend/internal/db/*.sql.go`
|
||||
- Create: `~/src/blockninja/orchestrator/backend/sql/migrations/00056_plugin_kind_and_categories.sql`
|
||||
- Create: `~/src/blockninja/orchestrator/backend/sql/queries/registry_categories.sql`
|
||||
- Modify: `~/src/blockninja/orchestrator/backend/sql/queries/registry_plugins.sql` (add kind handling)
|
||||
- Auto-regen: `~/src/blockninja/orchestrator/backend/sql/schema.sql` and `~/src/blockninja/orchestrator/backend/internal/db/*.sql.go`
|
||||
|
||||
- [ ] **Step 1: Write the migration**
|
||||
|
||||
@ -1633,7 +1633,7 @@ new optional params.)
|
||||
- [ ] **Step 4: Run the migration**
|
||||
|
||||
```bash
|
||||
cd ~/src/orchestrator/backend
|
||||
cd ~/src/blockninja/orchestrator/backend
|
||||
make migrate
|
||||
```
|
||||
Expected: applied through `00056`.
|
||||
@ -1664,8 +1664,8 @@ git commit -m "feat(orch): add plugin kind and registry_categories with seed"
|
||||
## Task 15: Proto change — `Plugin.kind`, request fields, `ListCategories` RPC
|
||||
|
||||
**Files:**
|
||||
- Modify: `~/src/orchestrator/proto/orchestrator/v1/plugin_registry.proto`
|
||||
- Modify: `~/src/core/proto/orchestrator/v1/plugin_registry.proto`
|
||||
- Modify: `~/src/blockninja/orchestrator/proto/orchestrator/v1/plugin_registry.proto`
|
||||
- Modify: `~/src/blockninja/core/proto/orchestrator/v1/plugin_registry.proto`
|
||||
- Regen on both repos.
|
||||
|
||||
- [ ] **Step 1: Edit orchestrator proto — `Plugin` gains `kind`**
|
||||
@ -1742,19 +1742,19 @@ message ListCategoriesResponse { repeated Category categories = 1; }
|
||||
|
||||
- [ ] **Step 5: Mirror all 4 edits to core's proto**
|
||||
|
||||
Apply the identical changes to `~/src/core/proto/orchestrator/v1/plugin_registry.proto`.
|
||||
Apply the identical changes to `~/src/blockninja/core/proto/orchestrator/v1/plugin_registry.proto`.
|
||||
|
||||
- [ ] **Step 6: Regen orchestrator**
|
||||
|
||||
```bash
|
||||
cd ~/src/orchestrator
|
||||
cd ~/src/blockninja/orchestrator
|
||||
make -C backend proto
|
||||
```
|
||||
|
||||
- [ ] **Step 7: Regen core**
|
||||
|
||||
```bash
|
||||
cd ~/src/core
|
||||
cd ~/src/blockninja/core
|
||||
buf generate
|
||||
```
|
||||
|
||||
@ -1762,14 +1762,14 @@ buf generate
|
||||
|
||||
orchestrator:
|
||||
```bash
|
||||
cd ~/src/orchestrator
|
||||
cd ~/src/blockninja/orchestrator
|
||||
git add proto/ backend/api/ frontend/src/lib/api/gen/
|
||||
git commit -m "feat(orch): proto adds Plugin.kind, ListCategories RPC, filter args"
|
||||
```
|
||||
|
||||
core:
|
||||
```bash
|
||||
cd ~/src/core
|
||||
cd ~/src/blockninja/core
|
||||
git add proto/ internal/api/
|
||||
git commit -m "feat(core): mirror Plugin.kind + ListCategories proto regen"
|
||||
```
|
||||
@ -1777,8 +1777,8 @@ git commit -m "feat(core): mirror Plugin.kind + ListCategories proto regen"
|
||||
## Task 16: [orch] Converters + CreatePlugin + helper for category validation
|
||||
|
||||
**Files:**
|
||||
- Modify: `~/src/orchestrator/backend/internal/registry/api/converters.go`
|
||||
- Modify: `~/src/orchestrator/backend/internal/registry/api/plugin.go`
|
||||
- Modify: `~/src/blockninja/orchestrator/backend/internal/registry/api/converters.go`
|
||||
- Modify: `~/src/blockninja/orchestrator/backend/internal/registry/api/plugin.go`
|
||||
|
||||
- [ ] **Step 1: Update converters to include `Kind`**
|
||||
|
||||
@ -1960,8 +1960,8 @@ git commit -m "feat(orch): CreatePlugin/ListPlugins handle kind and categories"
|
||||
## Task 17: [orch] Add `ListCategories` handler
|
||||
|
||||
**Files:**
|
||||
- Create: `~/src/orchestrator/backend/internal/registry/api/category.go`
|
||||
- Modify: `~/src/orchestrator/backend/internal/registry/api/plugin.go` (add method to `PluginHandler`)
|
||||
- Create: `~/src/blockninja/orchestrator/backend/internal/registry/api/category.go`
|
||||
- Modify: `~/src/blockninja/orchestrator/backend/internal/registry/api/plugin.go` (add method to `PluginHandler`)
|
||||
|
||||
- [ ] **Step 1: Add the handler method**
|
||||
|
||||
@ -2007,7 +2007,7 @@ The published `plugin.mod` must agree with `registry_plugins` on `kind` and
|
||||
plugin across versions.
|
||||
|
||||
**Files:**
|
||||
- Modify: `~/src/orchestrator/backend/internal/registry/api/publish.go`
|
||||
- Modify: `~/src/blockninja/orchestrator/backend/internal/registry/api/publish.go`
|
||||
|
||||
- [ ] **Step 1: Add the cross-check**
|
||||
|
||||
@ -2067,7 +2067,7 @@ git commit -m "feat(orch): publish cross-checks plugin.mod kind/categories again
|
||||
## Task 19: [core] CLI `init` prompts for kind and categories
|
||||
|
||||
**Files:**
|
||||
- Modify: `~/src/core/cmd/ninja/cmd/plugin.go`
|
||||
- Modify: `~/src/blockninja/core/cmd/ninja/cmd/plugin.go`
|
||||
|
||||
- [ ] **Step 1: Add a `promptKind` helper**
|
||||
|
||||
@ -2195,7 +2195,7 @@ if err := upsertPluginMod(scope, name, kind, cats); err != nil {
|
||||
- [ ] **Step 4: Verify build**
|
||||
|
||||
```bash
|
||||
cd ~/src/core
|
||||
cd ~/src/blockninja/core
|
||||
go build ./...
|
||||
```
|
||||
Expected: clean.
|
||||
@ -2218,7 +2218,7 @@ git commit -m "feat(cli): init prompts for kind and categories"
|
||||
- [ ] **Step 1: Restart orchestrator**
|
||||
|
||||
```bash
|
||||
cd ~/src/orchestrator
|
||||
cd ~/src/blockninja/orchestrator
|
||||
podman compose build orchestrator-backend
|
||||
podman compose up -d orchestrator-backend
|
||||
```
|
||||
@ -2316,7 +2316,7 @@ warning if non-empty. Spec calls for this; plan didn't include it. Adding now:
|
||||
|
||||
### Task 11.5: [core] Publish-time warning for tracked-yet-gitignored files
|
||||
|
||||
**Files:** Modify `~/src/core/cmd/ninja/cmd/plugin.go` (the publish command).
|
||||
**Files:** Modify `~/src/blockninja/core/cmd/ninja/cmd/plugin.go` (the publish command).
|
||||
|
||||
- [ ] **Step 1:** After the working-tree-clean check and before `BuildSourceArchive`, insert:
|
||||
|
||||
@ -2334,7 +2334,7 @@ if names := strings.TrimSpace(string(out)); names != "" {
|
||||
- [ ] **Step 2:** Build and reinstall.
|
||||
|
||||
```bash
|
||||
cd ~/src/core
|
||||
cd ~/src/blockninja/core
|
||||
go build ./... && go install ./cmd/ninja
|
||||
```
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user