Skip to content

Commit a80fcb0

Browse files
committed
docs(skills): drop the GaaS translation layer from native-integration
1 parent c3a655f commit a80fcb0

2 files changed

Lines changed: 19 additions & 60 deletions

File tree

‎plugins/corbits-skills/skills/native-integration/SKILL.md‎

Lines changed: 13 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,42 @@
11
---
22
name: native-integration
3-
description: Corbits runtime mapping for GaaS skills — tools, fleet, non-git folders, GitHub review posting, tracker-agnostic issues
3+
description: Corbits rules for non-git folders, Linear status, tracker-agnostic issues, and posting reviews on GitHub
44
user-invocable: false
55
---
66

77
# Native integration
88

9-
GaaS skill bodies stay 1:1 with Guy's originals. This skill is the Corbits layer: tool names, fleet, and product extras that must not fork those bodies.
10-
11-
Load alongside `style` and `philosophy` (and any GaaS skill you are following). Workers get this body baked; the primary loads it with `use_skill`.
12-
13-
Do not delete Corbits-only skills (`plan`, `git-worktrees`, `idiot-proof`). They are extensions, not GaaS forks.
9+
Corbits-specific rules that the other skills rely on. Load alongside `style` and `philosophy`. Workers get this body baked; the primary loads it with `use_skill`.
1410

1511
## Test runner
1612

17-
Corbits tests use `bun:test` (`bun test`, `bun run test`), not GaaS `tap` (`import t from "tap"`). When the typescript skill shows tap examples, map them to bun:test (`import { expect, test } from "bun:test"`). Do not fork the typescript skill body.
18-
19-
GaaS opsh scripts are bash (`#!/usr/bin/env opsh`, `lib::import`) and use TAP via `prove` (`test-harness`). That harness is not Corbits `bun:test`. Write scripts with `write`/`edit`; agent commands use `bash`. Do not fork the GaaS opsh body.
20-
21-
## Tool mapping
22-
23-
When a GaaS skill names a Claude/GaaS tool, use the Corbits equivalent. Do not call the GaaS name.
24-
25-
| GaaS / Claude | Corbits |
26-
| ----------------------- | -------------------------------------------------- |
27-
| TaskCreate | `manage_tasks` |
28-
| TaskUpdate | `manage_tasks` |
29-
| TaskList | `manage_tasks` |
30-
| AskUserQuestion | `ask_operator` (primary) / `ask_director` (worker) |
31-
| `Task` / `@greybeard` | `spawn_agent(agent="planner")` |
32-
| `@critic` / `@critique` | `spawn_agent(agent="reviewer")` |
33-
| `@intern` | `spawn_agent(agent="coder")` |
34-
| `@explorer` | `spawn_agent(agent="explorer")` |
35-
| Read / Write / Edit | `read` / `write` / `edit` |
36-
| Glob / Grep | `glob` / `grep` |
37-
| Bash | `bash` |
38-
| WebFetch / WebSearch | `web_fetch` / `web_search` |
39-
40-
`intent="general"` is not a Corbits spawn. Use a closed director id.
13+
Corbits tests use `bun:test` (`bun test`, `bun run test`). `opsh` scripts are bash and use TAP via `prove`; that harness is separate from `bun:test`. Agent commands run through `bash`.
4114

42-
GaaS ast-grep invokes `sg` as a CLI. Corbits extras: run `sg` via `bash`.
15+
## Fleet
4316

44-
Slash names that differ from GaaS skill ids: `/review` is GaaS `code-review`; `/create-issue` is GaaS `linear-create`. Keep those Corbits names.
17+
Spawn with `spawn_agent(agent=<director>)` and a closed director id; `intent="general"` is not a spawn.
4518

46-
GaaS code-review uses "ask the user", "sub-agents"/"subagent", and `typescript-conventions`. Corbits extras: slash stays `/review`; `ask_operator` (tool mapping above); fleet `spawn_agent` for sub-agents; load `typescript` not `typescript-conventions`; findings-only — do not implement fixes; GitHub posting and Linear In Review (this skill).
47-
48-
GaaS refactor says "ask clarifying questions" / "ask the user". Corbits extras: `ask_operator` (tool mapping above).
49-
50-
GaaS scribe uses the `question` tool (now `ask_operator` in the Corbits body). Corbits extras: `ask_operator` (tool mapping above).
51-
52-
When GaaS implement says you are orchestrated by karen, that is the Corbits primary (Dispatch). Route those disposition decisions through the primary, not a worker.
53-
54-
GaaS implement "Initial Planning" / planner-before-code is not `/plan`. Substantial coder work consumes a planner / `/plan` plan (files, acceptance criteria, non-goals, risks, ordered steps) and blocks if that plan is missing. Tiny parent-DIY stays plan-optional. `/plan` and planner author; they do not ship. `/implement` does not steal planning from `/plan`.
19+
Substantial coder work consumes a planner or `/plan` plan (files, acceptance criteria, non-goals, risks, ordered steps) and blocks if that plan is missing. Tiny parent-DIY work stays plan-optional. `/plan` and planner author; they do not ship. Disposition decisions in `/implement` go through the primary, not a worker.
5520

