Skip to content

feat(skills): OutLayer-style public skill family — router, task-shaped skills, /skills serving - #310

Merged
elliotBraem merged 3 commits into
mainfrom
feat/skill-family
Oct 6, 2026
Merged

elliotBraem merged 3 commits into
mainfrom
feat/skill-family

Conversation

@elliotBraem

Copy link
Copy Markdown
Contributor

What

Restructures the agent-facing skill surface around the OutLayer skills model (https://skills.outlayer.ai): a routing entry point that points at one self-contained skill per task, with worked flows, grounded error tables, and URL-addressable skill files.

Changes

Serving (every-plugin)

  • packages/every-plugin/src/build/ui/factory.ts copies node_modules/{everything-dev,every-plugin,better-near-auth}/skills into every core-UI build's dist/skills/<package>/ — reachable at /skills/<package>/<skill>/SKILL.md in dev (rsbuild output.copy) and production (host static proxy already passes .md). Children resolve the same copies from the published npm tarballs since they install all three packages. _artifacts is excluded via globOptions.ignore; copy option typing widened to carry it.

Router (ui)

  • ui/public/skill.md is now an entry-point router: verb-keyed task → skill table (each row links its URL and its intent id), "load ONE skill" rule, shared facts table (origins, API base, MCP, auth header, runtime config), composability pairings, and rules to work by (*.gen.*, build train, Effect handler convention, semantic Tailwind). Regression-pinned strings (/api/mcp, x-api-key, /settings/api-keys) preserved.
  • llms.txt lists the family; the /skill page renders a family grid (skill.family-* testids).

Content

  • New everything-dev#talk-to-the-app: MCP/REST/oRPC-RPC surfaces with real route paths, API-key auth, discovery endpoints, "tasks you will actually be given", refusal status table.
  • New everything-dev#add-a-route: one complete copy-pasteable vertical slice — contract → Effect .effect() handler → useApiClient UI call → route file → typecheck → publish — with the failure modes the slice actually hits.
  • All 20 existing skills across the three packages gain "The tasks you will actually be given" walkthroughs and "What comes back when it refuses/fails" error-word → action tables, grounded in the actual sources (verified per file). better-near-auth's client skill moved its 50-line action tables into references/client-actions.md.
  • AGENTS.md intent block gains the two new skills.

Regression

  • skill_family_served asserts the four package skill URLs return 200 with frontmatter; skill_md_mentions_router_loads_one_skill pins the router wording. Full go test ./ suite green.

Validation

  • intent validate: 57 / 65 / 37 errors — identical to main baseline (all pre-existing); zero new errors from this change; intent stale reports needsReview: false everywhere.
  • pnpm run typecheck ✓ · pnpm run lint clean (2 pre-existing warnings) · pnpm run build ui ✓ (13/3/6 skills in dist).
  • Full HTTP regression suite green.
  • Changesets: every-plugin (minor), everything-dev (minor), better-near-auth (minor).

…d skills, /skills serving

- every-plugin: copy the platform skill family from node_modules into the
  core UI dist (dist/skills/<package>/), so /skills/<pkg>/<skill>/SKILL.md
  is served in dev and production and children inherit it from the npm
  tarballs; exclude skills/_artifacts from the copies
- ui: rewrite /skill.md as an entry-point router over the full 20-skill
  family (verb-keyed task table with URLs, load-ONE rule, shared facts,
  pairings, rules to work by); list the family in llms.txt and add a
  family grid to the /skill page
- everything-dev: new talk-to-the-app (MCP/REST/RPC surfaces, API-key
  auth, discovery) and add-a-route (complete contract → Effect handler →
  UI client → route → publish slice) skills
- all three packages: every skill gains "the tasks you will actually be
  given" walkthroughs and grounded refusal-word → action tables;
  better-near-auth's client skill extracts its 50-line action tables to
  references/client-actions.md
- regression: serve and assert the skill family (skill_family_served,
  router wording) alongside the existing skill.md pins
… one-shot evaluate

The single-shot page.evaluate raced the SSR stream on reload in start:ssr
(#root renders in the shell before the bootstrap script that sets
window.__RUNTIME_CONFIG__ runs) — the same test flaked on main in run
37386685017. waitForFunction polls, removing the race for every spec.
@elliotBraem
elliotBraem merged commit f5f1a5f into main Oct 6, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant