@owlmeans/agent-skills 0.1.15 → 0.1.16

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.
Files changed (77) hide show
  1. package/README.md +46 -18
  2. package/agent-meta/manifest.json +15 -99
  3. package/agent-meta/skills/agent-memory/SKILL.md +8 -7
  4. package/agent-meta/skills/getting-started/SKILL.md +2 -1
  5. package/agent-meta/skills/git/SKILL.md +2 -1
  6. package/agent-meta/skills/memory-promotion/SKILL.md +5 -4
  7. package/agent-meta/skills/memory-recompact/SKILL.md +3 -3
  8. package/agent-meta/skills/reuse-code/SKILL.md +4 -3
  9. package/agent-meta/skills/router-plugins/SKILL.md +2 -1
  10. package/agent-meta/skills/scaffolding/SKILL.md +15 -13
  11. package/agent-meta/skills/self-education/SKILL.md +10 -10
  12. package/agent-meta/skills/shadcn-versions/SKILL.md +3 -2
  13. package/agent-meta/skills/shadcn-web/SKILL.md +2 -1
  14. package/agent-meta/skills/skill-authoring/SKILL.md +44 -39
  15. package/build/apply.d.ts +2 -1
  16. package/build/apply.d.ts.map +1 -1
  17. package/build/apply.js +40 -4
  18. package/build/apply.js.map +1 -1
  19. package/build/args.d.ts +4 -2
  20. package/build/args.d.ts.map +1 -1
  21. package/build/args.js +6 -7
  22. package/build/args.js.map +1 -1
  23. package/build/discover.d.ts +8 -5
  24. package/build/discover.d.ts.map +1 -1
  25. package/build/discover.js +13 -11
  26. package/build/discover.js.map +1 -1
  27. package/build/llm/index.d.ts +13 -0
  28. package/build/llm/index.d.ts.map +1 -0
  29. package/build/llm/index.js +13 -0
  30. package/build/llm/index.js.map +1 -0
  31. package/build/llm/manifest.d.ts +30 -0
  32. package/build/llm/manifest.d.ts.map +1 -0
  33. package/build/llm/manifest.js +59 -0
  34. package/build/llm/manifest.js.map +1 -0
  35. package/build/llm/plugin.d.ts +17 -0
  36. package/build/llm/plugin.d.ts.map +1 -0
  37. package/build/llm/plugin.js +115 -0
  38. package/build/llm/plugin.js.map +1 -0
  39. package/build/llm/resolve.d.ts +4 -0
  40. package/build/llm/resolve.d.ts.map +1 -0
  41. package/build/llm/resolve.js +145 -0
  42. package/build/llm/resolve.js.map +1 -0
  43. package/build/llm/types.d.ts +59 -0
  44. package/build/llm/types.d.ts.map +1 -0
  45. package/build/llm/types.js +3 -0
  46. package/build/llm/types.js.map +1 -0
  47. package/build/plan.d.ts.map +1 -1
  48. package/build/plan.js +7 -6
  49. package/build/plan.js.map +1 -1
  50. package/build/run.d.ts.map +1 -1
  51. package/build/run.js +9 -12
  52. package/build/run.js.map +1 -1
  53. package/package.json +23 -1
  54. package/src/apply.ts +41 -4
  55. package/src/args.ts +12 -9
  56. package/src/discover.ts +13 -14
  57. package/src/llm/index.ts +13 -0
  58. package/src/llm/manifest.ts +75 -0
  59. package/src/llm/plugin.ts +133 -0
  60. package/src/llm/resolve.ts +180 -0
  61. package/src/llm/types.ts +71 -0
  62. package/src/plan.ts +8 -6
  63. package/src/run.ts +8 -11
  64. package/tests/installer.test.ts +61 -45
  65. package/tests/llm-plugin.test.ts +158 -0
  66. package/agent-meta/instructions/agent-memory.instructions.md +0 -143
  67. package/agent-meta/instructions/getting-started.instructions.md +0 -62
  68. package/agent-meta/instructions/git.instructions.md +0 -52
  69. package/agent-meta/instructions/memory-promotion.instructions.md +0 -111
  70. package/agent-meta/instructions/memory-recompact.instructions.md +0 -73
  71. package/agent-meta/instructions/reuse-code.instructions.md +0 -50
  72. package/agent-meta/instructions/router-plugins.instructions.md +0 -46
  73. package/agent-meta/instructions/scaffolding.instructions.md +0 -68
  74. package/agent-meta/instructions/self-education.instructions.md +0 -85
  75. package/agent-meta/instructions/shadcn-versions.instructions.md +0 -47
  76. package/agent-meta/instructions/shadcn-web.instructions.md +0 -95
  77. package/agent-meta/instructions/skill-authoring.instructions.md +0 -66
