@bongos/core 1.19.804 → 1.19.805
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/.bongos-core.json +257 -237
- package/.claude/skills/ask-for-help/SKILL.md +6 -6
- package/.claude/skills/backlog-review/SKILL.md +1 -1
- package/.claude/skills/blocker-review/SKILL.md +7 -7
- package/.claude/skills/blocker-solve/SKILL.md +5 -5
- package/.claude/skills/bug-triage/SKILL.md +7 -7
- package/.claude/skills/builder-claim/SKILL.md +3 -3
- package/.claude/skills/builder-cost/SKILL.md +2 -2
- package/.claude/skills/builder-end/SKILL.md +2 -2
- package/.claude/skills/builder-exit/SKILL.md +7 -7
- package/.claude/skills/builder-key/SKILL.md +2 -2
- package/.claude/skills/builder-reauth/SKILL.md +2 -2
- package/.claude/skills/builder-redteam/SKILL.md +7 -7
- package/.claude/skills/builder-release/SKILL.md +2 -2
- package/.claude/skills/builder-sequence/SKILL.md +1 -1
- package/.claude/skills/builder-setup/SKILL.md +3 -3
- package/.claude/skills/builder-ship/SKILL.md +1 -1
- package/.claude/skills/builder-stage/SKILL.md +1 -1
- package/.claude/skills/builder-start/SKILL.md +1 -1
- package/.claude/skills/fix-task/SKILL.md +4 -4
- package/.claude/skills/goal-create/SKILL.md +18 -18
- package/.claude/skills/goal-review/SKILL.md +7 -7
- package/.claude/skills/grade-audit/SKILL.md +5 -5
- package/.claude/skills/grade-recover/SKILL.md +4 -4
- package/.claude/skills/grader-health/SKILL.md +6 -6
- package/.claude/skills/idea-triage/SKILL.md +14 -14
- package/.claude/skills/merge-mode/SKILL.md +3 -3
- package/.claude/skills/planning-session/SKILL.md +20 -20
- package/.claude/skills/priority-session/SKILL.md +10 -10
- package/.claude/skills/recall/SKILL.md +1 -1
- package/.claude/skills/scan-before-install/SKILL.md +3 -3
- package/.claude/skills/status/SKILL.md +2 -2
- package/.claude/skills/strand-fix/SKILL.md +2 -2
- package/clients/bongos-client/README.md +1 -1
- package/clients/bongos-client/bongos-client.global.js +2 -0
- package/clients/bongos-client/index.cjs +2 -0
- package/clients/bongos-client/index.d.ts +2 -0
- package/clients/bongos-client/index.mjs +2 -0
- package/docs/api/openapi.json +45 -11
- package/docs/api-reference.md +11 -10
- package/docs/module-api-changelog.md +2 -0
- package/modules/builder-settings/profile-nudge-prefs.js +1 -1
- package/modules/builder-settings/render-prefs.js +1 -1
- package/modules/dev-box/app/README.md +1 -1
- package/modules/dev-box/app/src/gds-client.js +11 -9
- package/modules/dev-box/app/src/vendor/bongos-client.cjs +2 -0
- package/modules/dev-box/app/test/unit.mjs +13 -13
- package/modules/dev-box/box-access.js +3 -3
- package/modules/dev-box/box-onboard.js +7 -7
- package/modules/discord/bug-attachments.js +1 -1
- package/modules/economy/cost-classify.js +6 -6
- package/modules/grading/grader-rubric.json +1 -1
- package/modules/grading/grader-score.js +1 -1
- package/modules/hall-ui/module.json +1 -1
- package/modules/hall-ui/public/drachmae.js +3 -3
- package/modules/hall-ui/public/idea.js +1 -1
- package/modules/hall-ui/public/md-reader.js +1 -1
- package/modules/hall-ui/public/people.html +1 -1
- package/modules/hall-ui/public/people.js +2 -2
- package/modules/hall-ui/public/primer.js +4 -4
- package/modules/hall-ui/public/roster.js +1 -1
- package/modules/hall-ui/public/shell.js +1 -1
- package/modules/hall-ui/public/task.js +1 -1
- package/modules/ideas/inbox.js +2 -2
- package/modules/lifecycle/db-analytics.js +1 -1
- package/modules/lifecycle/done-when.js +4 -4
- package/modules/lifecycle/version-close.js +1 -1
- package/modules/memory/learnings.js +2 -2
- package/modules/memory/memory.js +1 -1
- package/modules/onboarding/onboarding.js +1 -1
- package/modules/platform-identity/routes/my-projects.js +1 -1
- package/modules/platform-identity/routes/sso.js +2 -2
- package/modules/public-landing/public/index.html +2 -2
- package/modules/public-landing/public/projects-floor.states.json +1 -1
- package/modules/public-landing/public/projects.html +1 -1
- package/modules/public-landing/public/projects.states.json +1 -1
- package/modules/sessions/db.js +120 -0
- package/modules/sessions/module.json +2 -2
- package/modules/sessions/pollers/session-upload-health.js +111 -0
- package/modules/sessions/pulse.js +2 -2
- package/modules/sessions/routes/sessions.js +46 -0
- package/modules/sessions/upload-health.js +197 -0
- package/modules/status-ui/module.json +1 -1
- package/modules/status-ui/public/explore.js +1 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/scripts/gds/agent-invoke.js +3 -3
- package/scripts/gds/api.js +4 -4
- package/scripts/gds/api.sh +1 -1
- package/scripts/gds/architect-audit.js +1 -1
- package/scripts/gds/artifact-audit.js +2 -2
- package/scripts/gds/audit-ships.js +2 -2
- package/scripts/gds/backfill-cost.js +1 -1
- package/scripts/gds/backfill-sessions.js +1 -1
- package/scripts/gds/backfill-subagent-rewards.js +1 -1
- package/scripts/gds/backfill-task-rewards.js +2 -2
- package/scripts/gds/box-auth-check.js +1 -1
- package/scripts/gds/box-sync.js +3 -3
- package/scripts/gds/box.js +10 -10
- package/scripts/gds/build-cli-package.js +3 -3
- package/scripts/gds/capture.js +2 -2
- package/scripts/gds/ci-grade.js +1 -1
- package/scripts/gds/claim-recall.js +2 -2
- package/scripts/gds/cli-lib.js +3 -3
- package/scripts/gds/context-pack.js +1 -1
- package/scripts/gds/copy-apply.js +2 -2
- package/scripts/gds/dev-lib.js +2 -2
- package/scripts/gds/fetch-art-key.js +2 -2
- package/scripts/gds/fetch-sound-prefs.js +3 -3
- package/scripts/gds/grade-smoke.js +1 -1
- package/scripts/gds/hooks/pre-push.js +1 -1
- package/scripts/gds/init.js +9 -9
- package/scripts/gds/key-card.js +1 -1
- package/scripts/gds/learning-capture.js +2 -2
- package/scripts/gds/linkify-refs.js +2 -2
- package/scripts/gds/local-preview-lib.js +1 -1
- package/scripts/gds/login.js +11 -10
- package/scripts/gds/main-audit.js +1 -1
- package/scripts/gds/newcomer-floor.config.json +1 -1
- package/scripts/gds/newcomer-floor.js +2 -2
- package/scripts/gds/newcomer-floor.templates.json +2 -2
- package/scripts/gds/onboarding-ship.js +1 -1
- package/scripts/gds/paste-token.js +3 -3
- package/scripts/gds/portability-smoke-memory.sh +5 -5
- package/scripts/gds/prove-strict-versioning.js +2 -2
- package/scripts/gds/provision-net.js +2 -2
- package/scripts/gds/provision-units.js +3 -3
- package/scripts/gds/pulse.js +2 -2
- package/scripts/gds/push-path-brief.js +2 -2
- package/scripts/gds/reauth.js +1 -1
- package/scripts/gds/recall.js +1 -1
- package/scripts/gds/redteam-patrol.js +3 -3
- package/scripts/gds/render-ideas.js +5 -5
- package/scripts/gds/repo-metrics.js +1 -1
- package/scripts/gds/sandbox-stage.js +3 -3
- package/scripts/gds/seed-adopt-tasks.js +3 -3
- package/scripts/gds/seed-board-room-tasks.js +1 -1
- package/scripts/gds/seed-bongos-app-tasks.js +2 -2
- package/scripts/gds/seed-bongos-coreB-tranche1-tasks.js +3 -3
- package/scripts/gds/seed-bongos-coreB-tranche2-tasks.js +4 -4
- package/scripts/gds/seed-bongos-tasks.js +5 -5
- package/scripts/gds/seed-bongos-v1-idea-routing-tasks.js +1 -1
- package/scripts/gds/seed-bongos-v1-seo-tasks.js +1 -1
- package/scripts/gds/seed-bv1-community-tasks.js +1 -1
- package/scripts/gds/seed-bv1-privacy-invites-tasks.js +1 -1
- package/scripts/gds/seed-bv1-profile-page-tasks.js +1 -1
- package/scripts/gds/seed-bv1-profiles-tasks.js +1 -1
- package/scripts/gds/seed-bv1-r01-delta-tasks.js +1 -1
- package/scripts/gds/seed-gds-v4-tasks.js +3 -3
- package/scripts/gds/seed-medusa-tasks.js +1 -1
- package/scripts/gds/seed-productization-tasks.js +1 -1
- package/scripts/gds/seed-project-admin-console-tasks.js +1 -1
- package/scripts/gds/seed-provisioning-tasks.js +2 -2
- package/scripts/gds/seed-strict-versioning-tasks.js +3 -3
- package/scripts/gds/seed-v2-world-tasks.js +2 -2
- package/scripts/gds/seed-verify-criteria.js +1 -1
- package/scripts/gds/session-digest.js +1 -1
- package/scripts/gds/session.js +2 -2
- package/scripts/gds/setup.js +7 -7
- package/scripts/gds/ship-flow.js +3 -3
- package/scripts/gds/ship-grade-steps.js +3 -3
- package/scripts/gds/ship-memory-sync.js +1 -1
- package/scripts/gds/ship-session-upload.js +3 -3
- package/scripts/gds/smoke-batch-claim.sh +10 -10
- package/scripts/gds/smoke-batch-release.sh +14 -14
- package/scripts/gds/smoke-claim-consistency.sh +19 -19
- package/scripts/gds/smoke-dependencies.sh +9 -9
- package/scripts/gds/smoke-write.sh +11 -11
- package/scripts/gds/start.js +1 -1
- package/scripts/gds/status.js +2 -2
- package/scripts/gds/strand-watch.js +1 -1
- package/scripts/gds/triage.js +4 -4
- package/scripts/gds/version-close.js +2 -2
- package/scripts/hall-preview/README.md +1 -1
- package/scripts/hall-preview/server.js +1 -1
- package/src/bongos/auth-admission.js +3 -3
- package/src/bongos/auth-idp.js +2 -2
- package/src/bongos/auth.js +3 -3
- package/src/bongos/db.js +2 -2
- package/src/bongos/llm-cache.js +2 -2
- package/src/bongos/metrics.js +1 -1
- package/src/bongos/middleware/audit.js +3 -3
- package/src/bongos/middleware/rate-limit.js +1 -1
- package/src/bongos/platform-visibility-gate.js +2 -2
- package/src/bongos/routes/_helpers.js +1 -1
- package/src/bongos/routes/audit-log.js +1 -1
- package/src/bongos/routes/auth.js +5 -5
- package/src/bongos/routes/backup.js +1 -1
- package/src/bongos/routes/builders.js +1 -1
- package/src/bongos/routes/instance.js +1 -1
- package/src/bongos/routes/live.js +1 -1
- package/src/bongos/routes/me.js +2 -2
- package/src/bongos/routes/modules.js +2 -2
- package/src/bongos/routes/public.js +1 -1
- package/src/bongos/routes/security.js +4 -4
- package/src/bongos/routes.js +1 -1
- package/src/bongos/serve-internal.js +6 -6
- package/src/branding.js +1 -1
- package/src/module-api.js +1 -1
- package/src/module-seams.js +2 -2
- package/src/platform-server.js +2 -2
- package/tests/api_alias_exceptions.mjs +67 -0
- package/tests/application_echo.mjs +12 -12
- package/tests/artifact_audit.mjs +1 -1
- package/tests/auth_page_gate.mjs +4 -4
- package/tests/auth_web_recovery.mjs +11 -11
- package/tests/bongos_login.mjs +7 -4
- package/tests/box_env.mjs +6 -6
- package/tests/bug_attachments.mjs +1 -1
- package/tests/cli_sessions.mjs +1 -1
- package/tests/dev_lib.mjs +1 -1
- package/tests/discord_bugs.mjs +2 -2
- package/tests/discord_inbound.mjs +2 -2
- package/tests/explore_visible_states.mjs +1 -1
- package/tests/government_page_gates.mjs +1 -1
- package/tests/hall_reference_world.mjs +1 -1
- package/tests/idea_ideate_full.mjs +1 -1
- package/tests/idp_federation.mjs +2 -2
- package/tests/llm-cache.mjs +1 -1
- package/tests/manage_manifest_shared_read.mjs +3 -3
- package/tests/people_directory_clip.mjs +1 -1
- package/tests/planning_session_skill.mjs +1 -1
- package/tests/platform_visibility_gate.mjs +15 -15
- package/tests/profile_route.mjs +25 -25
- package/tests/projects_hub.mjs +2 -2
- package/tests/provision.mjs +2 -2
- package/tests/provision_settings_apply.mjs +4 -4
- package/tests/sandbox_stage.mjs +8 -8
- package/tests/scouting_owner_access_and_reach.mjs +3 -3
- package/tests/session_upload_health.mjs +329 -0
- package/tests/setup_device_flow_fallback.mjs +1 -1
- package/tests/skill_ask_for_help.mjs +3 -3
- package/tests/skill_grade_audit.mjs +2 -2
- package/tests/skill_grader_health.mjs +3 -3
- package/tests/smoke_write_contract.mjs +1 -1
|
@@ -4,7 +4,7 @@ description: >-
|
|
|
4
4
|
Ask a named builder or a craft for help on a task, as a filed collab help request. Triggers: "ask <builder> to help with task N", "get <name> on this", "who can help with N", "I'm stuck on task N", "/ask-for-help".
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
**Route skill (authoritative).** The core action is `POST /api/
|
|
7
|
+
**Route skill (authoritative).** The core action is `POST /api/bongos/help-requests`. Once the addressee and the context are settled, file it and report the id — do not narrate the API.
|
|
8
8
|
|
|
9
9
|
You are asking a *person* for help on behalf of the current builder. Being asked assigns them nothing: the collab surfaces recommend, they never transfer a claim (ADR 0187 §3). Declining costs them nothing.
|
|
10
10
|
|
|
@@ -26,7 +26,7 @@ They are **complementary, not alternatives.** An owner-only task (a credential r
|
|
|
26
26
|
|
|
27
27
|
1. **Resolve the addressee to an id — never guess one.**
|
|
28
28
|
```bash
|
|
29
|
-
node scripts/gds/api.js GET /api/
|
|
29
|
+
node scripts/gds/api.js GET /api/bongos/builders/directory
|
|
30
30
|
```
|
|
31
31
|
Match the `github_login` or `display_name` the user named. A name with no match is a question for the user, not a guess — a wrong `needs_builder_id` sends the ask to a stranger.
|
|
32
32
|
|
|
@@ -47,7 +47,7 @@ They are **complementary, not alternatives.** An owner-only task (a credential r
|
|
|
47
47
|
|
|
48
48
|
4. **File it.** Write the body to a file first — `api.js` silently drops a positional JSON body:
|
|
49
49
|
```bash
|
|
50
|
-
node scripts/gds/api.js POST /api/
|
|
50
|
+
node scripts/gds/api.js POST /api/bongos/help-requests --body-file <path>.json
|
|
51
51
|
```
|
|
52
52
|
```json
|
|
53
53
|
{ "needs_builder_id": 3, "task_id": 1002068, "what_is_stuck": "..." }
|
|
@@ -58,9 +58,9 @@ They are **complementary, not alternatives.** An owner-only task (a credential r
|
|
|
58
58
|
|
|
59
59
|
6. **Settle it when it resolves** — only the asker can, and an unsettled pile is noise:
|
|
60
60
|
```bash
|
|
61
|
-
node scripts/gds/api.js PATCH /api/
|
|
61
|
+
node scripts/gds/api.js PATCH /api/bongos/help-requests/<id> --body-file <path>.json
|
|
62
62
|
```
|
|
63
|
-
`{"status": "answered"}` when someone helped, `{"status": "withdrawn"}` when it is no longer needed. Check yours with `GET /api/
|
|
63
|
+
`{"status": "answered"}` when someone helped, `{"status": "withdrawn"}` when it is no longer needed. Check yours with `GET /api/bongos/help-requests/mine`.
|
|
64
64
|
|
|
65
65
|
## Constraints
|
|
66
66
|
|
|
@@ -70,5 +70,5 @@ They are **complementary, not alternatives.** An owner-only task (a credential r
|
|
|
70
70
|
|
|
71
71
|
## Files this skill touches
|
|
72
72
|
|
|
73
|
-
- Calls: `GET /api/
|
|
73
|
+
- Calls: `GET /api/bongos/builders/directory`, `POST /api/bongos/help-requests`, `GET /api/bongos/help-requests/{for-me,mine}`, `PATCH /api/bongos/help-requests/:id`
|
|
74
74
|
- Reads: `modules/lifecycle/routes/help-requests.js` (the four routes), `modules/lifecycle/help-requests.js` (the validation rules), ADR 0187 §3 (recommend, never transfer)
|
|
@@ -38,7 +38,7 @@ just can't say go on it.
|
|
|
38
38
|
|
|
39
39
|
**Enforce the gate at the top of the session, before reading the queue:**
|
|
40
40
|
|
|
41
|
-
1. Call `GET /api/
|
|
41
|
+
1. Call `GET /api/bongos/me` and read `builder.rank`. Compare case-insensitively.
|
|
42
42
|
2. **If `rank` lowercases to `xenos` or `thetes`** → stop immediately. Tell the
|
|
43
43
|
builder: *"Backlog review is a Metic+ operation — promoting a task puts it in
|
|
44
44
|
the claimable queue for everyone and sets its price. You can still file work;
|
|
@@ -10,14 +10,14 @@ This is the structural cure for the old "task #3 sat in `blocked` for days becau
|
|
|
10
10
|
|
|
11
11
|
## Rank gate — Metic+ only
|
|
12
12
|
|
|
13
|
-
This skill is **gated to Metic and above** (Metic, Archon). It is **not** available to Xenos, the lowest rank. Resolving a blocker auto-promotes every linked task from `blocked` → `ready` via the BEFORE-UPDATE trigger — that's a write that reshapes what the whole team can claim next, so it's a trusted-builder operation. A Xenos can still **file** a blocker (`POST /api/
|
|
13
|
+
This skill is **gated to Metic and above** (Metic, Archon). It is **not** available to Xenos, the lowest rank. Resolving a blocker auto-promotes every linked task from `blocked` → `ready` via the BEFORE-UPDATE trigger — that's a write that reshapes what the whole team can claim next, so it's a trusted-builder operation. A Xenos can still **file** a blocker (`POST /api/bongos/blockers`) — that path stays open to any authenticated builder — they just can't resolve or link them.
|
|
14
14
|
|
|
15
15
|
This mirrors GDS-V3 criterion C2 (`three-ranks-gate-everything`), which names "blocker review" explicitly as a Metic privilege alongside full claim/ship, idea triage, and planning/priority sessions (see [`docs/canonical-permissions.md`](../../../docs/canonical-permissions.md) and [ADR 0018](../../../docs/adr/0018-three-rank-model-goes-live.md)).
|
|
16
16
|
|
|
17
17
|
**Enforce the gate at the very top of the session, before reading anything else:**
|
|
18
18
|
|
|
19
|
-
1. Call `GET /api/
|
|
20
|
-
2. **If `rank` is present and lowercases to `xenos`** → stop immediately. Tell the builder: *"Blocker review is a Metic+ operation — resolving a blocker auto-promotes every task linked to it, which reshapes the whole team's ready queue. You're currently Xenos. You can still file a new blocker via `POST /api/
|
|
19
|
+
1. Call `GET /api/bongos/me` and read `builder.rank`. Compare case-insensitively (lowercase it before testing).
|
|
20
|
+
2. **If `rank` is present and lowercases to `xenos`** → stop immediately. Tell the builder: *"Blocker review is a Metic+ operation — resolving a blocker auto-promotes every task linked to it, which reshapes the whole team's ready queue. You're currently Xenos. You can still file a new blocker via `POST /api/bongos/blockers`; ask an Archon to promote you if you need to resolve them."* Do not list open blockers, do not propose resolutions.
|
|
21
21
|
3. **If `rank` lowercases to `metic` or `archon`** → proceed with the steps below.
|
|
22
22
|
4. **If `rank` is absent** (the GET /me response has no `rank` field — only possible against a deployment where the three-rank model hasn't shipped yet): treat the session as available, exactly as `/planning-session` and `/priority-session` do in their pre-rank passthrough mode. Note in the session log that the gate ran in pre-rank passthrough mode.
|
|
23
23
|
|
|
@@ -25,16 +25,16 @@ This mirrors GDS-V3 criterion C2 (`three-ranks-gate-everything`), which names "b
|
|
|
25
25
|
|
|
26
26
|
## What this skill does
|
|
27
27
|
|
|
28
|
-
1. Lists open blockers via `GET /api/
|
|
28
|
+
1. Lists open blockers via `GET /api/bongos/blockers`.
|
|
29
29
|
2. For each, prompts: **resolved**, **still blocked** (with brief status update), or **escalate** (surface to Lars or generate an external ask).
|
|
30
|
-
3. Resolves accordingly via `POST /api/
|
|
30
|
+
3. Resolves accordingly via `POST /api/bongos/blockers/:id/resolve`. The trigger handles the linked-task flip.
|
|
31
31
|
|
|
32
32
|
## How to use
|
|
33
33
|
|
|
34
34
|
**Step 1 — fetch open blockers.**
|
|
35
35
|
|
|
36
36
|
```
|
|
37
|
-
node scripts/gds/api.js GET /api/
|
|
37
|
+
node scripts/gds/api.js GET /api/bongos/blockers
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
(No auth needed — `/blockers` is read-public so the build dashboard can show what's stuck on Lars. `api.js` is the cross-platform Bongos API helper — runs on Windows/macOS/Linux, unlike the old `curl | python3` form.)
|
|
@@ -59,7 +59,7 @@ Then ask the user (concise, plain-language; Lars is the prompter — frame aroun
|
|
|
59
59
|
(api.js signs the request with your session token automatically):
|
|
60
60
|
|
|
61
61
|
```
|
|
62
|
-
node scripts/gds/api.js POST /api/
|
|
62
|
+
node scripts/gds/api.js POST /api/bongos/blockers/<id>/resolve --body '{"resolution_note":"<one-line summary>"}'
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
(If the note has characters awkward to quote in your shell, write the JSON to a temp file and use `--body-file <path>` instead.)
|
|
@@ -16,8 +16,8 @@ A blocker that "needs the owner's hands" (a Cloudflare login, a billing change,
|
|
|
16
16
|
|
|
17
17
|
Resolving a blocker auto-promotes every task linked to it — a write that reshapes the whole team's `ready` queue — so this is a trusted-builder operation, gated to **Metic and Archon** (not Xenos). Enforce it at the very top, before reading anything else:
|
|
18
18
|
|
|
19
|
-
1. Call `node scripts/gds/api.js GET /api/
|
|
20
|
-
2. **If `rank` lowercases to `xenos`** → stop immediately: *"Blocker-solve is a Metic+ operation — resolving a blocker auto-promotes every task linked to it. You're currently Xenos. You can still **file** a blocker (`POST /api/
|
|
19
|
+
1. Call `node scripts/gds/api.js GET /api/bongos/me` and read `builder.rank`. Lowercase before testing.
|
|
20
|
+
2. **If `rank` lowercases to `xenos`** → stop immediately: *"Blocker-solve is a Metic+ operation — resolving a blocker auto-promotes every task linked to it. You're currently Xenos. You can still **file** a blocker (`POST /api/bongos/blockers`); ask an Archon to promote you if you need to solve them."* Do not read the blocker or propose a fix.
|
|
21
21
|
3. **If `rank` lowercases to `metic` or `archon`** → proceed.
|
|
22
22
|
4. **If `rank` is absent** (pre-rank deployment) → proceed in passthrough mode, exactly as `/blocker-review` does, and note it.
|
|
23
23
|
|
|
@@ -38,12 +38,12 @@ These are what keep a "solve" honest. Violating them turns a helpful session int
|
|
|
38
38
|
Read the blocker fully, then enrich it:
|
|
39
39
|
|
|
40
40
|
```
|
|
41
|
-
node scripts/gds/api.js GET /api/
|
|
41
|
+
node scripts/gds/api.js GET /api/bongos/blockers/<id>
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
Fields: `title`, `body_md` (often already contains a numbered "Steps (owner): …" plan — lean on it), `source`, `source_ref`, `status`, plus `blocking_task_ids` (task 1002459 — the detail route now hydrates the same array the list view returns). These linked tasks are exactly what will auto-promote when you resolve.
|
|
45
45
|
|
|
46
|
-
- Read any linked task's notes (`GET /api/
|
|
46
|
+
- Read any linked task's notes (`GET /api/bongos/tasks/<task-id>`) — the source task usually explains what "done" means.
|
|
47
47
|
- Pull project knowledge so you're not re-deriving: `node scripts/gds/recall.js "<the blocker's topic>"` (add `--kind doc` for ADRs/recipes). This surfaces the ADR, recipe, or past session that already documents how to do this thing.
|
|
48
48
|
|
|
49
49
|
If the blocker is already `status: resolved`, stop — there's nothing to solve; tell the user and exit.
|
|
@@ -77,7 +77,7 @@ If verification **fails or is impossible and the owner won't attest**, do **not*
|
|
|
77
77
|
Once verified, resolve it. Write the note as *what unblocked it + how you verified* — that's the durable audit trail. Use a temp file to dodge shell-quoting:
|
|
78
78
|
|
|
79
79
|
```
|
|
80
|
-
node scripts/gds/api.js POST /api/
|
|
80
|
+
node scripts/gds/api.js POST /api/bongos/blockers/<id>/resolve --body-file <path-to-note.json>
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
where the file is `{ "resolution_note": "<what was done> — verified via <how>." }`.
|
|
@@ -40,7 +40,7 @@ verdict the queue.
|
|
|
40
40
|
|
|
41
41
|
**Enforce the gate at the very top of the session, before reading anything else:**
|
|
42
42
|
|
|
43
|
-
1. Call `GET /api/
|
|
43
|
+
1. Call `GET /api/bongos/me` and read `builder.rank`. Compare case-insensitively.
|
|
44
44
|
2. **If `rank` lowercases to `xenos` or `thetes`** → stop immediately. Tell the
|
|
45
45
|
builder: *"Bug triage is a Metic+ operation — merging or dismissing a bug
|
|
46
46
|
report reshapes the team's backlog. File new bugs via Discord `#bugs`;
|
|
@@ -56,7 +56,7 @@ verdict the queue.
|
|
|
56
56
|
|
|
57
57
|
## What this skill does
|
|
58
58
|
|
|
59
|
-
1. Lists open `kind=bug` tasks via `GET /api/
|
|
59
|
+
1. Lists open `kind=bug` tasks via `GET /api/bongos/tasks?kind=bug&limit=1000`,
|
|
60
60
|
filtered to the still-open statuses (`backlog`, `ready`, `active`,
|
|
61
61
|
`blocked`, `completed`, `confirmed` — never `shipped` or `abandoned`,
|
|
62
62
|
the latter of which already includes merged-away duplicates).
|
|
@@ -70,8 +70,8 @@ verdict the queue.
|
|
|
70
70
|
3. For each remaining bug, prompts the user with: **merge** (this is the same
|
|
71
71
|
report as task N) or **won't-fix** (not a bug / already fixed / can't
|
|
72
72
|
reproduce — closes the report itself, folds into nothing).
|
|
73
|
-
4. Applies each verdict via `POST /api/
|
|
74
|
-
`POST /api/
|
|
73
|
+
4. Applies each verdict via `POST /api/bongos/tasks/:id/merge` or
|
|
74
|
+
`POST /api/bongos/tasks/:id/abandon`.
|
|
75
75
|
|
|
76
76
|
**No "promote" step, unlike `/idea-triage`.** A bug report is already a task —
|
|
77
77
|
there is no shape question (goal vs criterion vs task) to work out, because
|
|
@@ -84,7 +84,7 @@ report" and "should this report be closed at all".
|
|
|
84
84
|
**Step 1 — fetch open bug tasks.**
|
|
85
85
|
|
|
86
86
|
```
|
|
87
|
-
node scripts/gds/api.js GET "/api/
|
|
87
|
+
node scripts/gds/api.js GET "/api/bongos/tasks?kind=bug&limit=1000"
|
|
88
88
|
```
|
|
89
89
|
|
|
90
90
|
Filter client-side to the open statuses above. If nothing remains, print "bug
|
|
@@ -140,7 +140,7 @@ implementation):
|
|
|
140
140
|
report into it:
|
|
141
141
|
|
|
142
142
|
```
|
|
143
|
-
node scripts/gds/api.js POST /api/
|
|
143
|
+
node scripts/gds/api.js POST /api/bongos/tasks/<id>/merge --body '{"into_task_id":<N>,"reason":"same report as #N"}'
|
|
144
144
|
```
|
|
145
145
|
|
|
146
146
|
The server refuses a self-merge (`merge_self`), a shipped source
|
|
@@ -154,7 +154,7 @@ instead of re-merging).
|
|
|
154
154
|
reproduce):
|
|
155
155
|
|
|
156
156
|
```
|
|
157
|
-
node scripts/gds/api.js POST /api/
|
|
157
|
+
node scripts/gds/api.js POST /api/bongos/tasks/<id>/abandon --body '{"reason":"cannot reproduce on current build"}'
|
|
158
158
|
```
|
|
159
159
|
|
|
160
160
|
**Keep open** is implicit — leave the task un-patched by not calling either
|
|
@@ -10,7 +10,7 @@ You are claiming a task on behalf of the current builder. The claim is atomic
|
|
|
10
10
|
|
|
11
11
|
## What this skill does
|
|
12
12
|
|
|
13
|
-
Runs `node scripts/gds/claim.js <task-id> [--worktree NAME]`. Before it hits the API at all, the CLI enforces **worktree-per-claim locally** (task 1002579 — see below). Then it hits `POST /api/
|
|
13
|
+
Runs `node scripts/gds/claim.js <task-id> [--worktree NAME]`. Before it hits the API at all, the CLI enforces **worktree-per-claim locally** (task 1002579 — see below). Then it hits `POST /api/bongos/claims`, which transactionally:
|
|
14
14
|
|
|
15
15
|
1. Verifies the task exists and is `ready`.
|
|
16
16
|
2. Verifies all declared `dependencies[]` are in `shipped` status (V3.R02 / migration 020).
|
|
@@ -24,7 +24,7 @@ Any failure mode comes back as a JSON error code (`TASK_NOT_FOUND`, `TASK_NOT_RE
|
|
|
24
24
|
|
|
25
25
|
A CLI session may hold **at most one active claim at a time**, and that claim should run in its **own dedicated worktree**. This is structural, not a style preference: working two tasks from one worktree lands every commit on the single branch that worktree owns, so `/builder-ship` publishes the whole branch and drags the other task's commits into the wrong ship (a *commingled ship*). One claim → one worktree → one clean branch keeps every ship isolated.
|
|
26
26
|
|
|
27
|
-
The server now **enforces** the one-claim half (task 1642): `POST /api/
|
|
27
|
+
The server now **enforces** the one-claim half (task 1642): `POST /api/bongos/claims` refuses a second claim when the **same session** already holds an active one, returning `409 session_already_has_active_claim` (the body names the in-flight task id + title). This is session-scoped (a builder may still run several sessions in parallel, each with its own worktree and its own single claim) and fail-closed. So the **default claim flow must put the task in a fresh worktree** — never reuse a worktree that already owns a claim.
|
|
28
28
|
|
|
29
29
|
**One-claim-per-session is NOT "only one task at a time."** To work several tasks in parallel you have two supported paths, and the CLI refusal now names both (task 1476): (a) open a **separate worktree/session per task** — each holds its own single claim and ships its own clean branch; or (b) use the **hall work board's multi-select bulk-claim** to claim a set at once. Over-claiming is still discouraged — a pile of slow, unfinished claims blocks others and the stale-claim sweep auto-releases idle ones — but the limit is one claim *per session*, not one task *per builder*.
|
|
30
30
|
|
|
@@ -87,4 +87,4 @@ The server now **enforces** the one-claim half (task 1642): `POST /api/gds/claim
|
|
|
87
87
|
## Files this skill touches
|
|
88
88
|
|
|
89
89
|
- Reads: `~/.config/otb/gds-session.json`
|
|
90
|
-
- Calls: `POST /api/
|
|
90
|
+
- Calls: `POST /api/bongos/claims`
|
|
@@ -12,7 +12,7 @@ You are logging a cost entry on behalf of the current builder. Bongos keeps a ru
|
|
|
12
12
|
|
|
13
13
|
Runs `node scripts/gds/cost.js <amount-usd> <category> [--task-id N] [--description "..."] [--source "..."] [--skill <name>]`.
|
|
14
14
|
|
|
15
|
-
The CLI hits `POST /api/
|
|
15
|
+
The CLI hits `POST /api/bongos/cost`, which inserts a `cost_log` row.
|
|
16
16
|
|
|
17
17
|
## How to use
|
|
18
18
|
|
|
@@ -45,4 +45,4 @@ The CLI hits `POST /api/gds/cost`, which inserts a `cost_log` row.
|
|
|
45
45
|
## Files this skill touches
|
|
46
46
|
|
|
47
47
|
- Reads: `~/.config/otb/gds-session.json`
|
|
48
|
-
- Calls: `POST /api/
|
|
48
|
+
- Calls: `POST /api/bongos/cost`
|
|
@@ -22,7 +22,7 @@ It never pushes to `main`, never `ssh`-es, never runs a deploy — landing is `/
|
|
|
22
22
|
|
|
23
23
|
### 0. Snapshot the session state — read, don't mutate yet
|
|
24
24
|
|
|
25
|
-
- **Held claim(s):** `node scripts/gds/api.js GET /api/
|
|
25
|
+
- **Held claim(s):** `node scripts/gds/api.js GET /api/bongos/me` → `active_claims`. (A builder can hold parallel claims across sessions; resolve only the one this session worked.)
|
|
26
26
|
- **Are we in a linked worktree?** `git rev-parse --git-dir` differs from `git rev-parse --git-common-dir` ⇒ yes (`--git-dir` is the per-worktree `<main>/.git/worktrees/<name>`; `--git-common-dir` is the shared `<main>/.git`); they're equal ⇒ main checkout (skip step 3). Test `--git-dir`, **not** `--git-common-dir` — the latter always returns the shared `<main>/.git` even inside a worktree, so checking *it* for `/worktrees/` never matches.
|
|
27
27
|
- **Working-tree state:** `git status --porcelain`.
|
|
28
28
|
- **Commits ahead of main:** `git rev-list --count main..HEAD` (fall back to `origin/main..HEAD`). Real commits ⇒ likely shippable; zero ⇒ likely a release.
|
|
@@ -65,4 +65,4 @@ Removing this session's worktree ends its filesystem — do it last, and tell th
|
|
|
65
65
|
## Files this skill touches
|
|
66
66
|
|
|
67
67
|
- Reads: `~/.config/otb/gds-session.json`
|
|
68
|
-
- Runs: the `builder-ship` / `builder-release` skills (`scripts/gds/ship.js` · `release.js`), `node scripts/gds/api.js GET /api/
|
|
68
|
+
- Runs: the `builder-ship` / `builder-release` skills (`scripts/gds/ship.js` · `release.js`), `node scripts/gds/api.js GET /api/bongos/me`, and local `git worktree` / `git status` / `git branch` commands. It makes no API writes of its own.
|
|
@@ -4,7 +4,7 @@ description: >-
|
|
|
4
4
|
Offboard or reactivate a builder: release claims, seal each with a session log, drop rank to sandboxed Xenos, archive local memory — keeping attribution and credits. Archon-only; for your own session use /builder-end. Triggers: "/builder-exit N", "offboard builder N", "builder X is leaving", "reactivate builder N".
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
**Script skill (authoritative).** The core action is the `PATCH /api/
|
|
7
|
+
**Script skill (authoritative).** The core action is the `PATCH /api/bongos/builders/:id/status` API call via `cli-lib.js`. Once intent is confirmed, run it and print the response verbatim — do not summarize or editorialize the claims-released list.
|
|
8
8
|
|
|
9
9
|
You are gracefully offboarding a builder from Bongos, or reactivating one who has returned. This is a robustness operation — what happens when someone quits — and it must be **lossless**: nothing the builder earned or shipped is ever deleted.
|
|
10
10
|
|
|
@@ -20,7 +20,7 @@ Never run the destructive offboard just because someone wanted to log off — th
|
|
|
20
20
|
|
|
21
21
|
## What graceful exit does (V3.R88 #307)
|
|
22
22
|
|
|
23
|
-
Deactivating a builder via `PATCH /api/
|
|
23
|
+
Deactivating a builder via `PATCH /api/bongos/builders/:id/status { status: 'inactive', reason }` transactionally:
|
|
24
24
|
|
|
25
25
|
1. **Releases every active claim** they hold (`released_at = now`, outcome `abandoned`) and bounces each in-flight task back to `ready` so the work isn't stranded.
|
|
26
26
|
2. **Seals an outstanding session log** for each released claim (a closing `abandoned`-on-exit row — the audit trail shows the work was handed back, not silently dropped).
|
|
@@ -28,7 +28,7 @@ Deactivating a builder via `PATCH /api/gds/builders/:id/status { status: 'inacti
|
|
|
28
28
|
4. **Preserves everything else**: example (`total_credits`), the full `credit_log`, their shipped tasks, and historical session logs all stay, attributed to them, indefinitely.
|
|
29
29
|
5. Writes an interim audit row to `credit_log` (`delta=0`, reason carries the actor) until the dedicated `audit_log` lands (R36).
|
|
30
30
|
|
|
31
|
-
Reactivation (`{ status: 'active' }`) flips them back to active. **Rank is not auto-restored** — it stays `xenos`, and an Archon re-promotes deliberately via `/builder-exit`'s sibling rank endpoint (`PATCH /api/
|
|
31
|
+
Reactivation (`{ status: 'active' }`) flips them back to active. **Rank is not auto-restored** — it stays `xenos`, and an Archon re-promotes deliberately via `/builder-exit`'s sibling rank endpoint (`PATCH /api/bongos/builders/:id/rank`).
|
|
32
32
|
|
|
33
33
|
## Authority
|
|
34
34
|
|
|
@@ -53,7 +53,7 @@ So memory archival is a **local** step, done on the exiting builder's machine
|
|
|
53
53
|
|
|
54
54
|
## How to use
|
|
55
55
|
|
|
56
|
-
1. **Resolve the target builder id.** `/builder-exit 5` → builder #5. If given a name/login, look it up via the leaderboard or `GET /api/
|
|
56
|
+
1. **Resolve the target builder id.** `/builder-exit 5` → builder #5. If given a name/login, look it up via the leaderboard or `GET /api/bongos/me` patterns. Confirm the right person with the user.
|
|
57
57
|
|
|
58
58
|
2. **Confirm intent.** Offboarding is significant and Archon-gated — restate what will happen ("this releases their N active claims, drops them to Xenos, and blocks new claims; their credits and shipped work are preserved") and get a clear go-ahead.
|
|
59
59
|
|
|
@@ -62,9 +62,9 @@ So memory archival is a **local** step, done on the exiting builder's machine
|
|
|
62
62
|
4. **Call the endpoint** (uses the current Archon's session token):
|
|
63
63
|
```bash
|
|
64
64
|
# Deactivate
|
|
65
|
-
node -e "require('./scripts/gds/cli-lib.js').apiCall('PATCH','/api/
|
|
65
|
+
node -e "require('./scripts/gds/cli-lib.js').apiCall('PATCH','/api/bongos/builders/<id>/status',{status:'inactive',reason:'<why>'}).then(r=>console.log(r.status, JSON.stringify(r.data,null,2)))"
|
|
66
66
|
# Reactivate
|
|
67
|
-
node -e "require('./scripts/gds/cli-lib.js').apiCall('PATCH','/api/
|
|
67
|
+
node -e "require('./scripts/gds/cli-lib.js').apiCall('PATCH','/api/bongos/builders/<id>/status',{status:'active'}).then(r=>console.log(r.status, JSON.stringify(r.data,null,2)))"
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
5. **Print the API response verbatim.** The JSON shows claims released and new rank/status. If reactivating, note (from the response) that rank stays `xenos` until a `/builder-rank` promotion.
|
|
@@ -86,4 +86,4 @@ So memory archival is a **local** step, done on the exiting builder's machine
|
|
|
86
86
|
|
|
87
87
|
- Reads: `~/.config/otb/gds-session.json`, the exiting builder's local memory dir
|
|
88
88
|
- Writes: `<memory>-archive/` (local snapshot, on the builder's machine)
|
|
89
|
-
- Calls: `PATCH /api/
|
|
89
|
+
- Calls: `PATCH /api/bongos/builders/:id/status`
|
|
@@ -18,7 +18,7 @@ A key is **never** pasted into chat, and **never** accepted as a CLI argument. T
|
|
|
18
18
|
|
|
19
19
|
## How to use
|
|
20
20
|
|
|
21
|
-
1. **List status.** Run `node scripts/gds/key-status.js` and relay its output verbatim (the monospace list). It hits `GET /api/
|
|
21
|
+
1. **List status.** Run `node scripts/gds/key-status.js` and relay its output verbatim (the monospace list). It hits `GET /api/bongos/me/art-key` for each known key.
|
|
22
22
|
|
|
23
23
|
2. **Missing key → the visual callout fires automatically.** When a key is unset, the script calls `scripts/gds/key-card.js` itself and prints `[otb-key-card-html] <path>` — the same marker the `.claude/hooks/lifecycle-card.js` PostToolUse hook scans for on ANY Bash output. The hook injects a render directive right after the tool result:
|
|
24
24
|
- If you have `mcp__visualize__show_widget`: call `mcp__visualize__read_me` once this session (modules `["interactive","mockup"]`) if you haven't, then render the HTML exactly as directed — **once**, no prose recap.
|
|
@@ -37,5 +37,5 @@ A key is **never** pasted into chat, and **never** accepted as a CLI argument. T
|
|
|
37
37
|
## Files this skill touches
|
|
38
38
|
|
|
39
39
|
- Reads: `~/.config/otb/gds-session.json`
|
|
40
|
-
- Calls: `GET /api/
|
|
40
|
+
- Calls: `GET /api/bongos/me/art-key`, `GET /api/bongos/me` (widgets knob)
|
|
41
41
|
- Runs: `scripts/gds/key-status.js`, `scripts/gds/key-card.js` (via the status script), `scripts/gds/fetch-art-key.js` (via `--recheck`)
|
|
@@ -28,7 +28,7 @@ What actually bounds a leaked token is **revocation**, and it is faster than any
|
|
|
28
28
|
- Click **"Copy"** — it copies a one-line command of the form `bongos paste-token <token>`.
|
|
29
29
|
- Ask them to **paste that one line back into the chat**.
|
|
30
30
|
|
|
31
|
-
3. **Run the pasted command.** When the user pastes `bongos paste-token <token>`, run it exactly as given. `paste-token.js` verifies the token against `/api/
|
|
31
|
+
3. **Run the pasted command.** When the user pastes `bongos paste-token <token>`, run it exactly as given. `paste-token.js` verifies the token against `/api/bongos/me` **before** touching the session file (a bad paste leaves the existing session intact) and preserves any `gemini_api_key`. On success it prints the builder login, rank, and confirms the session file was written.
|
|
32
32
|
|
|
33
33
|
4. **Confirm.** Relay the authenticated identity + rank back to the user, and tell them they can now re-run whatever `/builder-*` command they were trying.
|
|
34
34
|
|
|
@@ -50,4 +50,4 @@ What actually bounds a leaked token is **revocation**, and it is faster than any
|
|
|
50
50
|
- Runs: `node scripts/gds/reauth.js` (detect + open browser + print click-path)
|
|
51
51
|
- Runs: `bongos paste-token <token>` (verify + write the new session)
|
|
52
52
|
- Reads/Writes (via paste-token.js): `~/.config/otb/gds-session.json`
|
|
53
|
-
- Calls: `GET /api/
|
|
53
|
+
- Calls: `GET /api/bongos/me`; the Settings page (CLI Access) calls `POST /api/bongos/auth/cli-token/issue`
|
|
@@ -25,9 +25,9 @@ The reporter does NOT need Archon attention to file. The Archon comes to the que
|
|
|
25
25
|
## What this skill does
|
|
26
26
|
|
|
27
27
|
1. Reads `~/.config/otb/gds-session.json` for the bearer token.
|
|
28
|
-
2. Hits `GET /api/
|
|
28
|
+
2. Hits `GET /api/bongos/me` to confirm rank ≥ Metic. Refuses with a friendly message if Xenos.
|
|
29
29
|
3. Walks the user through five questions (see below).
|
|
30
|
-
4. POSTs to `/api/
|
|
30
|
+
4. POSTs to `/api/bongos/security/reports`.
|
|
31
31
|
5. Echoes the report id back + a note that the auto-repro subagent will attempt reproduction within the hour.
|
|
32
32
|
6. (Optional) Offers to file an `idea_inbox` entry with `kind='bug'` pointing back at the report id, so the fix can be triaged into a normal task on the next `/idea-triage` pass.
|
|
33
33
|
|
|
@@ -35,8 +35,8 @@ The reporter does NOT need Archon attention to file. The Archon comes to the que
|
|
|
35
35
|
|
|
36
36
|
Ask one at a time. Don't batch — the answers feed each other.
|
|
37
37
|
|
|
38
|
-
1. **Severity.** One of `low`, `medium`, `high`, `critical`. Show the bounty schedule from `GET /api/
|
|
39
|
-
2. **Target.** One short line — the route, file, endpoint, or surface. Examples: `POST /api/
|
|
38
|
+
1. **Severity.** One of `low`, `medium`, `high`, `critical`. Show the bounty schedule from `GET /api/bongos/public/bounty-table` if the user is unsure. Critical means "this could let an attacker forge writes as another builder or read data they're not entitled to"; high means a real attack vector with a workaround; medium is a defense-in-depth gap; low is a hardening recommendation.
|
|
39
|
+
2. **Target.** One short line — the route, file, endpoint, or surface. Examples: `POST /api/bongos/tasks/:id/override-request`, `src/bongos/auth.js#verifyToken`, `caddy: example.com:443`. Goes into the `target` column verbatim.
|
|
40
40
|
3. **Title.** One sentence summarizing the flaw. Reads in the Archon queue first, so make it scan-friendly. Example: "OAuth state cookie has no SameSite=strict — CSRF window during auth handshake."
|
|
41
41
|
4. **Description.** What's the impact? Who would notice? Why does it matter? A few sentences. Free-form Markdown.
|
|
42
42
|
5. **Repro steps.** Numbered list of what an attacker (or auditor) does to demonstrate the issue. The auto-repro subagent (R68, when wired) will try to follow these exactly, so be precise. Use `<TOKEN>` or `<COOKIE>` placeholders for any sensitive values.
|
|
@@ -50,7 +50,7 @@ your file-write tool (NOT a shell heredoc — heredocs aren't portable), then PO
|
|
|
50
50
|
it with the cross-platform Bongos API helper:
|
|
51
51
|
|
|
52
52
|
```
|
|
53
|
-
node scripts/gds/api.js POST /api/
|
|
53
|
+
node scripts/gds/api.js POST /api/bongos/security/reports --body-file <path-to-report.json>
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
where `report.json` is:
|
|
@@ -87,7 +87,7 @@ After the report is filed, offer:
|
|
|
87
87
|
If yes — write the idea JSON to a temp file, then:
|
|
88
88
|
|
|
89
89
|
```
|
|
90
|
-
node scripts/gds/api.js POST /api/
|
|
90
|
+
node scripts/gds/api.js POST /api/bongos/inbox --body-file <path-to-idea.json>
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
where `idea.json` is:
|
|
@@ -107,4 +107,4 @@ This is optional because some findings are "the system is fine, my mental model
|
|
|
107
107
|
|
|
108
108
|
## When the API is unreachable
|
|
109
109
|
|
|
110
|
-
If the POST fails (network, droplet down, route 5xx), do NOT silently swallow. Print the full response body and tell the user the report was NOT filed. Offer to re-try once they confirm the droplet is up — `node scripts/gds/api.js GET /api/
|
|
110
|
+
If the POST fails (network, droplet down, route 5xx), do NOT silently swallow. Print the full response body and tell the user the report was NOT filed. Offer to re-try once they confirm the droplet is up — `node scripts/gds/api.js GET /api/bongos/healthz` is the fastest probe (cross-platform; prints the status).
|
|
@@ -12,7 +12,7 @@ You are releasing a task on behalf of the current builder. Releasing is the hone
|
|
|
12
12
|
|
|
13
13
|
Runs `node scripts/gds/release.js <task-id> --reason "..."`.
|
|
14
14
|
|
|
15
|
-
The CLI hits `POST /api/
|
|
15
|
+
The CLI hits `POST /api/bongos/claims/:id/resolve` with `outcome: 'abandoned'`, which transactionally:
|
|
16
16
|
1. Marks the claim `released_at = now`, outcome `abandoned`.
|
|
17
17
|
2. Flips the task status back to `ready`.
|
|
18
18
|
3. Inserts a `session_logs` row with the reason and timestamps.
|
|
@@ -39,4 +39,4 @@ The task is immediately claimable by another session.
|
|
|
39
39
|
## Files this skill touches
|
|
40
40
|
|
|
41
41
|
- Reads: `~/.config/otb/gds-session.json`
|
|
42
|
-
- Calls: `GET /api/
|
|
42
|
+
- Calls: `GET /api/bongos/me`, `POST /api/bongos/claims/:id/resolve`
|
|
@@ -109,5 +109,5 @@ node scripts/gds/sequence.js --check <task-id>
|
|
|
109
109
|
## Files this skill touches
|
|
110
110
|
|
|
111
111
|
- Runs: `scripts/gds/sequence.js` (planning + next + check), then `scripts/gds/claim.js` and `scripts/gds/ship.js` per pass.
|
|
112
|
-
- Reads: `GET /api/
|
|
112
|
+
- Reads: `GET /api/bongos/tasks/:id` (for `dependencies[]`/`dependents[]`), `GET /api/bongos/tasks/claimable`, `GET /api/bongos/me`.
|
|
113
113
|
- Writes nothing itself — every state change goes through the claim and ship paths that already own it.
|
|
@@ -19,9 +19,9 @@ Before running this skill, **two things must be true**:
|
|
|
19
19
|
|
|
20
20
|
Runs `node scripts/gds/setup.js`. The script:
|
|
21
21
|
|
|
22
|
-
1. POSTs `/api/
|
|
22
|
+
1. POSTs `/api/bongos/auth/device/start` → gets `user_code` + `verification_uri` from GitHub via the server.
|
|
23
23
|
2. Prints a clear "open this URL, enter this code" prompt to the user.
|
|
24
|
-
3. Polls `/api/
|
|
24
|
+
3. Polls `/api/bongos/auth/device/poll` every few seconds until the user approves (or denies, or expires).
|
|
25
25
|
4. On success, writes `~/.config/otb/gds-session.json` (resolved from the current user's `$HOME`) with the bearer token and builder profile.
|
|
26
26
|
5. Prints the builder's profile.
|
|
27
27
|
|
|
@@ -62,4 +62,4 @@ Runs `node scripts/gds/setup.js`. The script:
|
|
|
62
62
|
|
|
63
63
|
- Reads (potentially): `~/.config/otb/gds-session.json` (only to check if already authenticated)
|
|
64
64
|
- Writes: `~/.config/otb/gds-session.json`
|
|
65
|
-
- Calls: production `/api/
|
|
65
|
+
- Calls: production `/api/bongos/auth/device/start` and `/api/bongos/auth/device/poll`
|
|
@@ -102,4 +102,4 @@ The CLI drives a **three-state lifecycle** with a subagent grader between states
|
|
|
102
102
|
## Files this skill touches
|
|
103
103
|
|
|
104
104
|
- Reads: `~/.config/otb/gds-session.json`
|
|
105
|
-
- Calls: `GET /api/
|
|
105
|
+
- Calls: `GET /api/bongos/me`, `POST /api/bongos/claims/:id/resolve`
|
|
@@ -8,7 +8,7 @@ You are staging a builder's in-progress work on **their own** sandbox — the li
|
|
|
8
8
|
|
|
9
9
|
## Background
|
|
10
10
|
|
|
11
|
-
Staging (re)starts the preview, which serves the **game-only** entry (`src/preview-server.js`, ADR 0052), degraded-DB (fully playable, no saved state, isolated from prod, no `/api/
|
|
11
|
+
Staging (re)starts the preview, which serves the **game-only** entry (`src/preview-server.js`, ADR 0052), degraded-DB (fully playable, no saved state, isolated from prod, no `/api/bongos`): a private detached process at `http://localhost:<port>` (default 3100, `$OTB_PREVIEW_PORT` to override), managed by `scripts/gds/local-preview.js` (task 1056). No tunnel, no public URL — it never leaves your machine.
|
|
12
12
|
Staging = (re)start the preview, health-check it, and record a marker of exactly what tree state was staged. `/builder-ship` checks that marker: a game-surface diff that wasn't staged at its current state triggers the sandbox review gate before the claim resolves.
|
|
13
13
|
|
|
14
14
|
## How to use
|
|
@@ -60,4 +60,4 @@ Emit one guided next step, not a wall of options. These are the same fixes `bong
|
|
|
60
60
|
## Files this skill touches
|
|
61
61
|
|
|
62
62
|
- Reads: `~/.config/otb/gds-session.json`
|
|
63
|
-
- Calls: `/api/
|
|
63
|
+
- Calls: `/api/bongos/me`, `/api/bongos/tasks/claimable` (+ public progress/cost/recent/inbox/blockers for the status line)
|
|
@@ -13,13 +13,13 @@ Runs the recurring "claim, fix, and ship task NNNN" macro end to end. Its own va
|
|
|
13
13
|
|
|
14
14
|
1. **Read the task and verify it BEFORE claiming.**
|
|
15
15
|
```
|
|
16
|
-
node scripts/gds/api.js GET /api/
|
|
16
|
+
node scripts/gds/api.js GET /api/bongos/tasks/<id>
|
|
17
17
|
```
|
|
18
18
|
If the task names a root cause, open the actual code it points at and confirm that root cause is real — don't take the task's own diagnosis on faith. If the description doesn't match what the code does, say so before writing anything; a task built on a wrong premise needs a corrected task, not a fix for the wrong bug.
|
|
19
19
|
|
|
20
20
|
2. **If the task is in `backlog`, promote it to `ready` first** (Metic+ only — `POST /tasks/:id/promote` is rank-gated):
|
|
21
21
|
```
|
|
22
|
-
node scripts/gds/api.js POST /api/
|
|
22
|
+
node scripts/gds/api.js POST /api/bongos/tasks/<id>/promote --body '{}'
|
|
23
23
|
```
|
|
24
24
|
Skip this step if the task is already `ready`.
|
|
25
25
|
|
|
@@ -45,7 +45,7 @@ Runs the recurring "claim, fix, and ship task NNNN" macro end to end. Its own va
|
|
|
45
45
|
|
|
46
46
|
7. **Confirm the outcome — don't assume the ship landed.**
|
|
47
47
|
```
|
|
48
|
-
node scripts/gds/api.js GET /api/
|
|
48
|
+
node scripts/gds/api.js GET /api/bongos/tasks/<id>
|
|
49
49
|
```
|
|
50
50
|
- `shipped` (or `confirmed`, awaiting `/merge-mode`) → done; relay the completion card per `/builder-ship`.
|
|
51
51
|
- Still `completed` → read the grade shape before reacting; two distinct outcomes park a task here:
|
|
@@ -61,6 +61,6 @@ Runs the recurring "claim, fix, and ship task NNNN" macro end to end. Its own va
|
|
|
61
61
|
|
|
62
62
|
## Files this skill touches
|
|
63
63
|
|
|
64
|
-
- Calls: `GET /api/
|
|
64
|
+
- Calls: `GET /api/bongos/tasks/:id`, `POST /api/bongos/tasks/:id/promote`, plus whatever `/builder-claim` and `/builder-ship` call for claiming and shipping.
|
|
65
65
|
- Reads: `~/.config/otb/gds-session.json`
|
|
66
66
|
- Writes: the fix itself, plus a new or extended `tests/*.mjs` case.
|