backup skills

This commit is contained in:
2026-09-19 22:25:11 +02:00
commit fd15f45286
56 changed files with 2369 additions and 0 deletions
+106
View File
@@ -0,0 +1,106 @@
---
name: project-skills-setup
description: "Configure a repository for Linear-backed engineering skills."
disable-model-invocation: true
---
# Project Skills Setup
Configure the current repository once. Use Linear as the issue tracker, install the repository-local agent pointers, and create the Linear labels Wayfinder requires.
## 1. Reach Linear
Call the connected Linear MCP server's workspace operation.
If Linear MCP is unavailable:
1. Inspect `.omp/mcp.json` if it exists.
2. Draft a merge that preserves every existing server and adds only:
```json
"linear": {
"type": "http",
"url": "https://mcp.linear.app/mcp"
}
```
3. Show the complete resulting JSON and obtain approval before writing it.
4. Validate the JSON, then tell the user to run `/mcp reload` and `/mcp reauth linear`.
5. Stop. Resume this skill after the workspace operation succeeds.
OAuth credentials belong to the active OMP profile, never the repository. This step is complete when the authenticated workspace can be read.
## 2. Map the repository to Linear
Inspect:
- the repository directory name and VCS remote name;
- root `CLAUDE.md` and `AGENTS.md`, including any existing `## Agent skills` section;
- `docs/agents/`, `CONTEXT.md`, `CONTEXT-MAP.md`, `docs/adr/`, and context-scoped ADR directories;
- genuine monorepo signals: `pnpm-workspace.yaml`, a root `package.json` `workspaces` field, or populated `packages/*/src` directories;
- the authenticated Linear workspace, teams, projects, team workflow states, current user, and issue labels.
Resolve facts through the repository and Linear MCP rather than asking the user.
Recommend the project whose name or slug matches the repository name case-insensitively. Derive its owning team. With no project match, recommend an exact team match without creating a project. Ask one mapping question only when no unique match exists. A project is optional; a team is required.
Use the workflow-state names returned by Linear for the `unstarted`, `completed`, and `canceled` types. This step is complete when workspace, team, optional project, and those three state names are unambiguous.
## 3. Choose the domain layout
Use single-context unless the repository has the monorepo signals above. For a genuine monorepo, show the detected contexts and confirm multi-context. Do not create `CONTEXT.md`, `CONTEXT-MAP.md`, or ADRs; domain modeling creates them when the first term or durable decision exists.
This step is complete when the layout and every context path are known.
## 4. Draft the setup
Choose the instruction file in this order:
1. `CLAUDE.md` when it exists.
2. Otherwise `AGENTS.md` when it exists.
3. Ask which one to create only when neither exists.
Update an existing `## Agent skills` section in place. Otherwise append one containing only:
```markdown
## Agent skills
### Issue tracker
Issues and Wayfinder maps are tracked in Linear under the `<team>` team<project-clause>. See `docs/agents/issue-tracker.md`.
### Domain docs
This repository uses the `<layout>` domain-doc layout. See `docs/agents/domain.md`.
```
Read `issue-tracker.md` and `domain.md` from this skill directory. Substitute every placeholder and remove every inapplicable optional clause. Draft:
- the complete instruction-file edit;
- `.omp/mcp.json` only when the Linear endpoint is not already discoverable;
- `docs/agents/issue-tracker.md`;
- `docs/agents/domain.md`;
- these missing team-scoped labels: `wayfinder:map`, `wayfinder:research`, `wayfinder:prototype`, `wayfinder:grilling`, `wayfinder:task`.
Show the complete file contents and label changes together. Obtain one approval before applying the repository and Linear changes. This step is complete only with explicit approval of that exact draft.
## 5. Apply
Apply the approved draft exactly:
- preserve unrelated instruction and MCP configuration;
- create or update the two `docs/agents/` files;
- create only missing Wayfinder labels in the selected Linear team;
- keep OAuth material out of repository files.
## 6. Verify
Verify all of the following before reporting completion:
- `.omp/mcp.json`, when written, parses as JSON and points to `https://mcp.linear.app/mcp`;
- the chosen instruction file points to both existing `docs/agents/` files;
- the tracker document names the resolved workspace, team, optional project, and actual workflow states;
- Linear lists all five active Wayfinder labels in the selected team;
- no domain glossary or ADR was created pre-emptively.
Report the files changed, Linear objects created, and the exact checks performed.
+5
View File
@@ -0,0 +1,5 @@
interface:
display_name: "Project Skills Setup"
short_description: "Configure a repo for Linear-backed skills"
policy:
allow_implicit_invocation: false
+26
View File
@@ -0,0 +1,26 @@
# Domain docs
This repository uses a {{LAYOUT}} domain context.
## Before exploring, read these
{{CONTEXT_POINTERS}}
- ADRs under `docs/adr/` that touch the area being explored, if present.
{{CONTEXT_ADR_POINTER}}
If these files do not exist, proceed silently. Do not create them pre-emptively; `/domain-modeling` creates them lazily when terminology or durable decisions are resolved.
## Layout
```text
{{LAYOUT_TREE}}
```
## Vocabulary
Use terms as defined in the relevant `CONTEXT.md`. If a needed concept is missing, reconsider whether it belongs to the project’s language or raise it through `/domain-modeling`.
## ADR conflicts
Surface any contradiction with an existing ADR explicitly rather than silently overriding it.
+32
View File
@@ -0,0 +1,32 @@
# Issue tracker: Linear
Issues and specs for this repository live in the {{WORKSPACE_NAME}} Linear workspace, under the `{{TEAM_NAME}}` team (`{{TEAM_KEY}}`){{PROJECT_SENTENCE}}. Use the authenticated official Linear MCP server for all operations. Do not infer the tracker from the Git remote.
## Conventions
- Create and update issues with `save_issue`; use team `{{TEAM_NAME}}`{{PROJECT_ARGUMENT}} and state `{{OPEN_STATE}}` unless another state is explicitly required.
- Read one issue with `get_issue`, including relations when blockers matter. Read its discussion with `list_comments`.
- List issues with `list_issues`, scoped to team `{{TEAM_NAME}}`{{PROJECT_ARGUMENT}}.
- Add resolution or progress comments with `save_comment`.
- Apply labels with `save_issue`; create missing Wayfinder labels with `save_issue_label`, scoped to the `{{TEAM_NAME}}` team.
- Treat state `{{DONE_STATE}}` as closed/resolved and `{{CANCELED_STATE}}` as ruled out of scope. Other states are open.
- In human-facing text, refer to an issue by its linked title, not only its identifier.
## When a skill says “publish to the issue tracker”
Create a Linear issue in team `{{TEAM_NAME}}`{{PROJECT_ARGUMENT}}.
## When a skill says “fetch the relevant ticket”
Resolve its URL, UUID, identifier, or title with `get_issue`; include comments or relations when the workflow needs them.
## Wayfinding operations
- **Map:** a `{{OPEN_STATE}}` issue labelled `wayfinder:map`, containing Destination, Notes, Decisions so far, Not yet specified, and Out of scope.
- **Child ticket:** a `{{OPEN_STATE}}` sub-issue whose `parentId` is the map. Apply exactly one type label: `wayfinder:research`, `wayfinder:prototype`, `wayfinder:grilling`, or `wayfinder:task`.
- **Blocking:** use Linear’s native issue relation by adding blocker identifiers through `blockedBy`. Never encode a blocker only in prose.
- **Frontier:** list the map’s children, exclude completed and canceled states, exclude assigned issues, then inspect relations and exclude issues with an open blocker. Choose the earliest-created remaining child.
- **Claim:** assign the ticket to `me` with `save_issue` before any investigation or discussion. Assignment alone is the claim.
- **Resolve:** add the answer with `save_comment`, set the ticket to `{{DONE_STATE}}`, then add a one-line linked gist to the map’s Decisions-so-far section with an atomic description patch.
- **Rule out of scope:** comment with the scope reason, set the ticket to `{{CANCELED_STATE}}`, and add a linked one-line gist under the map’s Out of scope section. Do not add it to Decisions so far.
- **Labels:** maintain team-scoped labels `wayfinder:map`, `wayfinder:research`, `wayfinder:prototype`, `wayfinder:grilling`, and `wayfinder:task`.