5621
## Linear claim-first
5722

58-
When the work tracks a Linear issue and Linear MCP is available: set the issue to In Progress before explore/build thrash. Parallel lanes claim their own IDs. When a PR is ready for review, move the issue to In Review — never Done at PR-open. If Linear MCP is unavailable, report that status could not be updated.
59-
60-
When a PR is open and ready for review (not a draft or WIP), set the issue state to "In Review". Draft or WIP PRs stay **In Progress** until they are ready for review. Then move to In Review. Draft or WIP PRs stay In Progress. Do not mark the Linear issue Done on open PR alone. Do not leave it In Review after merge when work remains.
23+
When the work tracks a Linear issue and Linear MCP is available, set the issue to In Progress before explore/build thrash. Parallel lanes claim their own IDs. Use `use_skill("git-worktrees")` to create the worktree.
6124

62-
GaaS linear-issue-workflow inlines `git worktree add` and marks In Progress after the plan. Corbits extras: claim-first (this section) and `use_skill("git-worktrees")` instead of the inlined `git worktree add`; In Review on ready-for-review PRs (this section). `code-review` maps to Corbits `/review` (slash-name mapping above). Do not fork the GaaS linear-issue-workflow body.
25+
Move the issue to In Review when the PR is ready for review. Draft or WIP PRs stay In Progress. Never mark the issue Done on PR open, and do not leave it In Review after merge when work remains. If Linear MCP is unavailable, report that status could not be updated.
6326

64-
`linear-issue-workflow` owns the full Linear ship loop. This mapping does not replace it.
27+
`linear-issue-workflow` owns the full Linear ship loop.
6528

6629
## Non-git folders
6730

68-
GaaS `style` refuses to operate outside a git repo. Corbits does not: a folder without `.git` is a valid working directory (scratch, unpacked tarball, new project). Git-using skills (`implement`, `review`, `git-rebase`, `pull-request-review`) still no-op or ask when they need a repo. Do not invent a git repo to satisfy those skills.
31+
A folder without `.git` is a valid working directory (scratch, unpacked tarball, new project). Git-using skills (`implement`, `review`, `git-rebase`, `pull-request-review`) no-op or ask when they need a repo. Do not invent a git repo to satisfy them.
6932

70-
When GaaS git-rebase writes `/tmp` editor scripts, Corbits still plans on the primary and the coder executes sequenced git via `bash`; it may use inline `GIT_SEQUENCE_EDITOR` instead of write editor scripts. Do not fork the GaaS git-rebase body.
33+
The primary plans sequenced git and the coder executes it via `bash`, using inline `GIT_SEQUENCE_EDITOR` instead of writing editor scripts.
7134

7235
## Tracker-agnostic issues
7336

74-
GaaS `linear-create` is Linear-only. Corbits `/create-issue` keeps the GaaS Background/Outcome shape and the `create-issue` name, but is not Linear-only:
37+
`/create-issue` is not Linear-only:
7538

76-
1. Linear MCP available → Linear.
39+
1. Linear MCP available: Linear.
7740
2. Else ask which tracker (GitHub, GitLab, other) unless `.corbits/MEMORY.md` already has `Preferred issue tracker`.
7841
3. Persist that preference in MEMORY.md (never secrets).
7942
4. GitHub: `gh issue create`. GitLab: `glab issue create`.
@@ -86,8 +49,6 @@ When the branch under review has an open GitHub pull request, **post the finishe
8649

8750
This step is the delivery of the review, not a second pass of analysis. By the time you post, findings are already decided. Do not reopen the read while drafting the body.
8851

89-
GaaS pull-request-review loads `code-review` and says "ask the user". Corbits extras: `ask_operator` (tool mapping above), `/review` for `code-review` (slash-name mapping above), and GitHub posting (this section). Do not fork the GaaS pull-request-review body.
90-
9152
### When to post
9253

9354
Post when any of these is true:

‎plugins/corbits-skills/skills/typescript/SKILL.md‎

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -581,17 +581,15 @@ Do not write tests that merely verify functionality provided by external librari
581581
### Test Structure
582582

583583
```typescript
584-
import t from "tap";
584+
import { expect, test } from "bun:test";
585585

586-
await t.test("descriptiveTestName", async (t) => {
586+
test("descriptiveTestName", () => {
587587
// Setup
588588
const cache = new Cache({ capacity: 3 });
589589

590590
// Assertions
591-
t.equal(cache.size, 0);
592-
t.matchOnly(cache.get("key"), undefined);
593-
594-
t.end();
591+
expect(cache.size).toBe(0);
592+
expect(cache.get("key")).toBeUndefined();
595593
});
596594
```
597595

@@ -609,10 +607,10 @@ const cache = new Cache({
609607
});
610608

611609
theTime += 500;
612-
t.matchOnly(cache.get("key"), 42); // Still valid
610+
expect(cache.get("key")).toBe(42); // Still valid
613611

614612
theTime += 1000;
615-
t.matchOnly(cache.get("key"), undefined); // Expired
613+
expect(cache.get("key")).toBeUndefined(); // Expired
616614
```
617615

618616
## Documentation

0 commit comments

Comments
 (0)