@bongos/core 1.20.9 → 1.20.11
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 +101 -96
- package/.claude/skills/ask-for-help/SKILL.md +6 -0
- package/.claude/skills/backlog-review/SKILL.md +6 -0
- package/.claude/skills/blocker-review/SKILL.md +6 -0
- package/.claude/skills/blocker-solve/SKILL.md +6 -0
- package/.claude/skills/bug-triage/SKILL.md +6 -0
- package/.claude/skills/builder-backup/SKILL.md +6 -0
- package/.claude/skills/builder-claim/SKILL.md +6 -0
- package/.claude/skills/builder-cost/SKILL.md +6 -0
- package/.claude/skills/builder-end/SKILL.md +6 -0
- package/.claude/skills/builder-exit/SKILL.md +6 -0
- package/.claude/skills/builder-key/SKILL.md +6 -0
- package/.claude/skills/builder-reauth/SKILL.md +6 -0
- package/.claude/skills/builder-redteam/SKILL.md +6 -0
- package/.claude/skills/builder-release/SKILL.md +6 -0
- package/.claude/skills/builder-sequence/SKILL.md +6 -0
- package/.claude/skills/builder-setup/SKILL.md +6 -0
- package/.claude/skills/builder-ship/SKILL.md +6 -0
- package/.claude/skills/builder-stage/SKILL.md +6 -0
- package/.claude/skills/builder-start/SKILL.md +6 -0
- package/.claude/skills/collab-review/SKILL.md +6 -0
- package/.claude/skills/design/SKILL.md +6 -0
- package/.claude/skills/design-sync/SKILL.md +6 -0
- package/.claude/skills/feedback/SKILL.md +6 -0
- package/.claude/skills/figma-design-sync/SKILL.md +6 -0
- package/.claude/skills/fix-task/SKILL.md +6 -0
- package/.claude/skills/goal-create/SKILL.md +6 -0
- package/.claude/skills/goal-review/SKILL.md +6 -0
- package/.claude/skills/goal-uat/SKILL.md +6 -0
- package/.claude/skills/grade-audit/SKILL.md +6 -0
- package/.claude/skills/grade-recover/SKILL.md +6 -0
- package/.claude/skills/grader-health/SKILL.md +6 -0
- package/.claude/skills/idea-triage/SKILL.md +6 -0
- package/.claude/skills/merge-mode/SKILL.md +6 -0
- package/.claude/skills/new-project/SKILL.md +6 -0
- package/.claude/skills/otb-character-review/SKILL.md +6 -0
- package/.claude/skills/otb-design-review/SKILL.md +6 -0
- package/.claude/skills/otb-feedback-capture/SKILL.md +6 -0
- package/.claude/skills/otb-figma-sync/SKILL.md +6 -0
- package/.claude/skills/otb-tile-generate/SKILL.md +6 -0
- package/.claude/skills/planning-session/SKILL.md +6 -0
- package/.claude/skills/priority-session/SKILL.md +6 -0
- package/.claude/skills/read-session-export/SKILL.md +6 -0
- package/.claude/skills/recall/SKILL.md +6 -0
- package/.claude/skills/scan-before-install/SKILL.md +6 -0
- package/.claude/skills/session-handoff/SKILL.md +6 -0
- package/.claude/skills/ship-check/SKILL.md +6 -0
- package/.claude/skills/status/SKILL.md +6 -0
- package/.claude/skills/strand-fix/SKILL.md +6 -0
- package/.claude/skills/tweak/SKILL.md +6 -0
- package/.claude/skills/worktree-clean/SKILL.md +6 -0
- 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 +3 -0
- package/clients/bongos-client/index.mjs +2 -0
- package/docs/api/openapi.json +50 -3
- package/docs/api-reference.md +3 -2
- package/docs/copy-inventory.md +60 -52
- package/docs/copy-registry.json +126 -54
- package/docs/module-api-changelog.md +4 -0
- package/docs/page-inventory.json +2 -1
- package/docs/page-readings.json +131 -119
- package/modules/hall-ui/public/panel.css +4 -4
- package/modules/hall-ui/public/settings-specialities.js +139 -2
- package/modules/hall-ui/public/settings.css +26 -0
- package/modules/hall-ui/public/settings.html +4 -0
- package/modules/hall-ui/public/settings.states.json +1 -0
- package/modules/hall-ui/records/panel-family.md +2 -0
- package/modules/specialities/routes/specialities.js +16 -0
- package/modules/ui-design/skills/brandkit/SKILL.md +6 -0
- package/modules/ui-design/skills/design-taste-frontend/SKILL.md +6 -0
- package/modules/ui-design/skills/design-taste-frontend-v1/SKILL.md +6 -0
- package/modules/ui-design/skills/gpt-taste/SKILL.md +6 -0
- package/modules/ui-design/skills/high-end-visual-design/SKILL.md +6 -0
- package/modules/ui-design/skills/image-to-code/SKILL.md +6 -0
- package/modules/ui-design/skills/imagegen-frontend-mobile/SKILL.md +6 -0
- package/modules/ui-design/skills/imagegen-frontend-web/SKILL.md +6 -0
- package/modules/ui-design/skills/impeccable/SKILL.md +6 -0
- package/modules/ui-design/skills/industrial-brutalist-ui/SKILL.md +6 -0
- package/modules/ui-design/skills/minimalist-ui/SKILL.md +6 -0
- package/modules/ui-design/skills/redesign-existing-projects/SKILL.md +6 -0
- package/modules/ui-design/skills/stitch-design-taste/SKILL.md +6 -0
- package/modules/ui-design/skills/style/SKILL.md +6 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +12 -0
- package/scripts/hall-preview/server.js +4 -0
- package/src/module-api.js +1 -1
- package/tests/speciality_offer_ui.mjs +185 -0
- package/tests/speciality_skills.mjs +51 -0
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: scan-before-install
|
|
3
3
|
description: >-
|
|
4
4
|
Vet a third-party GitHub repo or Claude plugin BEFORE installing: quarantined fetch, deterministic floor, subagent panel over a scrubbed mirror, arithmetic verdict, evidence-gated landings. The scanner never installs. Triggers: "/scan-before-install", "is this plugin safe to install", "vet this GitHub repo".
|
|
5
|
+
plain: >-
|
|
6
|
+
Checks an outside add-on or code project for safety problems before you install it.
|
|
7
|
+
reach-for: >-
|
|
8
|
+
Before adding anything to the project that someone else wrote.
|
|
9
|
+
cost: >-
|
|
10
|
+
Uses your session, more than most because several reviewers read the code. It never installs anything itself.
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
You are scanning a third-party artifact someone wants to install. The engine lives in `modules/security/artifact-scan/` — this skill is the orchestration wrapper: it runs the pipeline, spawns the panel, and lands one of three offers. Every load-bearing decision below is an owner decision; do not soften any of them.
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: session-handoff
|
|
3
3
|
description: >-
|
|
4
4
|
Emit a paste-ready next-steps prompt so a FRESH session starts with curated context. Read-only. Triggers: "/session-handoff", "hand off to a fresh session", "give me a handoff prompt", "wrap up context for next time", "write the next-steps prompt", "I want to continue this in a new session", "context is getting heavy, prep a fresh start".
|
|
5
|
+
plain: >-
|
|
6
|
+
Writes a ready-to-paste note so a fresh conversation can pick up exactly where this one left off.
|
|
7
|
+
reach-for: >-
|
|
8
|
+
When this conversation is getting long and you want to continue in a new one.
|
|
9
|
+
cost: >-
|
|
10
|
+
Free, and it changes nothing. It only writes the note for you to copy.
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
You are producing a **handoff prompt**: a single, self-contained block of text the builder will **copy and paste as the first message of a brand-new session** to continue this work with a clean, light context.
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: ship-check
|
|
3
3
|
description: >-
|
|
4
4
|
Run every freshness and fitness check ship.js will run, and get the healing command for each stale file. Triggers: "/ship-check", "am I ready to ship", "what will ship trip on", "check before I ship", "is anything stale".
|
|
5
|
+
plain: >-
|
|
6
|
+
Runs the same checks a hand-in will run, and tells you how to fix anything that would fail.
|
|
7
|
+
reach-for: >-
|
|
8
|
+
Before handing in work, to avoid a failed attempt.
|
|
9
|
+
cost: >-
|
|
10
|
+
Free. It only checks; fixing is up to you.
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
# /ship-check — the pre-ship table
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: status
|
|
3
3
|
description: >-
|
|
4
4
|
Roll up a version or criterion in one call — its gating tasks, their live statuses, and what is blocking. Read-only. Answers "what's the status of X" and "what's left for criterion Cn". Triggers: "/status", "what's left for C8", "status of GDS-V3", "how far along is the memory criterion", "what tasks remain to complete X".
|
|
5
|
+
plain: >-
|
|
6
|
+
Shows how far along a version or goal is: what is finished, what is left, and what is holding it up.
|
|
7
|
+
reach-for: >-
|
|
8
|
+
When you want to know how much is left before something is done.
|
|
9
|
+
cost: >-
|
|
10
|
+
Free, and it changes nothing. It only reads.
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
You are answering a project-status question. Before this skill existed, doing so meant ~10 sequential Bongos calls (grep the seed file for which tasks map to a criterion, eyeball a "Gates R55–R63" sentence, then re-query each task's status). The structured criterion↔task link (`task_criteria`, migration 055) + the `/status` CLI collapse that to one call. See ADR 0025 and task #435.
|
|
@@ -3,6 +3,12 @@ name: strand-fix
|
|
|
3
3
|
description: >-
|
|
4
4
|
Land ONE stranded ship — a task parked at confirmed that the reconciler gave up on. Also the fix for a claim refused 409 REBASE_REQUIRED. Triggers: "/strand-fix N", "task N is stranded", "land the strand", "my claim says REBASE_REQUIRED".
|
|
5
5
|
requires: [gh]
|
|
6
|
+
plain: >-
|
|
7
|
+
Rescues one piece of approved work that got stuck on its way into the project, and gets it merged.
|
|
8
|
+
reach-for: >-
|
|
9
|
+
When work is approved but never reached the live code, or a task refuses to start because older work is stuck.
|
|
10
|
+
cost: >-
|
|
11
|
+
Uses your session. It gets the stuck work merged into the live code.
|
|
6
12
|
---
|
|
7
13
|
|
|
8
14
|
You are landing one stranded task. The reconciler is not coming back for it — a strand produces no signal of its own, so nothing happens until someone walks it.
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: tweak
|
|
3
3
|
description: >-
|
|
4
4
|
Apply the next submitted page tweak: claim the round, apply every line, render the page before and after, attach the renders and ship it to wait for the artist. Metic+. Triggers: "/tweak", "apply the next page tweak", "work the tweak queue".
|
|
5
|
+
plain: >-
|
|
6
|
+
Applies the next set of change requests someone made to a page, and shows before and after pictures for the artist to approve.
|
|
7
|
+
reach-for: >-
|
|
8
|
+
When page change requests are waiting to be done.
|
|
9
|
+
cost: >-
|
|
10
|
+
Handing it in runs a paid quality review, usually a few dollars charged to the project. The change waits for the artist's approval.
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
You are applying ONE page an artist rewrote in the studio (Tweak Mode, ADR 0341). The artist wrote the words; your job is to transcribe them faithfully, show the artist the result, and park it. **You never land it.** The artist approves the applied page first (ADR 0341 D7), and nothing here arms a merge.
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: worktree-clean
|
|
3
3
|
description: >-
|
|
4
4
|
Remove per-claim worktrees whose work landed, and sweep the husks a locked remove leaves, via junction-safe worktree.js — never raw git worktree remove, which follows the node_modules junction. Triggers: "/worktree-clean", "prune stale worktrees", "worktree husks".
|
|
5
|
+
plain: >-
|
|
6
|
+
Tidies away old workspace folders on your computer whose work has already been merged.
|
|
7
|
+
reach-for: >-
|
|
8
|
+
When your computer is collecting old workspaces.
|
|
9
|
+
cost: >-
|
|
10
|
+
Free. It deletes only workspaces whose work is already safe in the project.
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
**Script skill (authoritative).** Two scripts do the work; this skill only sequences them and shows the list before anything is removed.
|
|
@@ -5,7 +5,7 @@ A **generated**, zero-dependency typed client for the Bongos API — produced fr
|
|
|
5
5
|
by hand; it regenerates when the spec changes, so it can never drift from the routes.
|
|
6
6
|
|
|
7
7
|
- API version: **v1** (served at `/api/bongos/v1`)
|
|
8
|
-
-
|
|
8
|
+
- 461 operations across 70 resource groups
|
|
9
9
|
|
|
10
10
|
## Use it from your project
|
|
11
11
|
|
|
@@ -997,6 +997,8 @@ function createClient(opts = {}) {
|
|
|
997
997
|
putSpecialitiesIdSkills: (args) => request("PUT", "/specialities/{id}/skills", { hasBody: true }, args),
|
|
998
998
|
// POST /specialities/{id}/unoffer — rank: metic+archon — POST /specialities/:id/unoffer
|
|
999
999
|
postSpecialitiesIdUnoffer: (args) => request("POST", "/specialities/{id}/unoffer", { hasBody: true }, args),
|
|
1000
|
+
// GET /specialities/installed-skills — rank: any-builder — GET /specialities/installed-skills
|
|
1001
|
+
getSpecialitiesInstalledSkills: (args) => request("GET", "/specialities/installed-skills", { hasBody: false }, args),
|
|
1000
1002
|
// GET /specialities/offered — rank: any-builder — GET /specialities/offered
|
|
1001
1003
|
getSpecialitiesOffered: (args) => request("GET", "/specialities/offered", { hasBody: false }, args),
|
|
1002
1004
|
},
|
|
@@ -996,6 +996,8 @@ function createClient(opts = {}) {
|
|
|
996
996
|
putSpecialitiesIdSkills: (args) => request("PUT", "/specialities/{id}/skills", { hasBody: true }, args),
|
|
997
997
|
// POST /specialities/{id}/unoffer — rank: metic+archon — POST /specialities/:id/unoffer
|
|
998
998
|
postSpecialitiesIdUnoffer: (args) => request("POST", "/specialities/{id}/unoffer", { hasBody: true }, args),
|
|
999
|
+
// GET /specialities/installed-skills — rank: any-builder — GET /specialities/installed-skills
|
|
1000
|
+
getSpecialitiesInstalledSkills: (args) => request("GET", "/specialities/installed-skills", { hasBody: false }, args),
|
|
999
1001
|
// GET /specialities/offered — rank: any-builder — GET /specialities/offered
|
|
1000
1002
|
getSpecialitiesOffered: (args) => request("GET", "/specialities/offered", { hasBody: false }, args),
|
|
1001
1003
|
},
|
|
@@ -158,6 +158,7 @@ export interface GetSoftwareUpdateResponse { ok: boolean; update: unknown; door:
|
|
|
158
158
|
export interface GetSpecialitiesIdDocumentsResponse { documents: unknown }
|
|
159
159
|
export interface GetSpecialitiesIdResponse { speciality: unknown }
|
|
160
160
|
export interface GetSpecialitiesIdSkillsResponse { speciality: unknown; adopted: boolean; enabled: unknown; skills: unknown }
|
|
161
|
+
export interface GetSpecialitiesInstalledSkillsResponse { skills: unknown }
|
|
161
162
|
export interface GetSpecialitiesOfferedResponse { suggestions: unknown }
|
|
162
163
|
export interface GetSpecialitiesResponse { specialities: unknown }
|
|
163
164
|
export interface GetSsoPubkeyResponse { alg: unknown; format: unknown; public_key_b64: unknown }
|
|
@@ -1422,6 +1423,8 @@ export interface BongosClient {
|
|
|
1422
1423
|
putSpecialitiesIdSkills(args: RequestArgs & { body: PutSpecialitiesIdSkillsRequest }): Promise<PutSpecialitiesIdSkillsResponse>;
|
|
1423
1424
|
/** POST /specialities/{id}/unoffer — rank: metic+archon */
|
|
1424
1425
|
postSpecialitiesIdUnoffer(args?: RequestArgs): Promise<PostSpecialitiesIdUnofferResponse>;
|
|
1426
|
+
/** GET /specialities/installed-skills — rank: any-builder */
|
|
1427
|
+
getSpecialitiesInstalledSkills(args?: RequestArgs): Promise<GetSpecialitiesInstalledSkillsResponse>;
|
|
1425
1428
|
/** GET /specialities/offered — rank: any-builder */
|
|
1426
1429
|
getSpecialitiesOffered(args?: RequestArgs): Promise<GetSpecialitiesOfferedResponse>;
|
|
1427
1430
|
};
|
|
@@ -993,6 +993,8 @@ export function createClient(opts = {}) {
|
|
|
993
993
|
putSpecialitiesIdSkills: (args) => request("PUT", "/specialities/{id}/skills", { hasBody: true }, args),
|
|
994
994
|
// POST /specialities/{id}/unoffer — rank: metic+archon — POST /specialities/:id/unoffer
|
|
995
995
|
postSpecialitiesIdUnoffer: (args) => request("POST", "/specialities/{id}/unoffer", { hasBody: true }, args),
|
|
996
|
+
// GET /specialities/installed-skills — rank: any-builder — GET /specialities/installed-skills
|
|
997
|
+
getSpecialitiesInstalledSkills: (args) => request("GET", "/specialities/installed-skills", { hasBody: false }, args),
|
|
996
998
|
// GET /specialities/offered — rank: any-builder — GET /specialities/offered
|
|
997
999
|
getSpecialitiesOffered: (args) => request("GET", "/specialities/offered", { hasBody: false }, args),
|
|
998
1000
|
},
|
package/docs/api/openapi.json
CHANGED
|
@@ -17805,6 +17805,44 @@
|
|
|
17805
17805
|
]
|
|
17806
17806
|
}
|
|
17807
17807
|
},
|
|
17808
|
+
"/specialities/installed-skills": {
|
|
17809
|
+
"get": {
|
|
17810
|
+
"operationId": "get_specialities_installed_skills",
|
|
17811
|
+
"tags": [
|
|
17812
|
+
"specialities"
|
|
17813
|
+
],
|
|
17814
|
+
"summary": "GET /specialities/installed-skills",
|
|
17815
|
+
"description": "GET /specialities/installed-skills — every skill THIS instance has, each explained the way the adoption walkthrough explains it, so a speciality's owner can choose what it offers from the hall (task 1004404). The CHOICES only: the POST/PATCH `skills` check (unknown_skill) is still the rule, so a stale page that sends a name removed since is refused, not trusted. Nothing here is per-builder and the list is public knowledge of the install — every name is already materialised into each checkout's .claude/skills/. Mounted before '/specialities/:id' would capture it as an id. Read-only; rank: any builder.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
17816
|
+
"x-rank": "any-builder",
|
|
17817
|
+
"x-source": "modules/specialities/routes/specialities.js",
|
|
17818
|
+
"responses": {
|
|
17819
|
+
"200": {
|
|
17820
|
+
"description": "Success.",
|
|
17821
|
+
"content": {
|
|
17822
|
+
"application/json": {
|
|
17823
|
+
"schema": {
|
|
17824
|
+
"$ref": "#/components/schemas/GetSpecialitiesInstalledSkillsResponse"
|
|
17825
|
+
}
|
|
17826
|
+
}
|
|
17827
|
+
}
|
|
17828
|
+
},
|
|
17829
|
+
"400": {
|
|
17830
|
+
"$ref": "#/components/responses/BadRequest"
|
|
17831
|
+
},
|
|
17832
|
+
"401": {
|
|
17833
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
17834
|
+
},
|
|
17835
|
+
"403": {
|
|
17836
|
+
"$ref": "#/components/responses/Forbidden"
|
|
17837
|
+
}
|
|
17838
|
+
},
|
|
17839
|
+
"security": [
|
|
17840
|
+
{
|
|
17841
|
+
"builderSession": []
|
|
17842
|
+
}
|
|
17843
|
+
]
|
|
17844
|
+
}
|
|
17845
|
+
},
|
|
17808
17846
|
"/specialities/offered": {
|
|
17809
17847
|
"get": {
|
|
17810
17848
|
"operationId": "get_specialities_offered",
|
|
@@ -23643,6 +23681,15 @@
|
|
|
23643
23681
|
"skills"
|
|
23644
23682
|
]
|
|
23645
23683
|
},
|
|
23684
|
+
"GetSpecialitiesInstalledSkillsResponse": {
|
|
23685
|
+
"type": "object",
|
|
23686
|
+
"properties": {
|
|
23687
|
+
"skills": {}
|
|
23688
|
+
},
|
|
23689
|
+
"required": [
|
|
23690
|
+
"skills"
|
|
23691
|
+
]
|
|
23692
|
+
},
|
|
23646
23693
|
"GetSpecialitiesOfferedResponse": {
|
|
23647
23694
|
"type": "object",
|
|
23648
23695
|
"properties": {
|
|
@@ -29474,9 +29521,9 @@
|
|
|
29474
29521
|
"description": "A required dependency/feature is not configured or is temporarily down."
|
|
29475
29522
|
}
|
|
29476
29523
|
},
|
|
29477
|
-
"x-endpoint-count":
|
|
29478
|
-
"x-schema-count":
|
|
29524
|
+
"x-endpoint-count": 461,
|
|
29525
|
+
"x-schema-count": 493,
|
|
29479
29526
|
"x-undocumented-bodies": 12,
|
|
29480
|
-
"x-response-schemas":
|
|
29527
|
+
"x-response-schemas": 335,
|
|
29481
29528
|
"x-generated-by": "scripts/gds/gen-api-docs.js"
|
|
29482
29529
|
}
|
package/docs/api-reference.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Bongos API reference
|
|
4
4
|
|
|
5
|
-
> **Generated from the live route files** — the route file is authoritative.
|
|
5
|
+
> **Generated from the live route files** — the route file is authoritative. 461 endpoints across 82 route files.
|
|
6
6
|
> Machine-readable spec: [`docs/api/openapi.json`](api/openapi.json) (OpenAPI 3.1). Rendered docs site: **`/docs`** (e.g. `cloudbongos.com/docs`).
|
|
7
7
|
|
|
8
8
|
Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust-boundary-server-enforced-permissions.md)): `public` < `any-builder` < `metic+archon` < `archon`.
|
|
@@ -698,7 +698,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
698
698
|
|---|---|---|---|---|
|
|
699
699
|
| GET | `/api/bongos/software-update` | `any-builder` | — | GET /software-update — Settings → Software update (task 1004296): this project's core, the newest release its channel allows, what the ve… |
|
|
700
700
|
|
|
701
|
-
## `specialities` (
|
|
701
|
+
## `specialities` (15)
|
|
702
702
|
|
|
703
703
|
| Method | Path | Rank | Body | Description |
|
|
704
704
|
|---|---|---|---|---|
|
|
@@ -715,6 +715,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
|
|
|
715
715
|
| GET | `/api/bongos/specialities/:id/skills` | `any-builder` | — | GET /specialities/:id/skills — what the adoption WALKTHROUGH shows (task 1004073, ADR 0310 §3): each skill the speciality offers, explain… |
|
|
716
716
|
| PUT | `/api/bongos/specialities/:id/skills` | `any-builder` | `enabled_skills` | PUT /specialities/:id/skills — the caller's ENABLED set for a speciality they hold (task 1004072, ADR 0310 §2). |
|
|
717
717
|
| POST | `/api/bongos/specialities/:id/unoffer` | `metic+archon` | — | |
|
|
718
|
+
| GET | `/api/bongos/specialities/installed-skills` | `any-builder` | — | GET /specialities/installed-skills — every skill THIS instance has, each explained the way the adoption walkthrough explains it, so a spe… |
|
|
718
719
|
| GET | `/api/bongos/specialities/offered` | `any-builder` | — | GET /specialities/offered — the suggestions for THIS builder. |
|
|
719
720
|
|
|
720
721
|
## `sso` (8)
|