package/README.md CHANGED
@@ -1,8 +1,7 @@
1
1
  # @owlmeans/agent-skills
2
2
 
3
- CLI installer that lifts embedded Claude Code skills and GitHub Copilot instructions
4
- out of installed `@owlmeans/*` packages and places them into your project's native
5
- agent-guidance locations.
3
+ CLI installer that lifts embedded agent skills out of installed `@owlmeans/*` packages
4
+ and places them into your project's skill store.
6
5
 
7
6
  ## Usage
8
7
 
@@ -13,10 +12,14 @@ npx @owlmeans/agent-skills
13
12
  ```
14
13
 
15
14
  The installer scans `node_modules/@owlmeans/*/agent-meta/`, shows you what guidance
16
- is available, and (with your confirmation) copies it into:
15
+ is available, and (with your confirmation) copies it into
16
+ `.agents/skills/<name>/SKILL.md` — the [Agent Skills](https://agentskills.io) standard
17
+ location, discovered natively by GitHub Copilot, Codex and other agents.
17
18
 
18
- - **Claude Code**: `.claude/skills/<name>/SKILL.md`
19
- - **GitHub Copilot**: `.github/instructions/<name>.instructions.md`
19
+ Claude Code reads skills only from `.claude/skills/`, so a project that already has a
20
+ `.claude/` directory also gets a per-skill symlink there. Repos generated by
21
+ `@owlmeans/create-app` keep those symlinks fresh with
22
+ `sh .agents/scripts/link-skills.sh`, run automatically at session start.
20
23
 
21
24
  Re-run after updating `@owlmeans/*` packages to pick up revised guidance.
22
25
 
@@ -26,8 +29,6 @@ Re-run after updating `@owlmeans/*` packages to pick up revised guidance.
26
29
  --dir <path> target project directory (default: current working directory)
27
30
  --yes, -y skip interactive confirmation (non-destructive; conflicts still skip)
28
31
  --only <pkg,...> install guidance from these packages only (comma-separated @owlmeans/* names)
29
- --claude-only install only Claude Code skills (.claude/skills/)
30
- --copilot-only install only Copilot instructions (.github/instructions/)
31
32
  --extras include extras bundled in the installer itself (default: on)
32
33
  --no-extras skip extras bundled in the installer
33
34
  --force overwrite locally-edited files (no AUTO-GENERATED banner)
@@ -35,6 +36,9 @@ Re-run after updating `@owlmeans/*` packages to pick up revised guidance.
35
36
  --help, -h show this help
36
37
  ```
37
38
 
39
+ `--claude-only` and `--copilot-only` are accepted but do nothing: one skill store now
40
+ serves every agent.
41
+
38
42
  ## Conflict policy
39
43
 
40
44
  Files managed by the installer carry an `AUTO-GENERATED` banner. On re-run:
@@ -53,8 +57,8 @@ are installed by default alongside package-specific guidance from `node_modules`
53
57
 
54
58
  If any `@owlmeans/*` packages are **symlinked** (e.g. via a `libraries/` workspace
55
59
  link in an OwlMeans monorepo), the installer refuses and exits with code 4. In that
56
- setup agents already load guidance from the linked monorepo's root `.claude/skills/`
57
- and `.github/instructions/` — running the installer would install stale copies.
60
+ setup agents already load guidance from the linked monorepo's root `AGENTS.md` and
61
+ `.agents/skills/` — running the installer would install stale copies.
58
62
 
59
63
  Pass `--force` only if you understand this and want to proceed anyway.
60
64
 
@@ -64,23 +68,23 @@ Each `@owlmeans/*` package ships its embedded guidance under:
64
68
 
65
69
  ```
66
70
  agent-meta/
67
- manifest.json # package, version, entries list
71
+ manifest.json # package, version, entries list (schemaVersion 2)
68
72
  skills/<name>/
69
- SKILL.md # Claude Code skill
70
- instructions/
71
- <name>.instructions.md # GitHub Copilot instruction
73
+ SKILL.md # agent skill
72
74
  ```
73
75
 
76
+ Packages published before schema v2 also carry `instructions/<name>.instructions.md`,
77
+ the GitHub Copilot twin of the same knowledge. Those entries are ignored on install.
78
+
74
79
  Embedded files are **generated and read-only**. To contribute guidance edits, open
75
80
  a PR against [owlmeans/common](https://github.com/owlmeans/common).
76
81
 
77
82
  <!-- owlmeans:agent-guidance:start -->
78
83
  ## Agent guidance
79
84
 
80
- This package ships embedded Claude Code skills and GitHub Copilot instructions under
81
- `agent-meta/`. After installing your `@owlmeans/*` packages, run the OwlMeans
82
- agent-skills installer to place them into your project's native locations
83
- (`.claude/skills/` and `.github/instructions/`):
85
+ This package ships embedded agent skills under `agent-meta/`. After installing your
86
+ `@owlmeans/*` packages, run the OwlMeans agent-skills installer to place them into
87
+ your project's skill store (`.agents/skills/`):
84
88
 
85
89
  ```sh
86
90
  npx @owlmeans/agent-skills
@@ -90,3 +94,27 @@ The embedded files are version-matched to this package release. Do not edit them
90
94
  directly — they are regenerated on each publish. To contribute guidance edits,
91
95
  open a PR against the source monorepo.
92
96
  <!-- owlmeans:agent-guidance:end -->
97
+
98
+ ## Package skills in a prompt (`@owlmeans/agent-skills/llm`)
99
+
100
+ `owlmeansPackagesPlugin(options)` notices which `@owlmeans/*` packages a request mentions
101
+ and loads their published skills into the `Packages` block. Everything a package documents
102
+ is loaded — there is no relevance filtering, by design.
103
+
104
+ Resolution order per package: the host's `LlmFileProvider` (the only path that sees a
105
+ sandbox or remote workspace) → an installed copy under `node_modules` → the canonical
106
+ repository over HTTPS. Every failure is a miss, never a throw. Results, including misses,
107
+ are cached per plugin instance.
108
+
109
+ ```typescript
110
+ ctx.prompts().use(owlmeansPackagesPlugin({
111
+ files: () => ctx.files(), // tried first
112
+ exclude: ['@owlmeans/llm'], // already covered by the static Skills block
113
+ fetch: false, // air-gapped: skip the repository fallback
114
+ }))
115
+ ```
116
+
117
+ The manifest deliberately carries no git ref — version-matching comes from shipping the
118
+ copy inside the tarball, so for a package that is NOT installed the ref is a plugin option
119
+ (`ref`, default `main`).
120
+
@@ -1,8 +1,8 @@
1
1
  {
2
- "schemaVersion": 1,
2
+ "schemaVersion": 2,
3
3
  "package": "@owlmeans/agent-skills",
4
- "version": "0.1.15",
5
- "generatedAt": "2026-08-07T17:06:32.899Z",
4
+ "version": "0.1.16",
5
+ "generatedAt": "2026-08-14T10:14:48.850Z",
6
6
  "canonicalRepo": "https://github.com/owlmeans/common",
7
7
  "entries": [
8
8
  {
@@ -10,168 +10,84 @@
10
10
  "name": "self-education",
11
11
  "category": "general",
12
12
  "file": "skills/self-education/SKILL.md",
13
- "canonicalPath": ".claude/skills/self-education/SKILL.md"
13
+ "canonicalPath": ".agents/skills/self-education/SKILL.md"
14
14
  },
15
15
  {
16
16
  "kind": "skill",
17
17
  "name": "router-plugins",
18
18
  "category": "general",
19
19
  "file": "skills/router-plugins/SKILL.md",
20
- "canonicalPath": ".claude/skills/router-plugins/SKILL.md"
20
+ "canonicalPath": ".agents/skills/router-plugins/SKILL.md"
21
21
  },
22
22
  {
23
23
  "kind": "skill",
24
24
  "name": "getting-started",
25
25
  "category": "general",
26
26
  "file": "skills/getting-started/SKILL.md",
27
- "canonicalPath": ".claude/skills/getting-started/SKILL.md"
27
+ "canonicalPath": ".agents/skills/getting-started/SKILL.md"
28
28
  },
29
29
  {
30
30
  "kind": "skill",
31
31
  "name": "shadcn-web",
32
32
  "category": "general",
33
33
  "file": "skills/shadcn-web/SKILL.md",
34
- "canonicalPath": ".claude/skills/shadcn-web/SKILL.md"
34
+ "canonicalPath": ".agents/skills/shadcn-web/SKILL.md"
35
35
  },
36
36
  {
37
37
  "kind": "skill",
38
38
  "name": "memory-recompact",
39
39
  "category": "general",
40
40
  "file": "skills/memory-recompact/SKILL.md",
41
- "canonicalPath": ".claude/skills/memory-recompact/SKILL.md"
41
+ "canonicalPath": ".agents/skills/memory-recompact/SKILL.md"
42
42
  },
43
43
  {
44
44
  "kind": "skill",
45
45
  "name": "git",
46
46
  "category": "general",
47
47
  "file": "skills/git/SKILL.md",
48
- "canonicalPath": ".claude/skills/git/SKILL.md"
48
+ "canonicalPath": ".agents/skills/git/SKILL.md"
49
49
  },
50
50
  {
51
51
  "kind": "skill",
52
52
  "name": "agent-memory",
53
53
  "category": "general",
54
54
  "file": "skills/agent-memory/SKILL.md",
55
- "canonicalPath": ".claude/skills/agent-memory/SKILL.md"
55
+ "canonicalPath": ".agents/skills/agent-memory/SKILL.md"
56
56
  },
57
57
  {
58
58
  "kind": "skill",
59
59
  "name": "reuse-code",
60
60
  "category": "general",
61
61
  "file": "skills/reuse-code/SKILL.md",
62
- "canonicalPath": ".claude/skills/reuse-code/SKILL.md"
62
+ "canonicalPath": ".agents/skills/reuse-code/SKILL.md"
63
63
  },
64
64
  {
65
65
  "kind": "skill",
66
66
  "name": "scaffolding",
67
67
  "category": "general",
68
68
  "file": "skills/scaffolding/SKILL.md",
69
- "canonicalPath": ".claude/skills/scaffolding/SKILL.md"
69
+ "canonicalPath": ".agents/skills/scaffolding/SKILL.md"
70
70
  },
71
71
  {
72
72
  "kind": "skill",
73
73
  "name": "skill-authoring",
74
74
  "category": "general",
75
75
  "file": "skills/skill-authoring/SKILL.md",
76
- "canonicalPath": ".claude/skills/skill-authoring/SKILL.md"
76
+ "canonicalPath": ".agents/skills/skill-authoring/SKILL.md"
77
77
  },
78
78
  {
79
79
  "kind": "skill",
80
80
  "name": "memory-promotion",
81
81
  "category": "general",
82
82
  "file": "skills/memory-promotion/SKILL.md",
83
- "canonicalPath": ".claude/skills/memory-promotion/SKILL.md"
83
+ "canonicalPath": ".agents/skills/memory-promotion/SKILL.md"
84
84
  },
85
85
  {
86
86
  "kind": "skill",
87
87
  "name": "shadcn-versions",
88
88
  "category": "general",
89
89
  "file": "skills/shadcn-versions/SKILL.md",
90
- "canonicalPath": ".claude/skills/shadcn-versions/SKILL.md"
91
- },
92
- {
93
- "kind": "instruction",
94
- "name": "reuse-code",
95
- "category": "general",
96
- "file": "instructions/reuse-code.instructions.md",
97
- "canonicalPath": ".github/instructions/reuse-code.instructions.md"
98
- },
99
- {
100
- "kind": "instruction",
101
- "name": "getting-started",
102
- "category": "general",
103
- "file": "instructions/getting-started.instructions.md",
104
- "canonicalPath": ".github/instructions/getting-started.instructions.md"
105
- },
106
- {
107
- "kind": "instruction",
108
- "name": "self-education",
109
- "category": "general",
110
- "file": "instructions/self-education.instructions.md",
111
- "canonicalPath": ".github/instructions/self-education.instructions.md"
112
- },
113
- {
114
- "kind": "instruction",
115
- "name": "memory-recompact",
116
- "category": "general",
117
- "file": "instructions/memory-recompact.instructions.md",
118
- "canonicalPath": ".github/instructions/memory-recompact.instructions.md"
119
- },
120
- {
121
- "kind": "instruction",
122
- "name": "scaffolding",
123
- "category": "general",
124
- "file": "instructions/scaffolding.instructions.md",
125
- "canonicalPath": ".github/instructions/scaffolding.instructions.md"
126
- },
127
- {
128
- "kind": "instruction",
129
- "name": "skill-authoring",
130
- "category": "general",
131
- "file": "instructions/skill-authoring.instructions.md",
132
- "canonicalPath": ".github/instructions/skill-authoring.instructions.md"
133
- },
134
- {
135
- "kind": "instruction",
136
- "name": "router-plugins",
137
- "category": "general",
138
- "file": "instructions/router-plugins.instructions.md",
139
- "canonicalPath": ".github/instructions/router-plugins.instructions.md"
140
- },
141
- {
142
- "kind": "instruction",
143
- "name": "shadcn-versions",
144
- "category": "general",
145
- "file": "instructions/shadcn-versions.instructions.md",
146
- "canonicalPath": ".github/instructions/shadcn-versions.instructions.md"
147
- },
148
- {
149
- "kind": "instruction",
150
- "name": "memory-promotion",
151
- "category": "general",
152
- "file": "instructions/memory-promotion.instructions.md",
153
- "canonicalPath": ".github/instructions/memory-promotion.instructions.md"
154
- },
155
- {
156
- "kind": "instruction",
157
- "name": "agent-memory",
158
- "category": "general",
159
- "file": "instructions/agent-memory.instructions.md",
160
- "canonicalPath": ".github/instructions/agent-memory.instructions.md"
161
- },
162
- {
163
- "kind": "instruction",
164
- "name": "shadcn-web",
165
- "category": "general",
166
- "file": "instructions/shadcn-web.instructions.md",
167
- "canonicalPath": ".github/instructions/shadcn-web.instructions.md"
168
- },
169
- {
170
- "kind": "instruction",
171
- "name": "git",
172
- "category": "general",
173
- "file": "instructions/git.instructions.md",
174
- "canonicalPath": ".github/instructions/git.instructions.md"
90
+ "canonicalPath": ".agents/skills/shadcn-versions/SKILL.md"
175
91
  }
176
92
  ]
177
93
  }
@@ -1,15 +1,16 @@
1
1
  ---
2
2
  name: agent-memory
3
- description: Shared agent memory protocol — the .agents/memory/ graph store used by both Claude Code and GitHub Copilot: MEMORY.md index, subsystem nodes, compact-on-write merging, size caps, and the read protocol. Use when reading or writing project memory, when asked to remember something, or to decide where knowledge belongs.
3
+ description: Shared agent memory protocol — the .agents/memory/ graph store every agent reads and writes: MEMORY.md index, subsystem nodes, compact-on-write merging, size caps, and the read protocol. Use when reading or writing project memory, when asked to remember something, or to decide where knowledge belongs.
4
4
  user-invocable: true
5
- scope: general
5
+ metadata:
6
+ scope: general
6
7
  ---
7
8
  <!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
8
9
 
9
10
  # Agent memory (`.agents/memory/`)
10
11
 
11
- One shared memory store per repository, used by **both** Claude Code and GitHub Copilot: a graph
12
- of subsystem nodes rooted in the `MEMORY.md` index. Compactness is the core value — every write
12
+ One shared memory store per repository, used by every agent: a graph of subsystem nodes rooted in
13
+ the `MEMORY.md` index. Compactness is the core value — every write
13
14
  merges and compacts; nothing is ever appended as a log.
14
15
 
15
16
  Never write memory to `.claude/memory/`, `.github/memory/`, `~/.claude/`, `~/.copilot/`, or
@@ -30,7 +31,7 @@ Flat directory — graph structure lives in scopes and wiki-links, not subdirect
30
31
 
31
32
  Node id = lowercase-kebab name of the **project-structure part** the knowledge attaches to:
32
33
 
33
- 1. **Subsystem** — workspace dir / package name: `manager-web`, `auth`, `vslots`. Deepest
34
+ 1. **Subsystem** — workspace dir / package name: `manager-web`, `auth`, `deploy`. Deepest
34
35
  unambiguous segment; prefix with the parent only on collision.
35
36
  2. **Cross-cutting concern** spanning subsystems: `build`, `testing`, `deploy`, `routing`, `i18n`.
36
37
  3. **Integration** — external service/library: `stripe`, `cloudflare`, `openrouter`.
@@ -66,8 +67,8 @@ Frontmatter — exactly three fields:
66
67
 
67
68
  ```yaml
68
69
  ---
69
- node: vslots # = filename without .md; = wiki-link target
70
- scope: "scripts/vslots/**" # repo-relative globs; ext:<service> for integrations; . for workspace
70
+ node: deploy # = filename without .md; = wiki-link target
71
+ scope: "deploy/**" # repo-relative globs; ext:<service> for integrations; . for workspace
71
72
  updated: 2026-08 # month granularity only
72
73
  ---
73
74
  ```
@@ -2,7 +2,8 @@
2
2
  name: getting-started
3
3
  description: How to build a fullstack OwlMeans Common app from scratch — the common/api/web three-workspace pattern, context bootstrap on server and web, shared entrypoints + elevate(), and a session-scoped in-memory resource with @owlmeans/static-resource. Use when starting a new OwlMeans project, wiring web↔api, or asked how the pieces fit together.
4
4
  user-invocable: true
5
- scope: general
5
+ metadata:
6
+ scope: general
6
7
  ---
7
8
  <!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
8
9
 
@@ -2,7 +2,8 @@
2
2
  name: git
3
3
  description: "Git workflow policy — never run state-changing git without an explicit instruction, commit only under the repository's configured identity (no AI-attribution trailer), report finished git work as a Markdown table, never commit a conflicted working copy. Use before any git operation."
4
4
  user-invocable: false
5
- scope: general
5
+ metadata:
6
+ scope: general
6
7
  ---
7
8
  <!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
8
9
 
@@ -2,7 +2,8 @@
2
2
  name: memory-promotion
3
3
  description: Transform procedure-shaped or repeatedly-used memory into skills and instructions — the procedure-shape test, the mandatory distillation rewrite, promote? repeated-touch flags, over-cap trigger, update-vs-create decision, and the post-promotion pointer state. Use when memory content reads as "how to", when a promote? flag is encountered again, when writing memory-derived content into a skill, or during recompaction.
4
4
  user-invocable: true
5
- scope: general
5
+ metadata:
6
+ scope: general
6
7
  ---
7
8
  <!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
8
9
 
@@ -94,8 +95,8 @@ skill's body.
94
95
  1. Collect the flagged / procedure-shaped memory lines.
95
96
  2. **Distill** each into a general rule (section above). Not optional — skipping it is the
96
97
  failure mode this skill exists to prevent.
97
- 3. Author or extend the SKILL.md and its `.github/instructions/<name>.instructions.md` twin,
98
- following the repo's `skill-authoring` or `create-skill` conventions. Where an existing rule
98
+ 3. Author or extend the skill at `.agents/skills/<name>/SKILL.md`, following the repo's
99
+ `skill-authoring` or `create-skill` conventions. Where an existing rule
99
100
  already covers the ground, **rewrite that rule in place**; append only when nothing covers it.
100
101
  4. Shrink the node: delete the source lines; leave one pointer line (format below).
101
102
  5. Remove the ` → promote?` flags.
@@ -107,5 +108,5 @@ skill's body.
107
108
  The node keeps exactly one line under `## Pointers`:
108
109
 
109
110
  ```
110
- - <activity> → skill `<name>` (procedure lives in .claude/skills/<name>/ + .github/instructions/<name>.instructions.md)
111
+ - <activity> → skill `<name>` (procedure lives in .agents/skills/<name>/)
111
112
  ```
@@ -2,7 +2,8 @@
2
2
  name: memory-recompact
3
3
  description: Recompact or migrate a whole .agents/memory/ store — rebuild the node map from project structure, merge event-shaped records into subsystem nodes, deduplicate, enforce caps, regenerate the MEMORY.md index, and fold in legacy .claude/memory and .github/memory stores. Use when a store degrades into event logs, indexes bloat or conflict, or for one-time migration.
4
4
  disable-model-invocation: true
5
- scope: general
5
+ metadata:
6
+ scope: general
6
7
  ---
7
8
  <!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
8
9
 
@@ -48,8 +49,7 @@ For each old file or section:
48
49
  ONE node — merge both; the code-consistent version wins.
49
50
  2. Index-only entries with no backing file: extract the fact into its node, or drop if stale.
50
51
  3. Old `## Skills` / "Key Files" index sections are dropped — skills self-describe; harness
51
- layout belongs to `CLAUDE.md` / `.github/copilot-instructions.md`. Move genuinely non-obvious
52
- dispatch hints there.
52
+ layout belongs to `AGENTS.md`. Move genuinely non-obvious dispatch hints there.
53
53
  4. When the new store verifies (below), delete both legacy dirs entirely.
54
54
 
55
55
  ## Regenerate the index
@@ -2,7 +2,8 @@
2
2
  name: reuse-code
3
3
  description: Discovery-first, reuse-first workflow for OwlMeans projects. Use BEFORE planning or building any feature, before proposing a third-party library or a custom solution, and after writing code. Find an existing @owlmeans/* package or existing code first; extend before writing new; simplify what you write.
4
4
  user-invocable: true
5
- scope: general
5
+ metadata:
6
+ scope: general
6
7
  ---
7
8
  <!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
8
9
 
@@ -18,7 +19,7 @@ Before suggesting any external library or writing custom code, look for an `@owl
18
19
  already solves the problem.
19
20
 
20
21
  - **Consult the deployed skills.** Each installed `@owlmeans/*` package ships a skill at
21
- `.claude/skills/<pkg>/SKILL.md` (and `.github/instructions/<pkg>.instructions.md`) describing what it
22
+ `.agents/skills/<pkg>/SKILL.md` describing what it
22
23
  does. Read those first — they are your local catalogue of installed capabilities.
23
24
  - **Scan installed packages.** Look in `node_modules/@owlmeans/*` **and**, in a workspace monorepo,
24
25
  the nested `sources/*/node_modules/@owlmeans/*` (bun nests workspace deps).
@@ -32,7 +33,7 @@ How you research the repo depends on whether `@owlmeans/*` is linked locally:
32
33
  - Run `ls -la node_modules/@owlmeans/<pkg>` (try a package you know is installed). If it is a **symlink
33
34
  whose target escapes `node_modules`** — or if the project's *own* workspace publishes `@owlmeans/*`
34
35
  packages (i.e. **this is the common repo**) — you have the source locally. **Research locally:** read
35
- `tree.md`, browse the framework's package sources, and read the canonical `.claude/skills/`. **Do
36
+ `tree.md`, browse the framework's package sources, and read the canonical `.agents/skills/`. **Do
36
37
  not** use the internet.
37
38
  - Otherwise (a clean install from npm), **research the web**: fetch/search
38
39
  **https://github.com/owlmeans/common** — `tree.md` and package READMEs — to find the right package.
@@ -1,8 +1,9 @@
1
1
  ---
2
2
  name: router-plugins
3
3
  description: How OwlMeans UI routing plugins work — the RouterPlugin contract, cascade selection, choosing/switching the router at context provisioning (default OwlMeans vs opt-in react-router), and authoring a new plugin (e.g. SSR). Read before wiring routing in an app or writing a routing plugin.
4
- scope: general
5
4
  user-invocable: false
5
+ metadata:
6
+ scope: general
6
7
  ---
7
8
  <!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
8
9
 
@@ -2,7 +2,8 @@
2
2
  name: scaffolding
3
3
  description: How to scaffold a new OwlMeans Common project — the @owlmeans/create-app CLI (npm/bun/yarn create), its flags, what it generates, and the manual alternative. Use when asked to create/bootstrap/start a new OwlMeans app or set up a fresh project.
4
4
  user-invocable: true
5
- scope: general
5
+ metadata:
6
+ scope: general
6
7
  ---
7
8
  <!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
8
9
 
@@ -22,8 +23,8 @@ npx @owlmeans/create-app my-app
22
23
  ```
23
24
 
24
25
  By default it copies the template, runs `git init`, installs dependencies, and **deploys agent
25
- guidance** into the project via [[bun]]-installed `@owlmeans/agent-skills` (`.claude/skills/` +
26
- `.github/instructions/`). With `--no-install` the deploy still runs — the installer's own bundled
26
+ guidance** into the project via [[bun]]-installed `@owlmeans/agent-skills` (`.agents/skills/`).
27
+ With `--no-install` the deploy still runs — the installer's own bundled
27
28
  extras give the project its general/harness guidance; only the package-specific skills wait for
28
29
  `npx @owlmeans/agent-skills` after the install.
29
30
 
@@ -52,12 +53,11 @@ primitives + layout/nav/screens). Finish with `npx @owlmeans/agent-skills` to ad
52
53
  ```
53
54
  my-app/
54
55
  ├── package.json # bun workspaces: sources/*
55
- ├── CLAUDE.md # git/reporting/memory/self-education rules + project-purpose placeholder
56
- ├── .github/
57
- │ ├── copilot-instructions.md # same directives for Copilot
58
- │ └── instructions/ # seeded harness instructions (+ deployed ones)
59
- ├── .claude/skills/ # seeded harness skills (+ deployed ones)
60
- ├── .agents/memory/MEMORY.md # starter shared memory graph index (both tools)
56
+ ├── AGENTS.md # git/reporting/memory/self-education rules + project-purpose placeholder
57
+ ├── CLAUDE.md # thin bridge: imports AGENTS.md, documents the skill symlinks
58
+ ├── .agents/skills/ # seeded harness skills (+ deployed ones)
59
+ ├── .agents/scripts/link-skills.sh # refreshes the .claude/skills symlinks Claude Code needs
60
+ ├── .agents/memory/MEMORY.md # starter shared memory graph index
61
61
  ├── sources/common/ # consts, types, schemas, config, modules (entrypoints)
62
62
  ├── sources/api/ # context.ts (appendStaticResource), app/session/*, modules.ts, index.ts
63
63
  └── sources/web/ # vite + tailwind v4, components/ui/*, layout, nav, screens, render.tsx
@@ -72,11 +72,13 @@ The session demo stores items in `@owlmeans/static-resource`, namespaced by a cl
72
72
 
73
73
  ## Generated agent guidance
74
74
 
75
- `CLAUDE.md` and `.github/copilot-instructions.md` carry the same four mandatory sections as a real
76
- OwlMeans monorepo — **Git Workflow**, **Reporting**, **Memory** (the `.agents/memory/` graph store),
77
- **Self-Education** — plus the mandatory [[reuse-code]] section and a **project-purpose placeholder**
75
+ `AGENTS.md` carries the same four mandatory sections as a real OwlMeans monorepo — **Git
76
+ Workflow**, **Reporting**, **Memory** (the `.agents/memory/` graph store), **Self-Education** —
77
+ plus the mandatory [[reuse-code]] section and a **project-purpose placeholder**
78
78
  (`<!-- OWLMEANS:PROJECT-PURPOSE -->`). On the first agent session that block instructs the agent to
79
- ask the user what the project is for and replace it in both files.
79
+ ask the user what the project is for and replace it. `CLAUDE.md` is a thin bridge that imports
80
+ `AGENTS.md` and keeps the gitignored `.claude/skills/` symlinks fresh through a `SessionStart`
81
+ hook; Copilot and Codex need nothing beyond `AGENTS.md` and `.agents/skills/`.
80
82
 
81
83
  The harness guidance is **seeded into the template** as generated, banner-carrying copies, so a
82
84
  project has it even before the installer runs: [[agent-memory]], [[memory-promotion]],
@@ -1,8 +1,9 @@
1
1
  ---
2
2
  name: self-education
3
- description: Mandatory post-development guidance updating — after functionality is added or changed, rewrite the project skills/instructions the work touched as current rules (never as change notes), record external-doc findings (URL + gist) in the governing skill, or add skills/instructions for new subsystems and technologies. Required before the completion report whenever development started from a plan agreed with the agent.
3
+ description: Mandatory post-development guidance updating — after functionality is added or changed, rewrite the project skills the work touched as current rules (never as change notes), record external-doc findings (URL + gist) in the governing skill, or add skills for new subsystems and technologies. Required before the completion report whenever development started from a plan agreed with the agent.
4
4
  user-invocable: true
5
- scope: general
5
+ metadata:
6
+ scope: general
6
7
  ---
7
8
  <!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
8
9
 
@@ -20,24 +21,23 @@ a proposed approach. **Approval of a plan is simultaneously approval of its impl
20
21
  this self-education pass.** A planned task is not finishable without it. If guidance files cannot
21
22
  be edited (read-only run), list the required updates in the report instead.
22
23
 
23
- Also recommended after any unplanned change that made an existing skill/instruction inaccurate.
24
+ Also recommended after any unplanned change that made an existing skill inaccurate.
24
25
 
25
26
  ## Review checklist
26
27
 
27
28
  For each area the work touched:
28
29
 
29
- 1. Which existing skill/instruction covers it? (Check `.claude/skills/` +
30
- `.github/instructions/`.)
30
+ 1. Which existing skill covers it? (Check `.agents/skills/`.)
31
31
  2. Do its commands, paths, APIs, and behavior claims still hold after the change?
32
32
  3. Fix in place — rewrite the affected lines so they describe current behavior; never append a
33
- note about what this change did. Keep the skill and its instruction twin in sync.
33
+ note about what this change did.
34
34
 
35
35
  ## Shape of an update
36
36
 
37
- Skills and instructions state **current rules, not what changed**. Every edit is a rewrite in
37
+ A skill states **current rules, not what changed**. Every edit is a rewrite in
38
38
  place of the affected lines.
39
39
 
40
- Never write into a skill or instruction: dated bulletins ("2026-07-05 — …"), phase or migration
40
+ Never write into a skill: dated bulletins ("2026-07-05 — …"), phase or migration
41
41
  status ("Phase 3 complete", "migration done", "landed"), "formerly X, now Y", incident
42
42
  narratives, fixed-bug logs, or point-in-time inventories. If a line only makes sense to someone
43
43
  who watched the change happen, it does not belong in guidance — the rule it taught does, stated
@@ -67,8 +67,8 @@ library; if none exists and the technology will recur, create one (update-vs-cre
67
67
 
68
68
  ## New subsystems / technologies
69
69
 
70
- When new technology or a new subsystem entered the repo: create the skill/instruction pair for
71
- its procedures, and/or the `.agents/memory/` node for its facts — split along the
70
+ When new technology or a new subsystem entered the repo: create the skill for its procedures,
71
+ and/or the `.agents/memory/` node for its facts — split along the
72
72
  memory-vs-skill boundary (`agent-memory` / `memory-promotion`).
73
73
 
74
74
  ## Completion gate
@@ -1,8 +1,9 @@
1
1
  ---
2
2
  name: shadcn-versions
3
3
  description: How to update versions of shadcn UI primitives, Tailwind CSS v4, and related UI libs across all shadcn-based OwlMeans web packages. Distinct from the @owlmeans/* package version sync (see [[versions]] skill). Use when bumping tailwind, shadcn components, or utility libs.
4
- allowed-tools: Bash(grep *), Bash(sed *), Bash(bun install)
5
- scope: general
4
+ allowed-tools: Bash(grep *) Bash(sed *) Bash(bun install)
5
+ metadata:
6
+ scope: general
6
7
  ---
7
8
  <!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
8
9
 
@@ -2,7 +2,8 @@
2
2
  name: shadcn-web
3
3
  description: How to build and maintain shadcn UI + Tailwind v4 web packages in the OwlMeans framework. Auto-invoked when editing components.json, tailwind.config.*, globals.css, or files under components/ui/. Use when creating a new shadcn-based web package or adding shadcn components.
4
4
  user-invocable: false
5
- scope: general
5
+ metadata:
6
+ scope: general
6
7
  ---
7
8
  <!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
8
9