@owlmeans/create-app 0.1.13 → 0.1.14
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/README.md +10 -0
- package/build/run.d.ts.map +1 -1
- package/build/run.js +26 -24
- package/build/run.js.map +1 -1
- package/build/template.d.ts.map +1 -1
- package/build/template.js +3 -0
- package/build/template.js.map +1 -1
- package/package.json +5 -5
- package/template/CLAUDE.md +58 -20
- package/template/README.md +13 -4
- package/template/_agents/memory/MEMORY.md +17 -0
- package/template/_claude/skills/agent-memory/SKILL.md +138 -0
- package/template/_claude/skills/getting-started/SKILL.md +104 -0
- package/template/_claude/skills/git/SKILL.md +53 -0
- package/template/_claude/skills/memory-promotion/SKILL.md +67 -0
- package/template/_claude/skills/memory-recompact/SKILL.md +71 -0
- package/template/_claude/skills/reuse-code/SKILL.md +63 -0
- package/template/_claude/skills/self-education/SKILL.md +68 -0
- package/template/_claude/skills/skill-authoring/SKILL.md +80 -0
- package/template/_github/copilot-instructions.md +65 -21
- package/template/_github/instructions/agent-memory.instructions.md +139 -0
- package/template/_github/instructions/getting-started.instructions.md +62 -0
- package/template/_github/instructions/git.instructions.md +52 -0
- package/template/_github/instructions/memory-promotion.instructions.md +67 -0
- package/template/_github/instructions/memory-recompact.instructions.md +72 -0
- package/template/_github/instructions/reuse-code.instructions.md +50 -0
- package/template/_github/instructions/self-education.instructions.md +69 -0
- package/template/_github/instructions/skill-authoring.instructions.md +62 -0
- package/template/_claude/memory/MEMORY.md +0 -11
- package/template/_github/memory/MEMORY.md +0 -11
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Mandatory git rules — never run state-changing git without explicit instruction, commit only under the user's configured identity (never as the AI/agent, no Co-Authored-By trailer), report finished git work as a Markdown table, and never commit a conflicted working copy. Consult before any git operation."
|
|
3
|
+
applyTo: "**"
|
|
4
|
+
scope: general
|
|
5
|
+
---
|
|
6
|
+
<!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
|
|
7
|
+
|
|
8
|
+
# Git Workflow Rules
|
|
9
|
+
|
|
10
|
+
**Mandatory and universal.** These rules apply to every git operation in this repository and
|
|
11
|
+
**override any default agent behavior** — including any automatic `Co-Authored-By` or
|
|
12
|
+
AI/agent-attribution trailer. Consult them before running any git command.
|
|
13
|
+
|
|
14
|
+
## 0. Never run state-changing git without explicit instruction
|
|
15
|
+
|
|
16
|
+
- **Never run state-changing git operations** (`commit`, `add`/`rm` staging, `push`,
|
|
17
|
+
`reset`/rollback, `revert`, `rebase`, `merge`, `branch`, `checkout`/`switch`, `stash`,
|
|
18
|
+
`tag`, `cherry-pick`, force-push, etc.) unless the user **explicitly instructs it in the
|
|
19
|
+
current request**. Permission to make code edits is **not** permission to touch git.
|
|
20
|
+
- **Only exception**: creating and operating inside a **temporary git worktree** that a task
|
|
21
|
+
or subagent has **explicitly requested** for that purpose. Outside such an explicitly
|
|
22
|
+
requested tmp worktree, do nothing with git.
|
|
23
|
+
- **Read-only inspection is allowed**: `git status`, `git diff`, `git log`, `git show`,
|
|
24
|
+
`git branch --list`, etc. — use these to report state, never to change it.
|
|
25
|
+
|
|
26
|
+
## 1. Never commit under the agent's identity
|
|
27
|
+
|
|
28
|
+
- Commit only under the repository's preconfigured git identity — whatever `git config user.name`
|
|
29
|
+
and `git config user.email` resolve to (set by the user, globally or locally).
|
|
30
|
+
- **Never** override authorship: do not pass `--author`, do not set or change `user.name` /
|
|
31
|
+
`user.email`, and never substitute an AI / agent / assistant name or email.
|
|
32
|
+
- **Never** add a `Co-Authored-By:` trailer (or any other trailer) attributing the commit to
|
|
33
|
+
Claude, Copilot, or any AI/agent. Every commit is the user's, attributed solely to the user.
|
|
34
|
+
- If the repository has no git identity configured (neither local nor global), stop and ask the
|
|
35
|
+
user — do not invent one.
|
|
36
|
+
|
|
37
|
+
## 2. Always report finished git work as a table
|
|
38
|
+
|
|
39
|
+
- After completing any git action (commit, push, branch, checkout, merge, rebase, stash, tag,
|
|
40
|
+
reset, etc.), summarize what was done as a Markdown table.
|
|
41
|
+
- One row per action. Include at least **Action**, **Target** (branch / remote / files / ref),
|
|
42
|
+
and **Result** (commit SHA, `pushed`, `up to date`, `conflict`, …). Add a **Notes** column
|
|
43
|
+
when useful.
|
|
44
|
+
|
|
45
|
+
## 3. Never commit a conflicted working copy
|
|
46
|
+
|
|
47
|
+
- If a `merge`, `rebase`, `cherry-pick`, `stash pop`/`apply`, or `pull` produces conflicts,
|
|
48
|
+
**do not** finalize it: do not run `git commit`, `git merge --continue`,
|
|
49
|
+
`git rebase --continue`, or stage-and-commit the conflicted tree to "resolve" it on the
|
|
50
|
+
user's behalf.
|
|
51
|
+
- Stop, list the conflicted paths in the report table, and hand control back to the user —
|
|
52
|
+
unless the user has explicitly told you how to resolve the conflict and commit.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Promote procedure-shaped or hot memory into skills/instructions — triggers (procedure test, promote? flags, over-cap), update-vs-create rule, post-promotion pointer state. Apply when converting memory content into guidance files or when a promote? flag appears in a memory node."
|
|
3
|
+
applyTo: "**/.agents/memory/**, **/.claude/skills/**, **/.github/instructions/**"
|
|
4
|
+
scope: general
|
|
5
|
+
---
|
|
6
|
+
<!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
|
|
7
|
+
|
|
8
|
+
# Memory promotion
|
|
9
|
+
|
|
10
|
+
Memory holds **facts**; **procedures** belong in instructions/skills, where they auto-apply and
|
|
11
|
+
stop consuming memory-read cycles. Promotion is how the store stays compact and the harness
|
|
12
|
+
teaches itself.
|
|
13
|
+
|
|
14
|
+
## Triggers
|
|
15
|
+
|
|
16
|
+
- **Procedure shape**: the content answers *how to do X* — ordered steps, imperative verbs,
|
|
17
|
+
command lines, if-this-do-that tables. Promote it.
|
|
18
|
+
- **Repeated touch**: an existing ` → promote?` flag on content you are touching again means
|
|
19
|
+
promote now; if mid-task, promotion becomes the first row of the completion report.
|
|
20
|
+
- **Over-cap**: a node past the 120-line hard cap with roughly a third or more procedure-shaped
|
|
21
|
+
content → promote the procedures instead of splitting the node.
|
|
22
|
+
- Corroborating only (weak — agents don't commit, so only user commits appear):
|
|
23
|
+
`git log --oneline -- .agents/memory/<node>.md` showing ≥ 3 commits within ~a month marks a
|
|
24
|
+
hot node worth evaluating.
|
|
25
|
+
|
|
26
|
+
## Procedure-shape test
|
|
27
|
+
|
|
28
|
+
Procedure-shaped answers *how to do X*: ordered steps, imperative verbs, commands, action tables.
|
|
29
|
+
Fact-shaped answers *what is true*: declarative structure, invariants, symptom→cause pairs.
|
|
30
|
+
Mixed entries split — the fact stays in the node, the "then do" moves out.
|
|
31
|
+
|
|
32
|
+
## Flagging (how content earns promotion)
|
|
33
|
+
|
|
34
|
+
When you **merge** procedure-shaped content into a node, or you **use** (not merely check) a
|
|
35
|
+
node's content to perform a task, append ` → promote?` to that line or section heading.
|
|
36
|
+
Evaluable by reading the file alone — no tooling required.
|
|
37
|
+
|
|
38
|
+
## Update vs create
|
|
39
|
+
|
|
40
|
+
**Default is update** — extend the existing instruction/skill whose scope covers the activity,
|
|
41
|
+
even partially; keep both twins in sync. Create a NEW pair only when:
|
|
42
|
+
|
|
43
|
+
- (a) a new subsystem or technology entered the repo;
|
|
44
|
+
- (b) an activity with no covering instruction needed memory read/write more than once (a
|
|
45
|
+
re-encountered ` → promote?` flag);
|
|
46
|
+
- (c) an external technology required internet docs and has no governing instruction.
|
|
47
|
+
|
|
48
|
+
New instructions multiply lookup cost — compactness applies to the guidance population too.
|
|
49
|
+
|
|
50
|
+
## Procedure
|
|
51
|
+
|
|
52
|
+
1. Collect the flagged / procedure-shaped memory lines.
|
|
53
|
+
2. Author or extend the `.github/instructions/<name>.instructions.md` and its
|
|
54
|
+
`.claude/skills/<name>/SKILL.md` twin, following the repo's skill-authoring / create-skill
|
|
55
|
+
conventions.
|
|
56
|
+
3. Shrink the node: delete the promoted prose; leave one pointer line (format below).
|
|
57
|
+
4. Remove the ` → promote?` flags.
|
|
58
|
+
5. Update the node's index hook if its main value moved; bump `updated:`.
|
|
59
|
+
6. Report per the Reporting rule.
|
|
60
|
+
|
|
61
|
+
## Post-promotion state
|
|
62
|
+
|
|
63
|
+
The node keeps exactly one line under `## Pointers`:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
- <activity> → skill `<name>` (procedure lives in .claude/skills/<name>/ + .github/instructions/<name>.instructions.md)
|
|
67
|
+
```
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Whole-store memory recompaction and migration for .agents/memory/ — rebuild node map from project structure, merge records, enforce caps, regenerate the index, fold in and delete legacy .claude/memory and .github/memory stores. Apply when restructuring a memory store or migrating legacy stores."
|
|
3
|
+
applyTo: "**/.agents/memory/**, **/.claude/memory/**, **/.github/memory/**"
|
|
4
|
+
scope: general
|
|
5
|
+
---
|
|
6
|
+
<!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
|
|
7
|
+
|
|
8
|
+
# Memory recompaction
|
|
9
|
+
|
|
10
|
+
Whole-store maintenance for `.agents/memory/` (protocol:
|
|
11
|
+
`.github/instructions/agent-memory.instructions.md`). Also the migration procedure for legacy
|
|
12
|
+
`.claude/memory/` + `.github/memory/` stores. Store-wide rewrite — propose it when triggers
|
|
13
|
+
appear; the operator invokes it.
|
|
14
|
+
|
|
15
|
+
## When
|
|
16
|
+
|
|
17
|
+
- An index entry runs longer than one line, or the index exceeds 50 lines.
|
|
18
|
+
- Nodes keyed by event/date/phase/task, or bodies reading as session narratives.
|
|
19
|
+
- The same fact stated in two or more nodes.
|
|
20
|
+
- More than ~20% of a node is stale `Status` content.
|
|
21
|
+
- A node's `updated:` is months behind commits touching its scope.
|
|
22
|
+
- Legacy `.claude/memory/` or `.github/memory/` dirs exist → run the migration below.
|
|
23
|
+
|
|
24
|
+
## Build the target node map first
|
|
25
|
+
|
|
26
|
+
Before reading any record bodies, derive the node set from **project structure**: workspaces
|
|
27
|
+
array / top-level dirs → subsystem nodes; then the cross-cutting concerns and external
|
|
28
|
+
integrations actually present. Write the map down (old file/section → target node). Every
|
|
29
|
+
existing record must land in exactly one node — or split into atoms landing in several. Only
|
|
30
|
+
then process records.
|
|
31
|
+
|
|
32
|
+
## Per-record pass
|
|
33
|
+
|
|
34
|
+
For each old file or section:
|
|
35
|
+
|
|
36
|
+
1. Apply the agent-memory extraction rule — keep invariants, cause→effect, counter-moves,
|
|
37
|
+
symptom fingerprints; drop narratives, dates, attempt logs, anything code/git already states.
|
|
38
|
+
2. Route each surviving atom to its node's section (Facts / Invariants / Gotchas / Pointers;
|
|
39
|
+
genuinely in-flight state → `Status`, dated).
|
|
40
|
+
3. On conflict between records, the version consistent with **current code** wins — check the
|
|
41
|
+
code, don't average.
|
|
42
|
+
4. Procedure-shaped survivors do not enter nodes — route them to
|
|
43
|
+
`.github/instructions/memory-promotion.instructions.md`.
|
|
44
|
+
|
|
45
|
+
## Legacy-store merge (migration)
|
|
46
|
+
|
|
47
|
+
1. Union `.claude/memory/` and `.github/memory/`. Same-named files are two drifted sources of
|
|
48
|
+
ONE node — merge both; the code-consistent version wins.
|
|
49
|
+
2. Index-only entries with no backing file: extract the fact into its node, or drop if stale.
|
|
50
|
+
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.
|
|
53
|
+
4. When the new store verifies (below), delete both legacy dirs entirely.
|
|
54
|
+
|
|
55
|
+
## Regenerate the index
|
|
56
|
+
|
|
57
|
+
Rebuild `MEMORY.md` from the resulting nodes per the agent-memory format — never edit the old
|
|
58
|
+
index incrementally.
|
|
59
|
+
|
|
60
|
+
## Verify
|
|
61
|
+
|
|
62
|
+
- Every node file is listed in the index; every listed node exists; every wiki-link resolves.
|
|
63
|
+
- All caps met (index ≤ 50 lines; nodes ≤ 120; entries ≤ 3 lines; Status ≤ 5 dated lines).
|
|
64
|
+
- No dates outside `Status` and `updated:`; no event-keyed filenames.
|
|
65
|
+
- Both root instruction files' Memory sections point at `.agents/memory/`.
|
|
66
|
+
- Legacy dirs gone; `grep -rn '\.claude/memory\|\.github/memory'` over the repo's harness files
|
|
67
|
+
returns nothing but allowlisted historical mentions.
|
|
68
|
+
|
|
69
|
+
## Report
|
|
70
|
+
|
|
71
|
+
One table: **Node** | **Sources merged** | **Lines before → after**. Follow the Reporting rule
|
|
72
|
+
(what, not why).
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Discovery-first, reuse-first workflow for OwlMeans projects. Apply before planning or building any feature, before proposing a third-party library or custom solution, and after writing code: find an existing @owlmeans/* package or existing code first, extend before writing new, and simplify what you write."
|
|
3
|
+
applyTo: "**/*.ts, **/*.tsx, **/package.json"
|
|
4
|
+
scope: general
|
|
5
|
+
---
|
|
6
|
+
<!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
|
|
7
|
+
|
|
8
|
+
# Reuse before you build
|
|
9
|
+
|
|
10
|
+
OwlMeans ships a large framework of `@owlmeans/*` packages. Before proposing a third-party library,
|
|
11
|
+
designing a custom solution, or finishing a feature, exhaust what already exists. Apply these four
|
|
12
|
+
steps in order — during planning **and** implementation.
|
|
13
|
+
|
|
14
|
+
## 1. Find an `@owlmeans/*` package first
|
|
15
|
+
|
|
16
|
+
- **Consult the deployed instructions.** Each installed `@owlmeans/*` package ships
|
|
17
|
+
`.github/instructions/<pkg>.instructions.md` (and `.claude/skills/<pkg>/SKILL.md`) describing what it
|
|
18
|
+
does — your local catalogue of installed capabilities.
|
|
19
|
+
- **Scan installed packages** in `node_modules/@owlmeans/*` and, in a workspace, the nested
|
|
20
|
+
`sources/*/node_modules/@owlmeans/*`.
|
|
21
|
+
- **Discover not-yet-installed packages** by researching the **owlmeans/common** repository — its
|
|
22
|
+
`tree.md` dependency map and per-package READMEs.
|
|
23
|
+
|
|
24
|
+
### Local vs. web research (the symlink rule)
|
|
25
|
+
|
|
26
|
+
- `ls -la node_modules/@owlmeans/<pkg>`: a **symlink escaping `node_modules`** — or a project whose own
|
|
27
|
+
workspace publishes `@owlmeans/*` packages (**this is the common repo**) — means the source is local.
|
|
28
|
+
**Research locally** (`tree.md`, the package sources, the canonical instructions); do **not** use the
|
|
29
|
+
internet.
|
|
30
|
+
- Otherwise (clean npm install), **research the web**: https://github.com/owlmeans/common.
|
|
31
|
+
|
|
32
|
+
After adding an `@owlmeans/*` dependency, run `npx @owlmeans/agent-skills` to deploy its instruction.
|
|
33
|
+
Prefer an `@owlmeans/*` package over a third-party library or bespoke code.
|
|
34
|
+
|
|
35
|
+
## 2. Reuse or extend before writing custom
|
|
36
|
+
|
|
37
|
+
If an installed package nearly fits, configure or extend it (its resources, services, modules, helpers)
|
|
38
|
+
rather than writing a parallel implementation.
|
|
39
|
+
|
|
40
|
+
## 3. No package? Reuse code and extract an abstraction
|
|
41
|
+
|
|
42
|
+
Search the codebase for code solving a **similar** problem. Factor out a shared helper or abstraction
|
|
43
|
+
instead of duplicating or starting from scratch. Write new code only when nothing reusable exists.
|
|
44
|
+
|
|
45
|
+
## 4. Simplify after writing
|
|
46
|
+
|
|
47
|
+
Review new code: can it be shorter, clearer, fewer moving parts? Lean on framework utilities, drop dead
|
|
48
|
+
branches. Less code that reuses the framework beats more bespoke code.
|
|
49
|
+
|
|
50
|
+
See the `dependency-tree`, `scaffolding`, and `bun` instructions.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Mandatory post-development skill/instruction updating — after adding or changing functionality, update touched project guidance, note external-doc findings in the governing instruction, or add instructions for new subsystems/technologies; required before the completion report when development started from an agreed plan. Apply when editing skills or instruction files after development."
|
|
3
|
+
applyTo: "**/.claude/skills/**, **/.github/instructions/**"
|
|
4
|
+
scope: general
|
|
5
|
+
---
|
|
6
|
+
<!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
|
|
7
|
+
|
|
8
|
+
# Self-education
|
|
9
|
+
|
|
10
|
+
After functionality is added or changed, the guidance that describes it must catch up — the agent
|
|
11
|
+
teaches itself for next time. This pass runs after implementation and verification, **before**
|
|
12
|
+
the completion report.
|
|
13
|
+
|
|
14
|
+
## When (mandatory)
|
|
15
|
+
|
|
16
|
+
Development "started from planning" when the session produced a plan the operator approved before
|
|
17
|
+
implementation — a plan approval, an agreed written plan/spec, or an explicit "go ahead" on a
|
|
18
|
+
proposed approach. **Approval of a plan is simultaneously approval of its implicit final step:
|
|
19
|
+
this self-education pass.** A planned task is not finishable without it. If guidance files cannot
|
|
20
|
+
be edited (read-only run), list the required updates in the report instead.
|
|
21
|
+
|
|
22
|
+
Also recommended after any unplanned change that made an existing instruction/skill inaccurate.
|
|
23
|
+
|
|
24
|
+
## Review checklist
|
|
25
|
+
|
|
26
|
+
For each area the work touched:
|
|
27
|
+
|
|
28
|
+
1. Which existing instruction/skill covers it? (Check `.github/instructions/` +
|
|
29
|
+
`.claude/skills/`.)
|
|
30
|
+
2. Do its commands, paths, APIs, and behavior claims still hold after the change?
|
|
31
|
+
3. Fix in place — and keep the instruction and its skill twin in sync.
|
|
32
|
+
|
|
33
|
+
## Non-project instructions
|
|
34
|
+
|
|
35
|
+
If a general or imported instruction gained an important usage pattern during the work, add the
|
|
36
|
+
pattern to the **deployed copy** in this repo and note it in the report as an upstream
|
|
37
|
+
candidate — canonical archive copies change only on explicit operator request.
|
|
38
|
+
|
|
39
|
+
## External docs
|
|
40
|
+
|
|
41
|
+
If the work required reading internet documentation for an external API, library, or service,
|
|
42
|
+
the governing instruction must record it under an `## External docs` heading:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
- <URL> — <one-line gist of what it settled> (<version/date if load-bearing>)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Governing instruction = the project instruction covering the touched area; else the one covering
|
|
49
|
+
that library; if none exists and the technology will recur, create one (update-vs-create rule in
|
|
50
|
+
`.github/instructions/memory-promotion.instructions.md`). Never leave doc findings only in
|
|
51
|
+
memory or the conversation.
|
|
52
|
+
|
|
53
|
+
## New subsystems / technologies
|
|
54
|
+
|
|
55
|
+
When new technology or a new subsystem entered the repo: create the instruction/skill pair for
|
|
56
|
+
its procedures, and/or the `.agents/memory/` node for its facts — split along the
|
|
57
|
+
memory-vs-instruction boundary (`.github/instructions/agent-memory.instructions.md` /
|
|
58
|
+
`.github/instructions/memory-promotion.instructions.md`).
|
|
59
|
+
|
|
60
|
+
## Completion gate
|
|
61
|
+
|
|
62
|
+
The completion report must contain a Self-education table:
|
|
63
|
+
|
|
64
|
+
| Item | Action | Path |
|
|
65
|
+
|---|---|---|
|
|
66
|
+
| <area/skill> | updated / created / none-needed | <path> |
|
|
67
|
+
|
|
68
|
+
"none-needed" requires a one-phrase reason. A post-plan completion report without this table is
|
|
69
|
+
a protocol violation.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "How to add agent guidance to an OwlMeans project — author a Claude Code skill (.claude/skills/<name>/SKILL.md) and the matching Copilot instruction (.github/instructions/<name>.instructions.md), keep them in sync, and choose skill vs memory. Apply when capturing knowledge as a skill or instruction."
|
|
3
|
+
applyTo: "**/.claude/skills/**, **/.github/instructions/**"
|
|
4
|
+
scope: general
|
|
5
|
+
---
|
|
6
|
+
<!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
|
|
7
|
+
|
|
8
|
+
# Authoring agent guidance (skills + instructions)
|
|
9
|
+
|
|
10
|
+
OwlMeans projects carry agent guidance in two parallel places so both Claude Code and GitHub
|
|
11
|
+
Copilot can use it:
|
|
12
|
+
|
|
13
|
+
| Tool | Location | Shape |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| Claude Code | `.claude/skills/<name>/SKILL.md` | one directory per skill, `SKILL.md` is the entrypoint |
|
|
16
|
+
| GitHub Copilot | `.github/instructions/<name>.instructions.md` | one file per topic |
|
|
17
|
+
|
|
18
|
+
Author **both** for any guidance you want available to either tool, using the same `<name>` on both
|
|
19
|
+
sides so they read as one topic.
|
|
20
|
+
|
|
21
|
+
## SKILL.md frontmatter (Claude Code)
|
|
22
|
+
|
|
23
|
+
```yaml
|
|
24
|
+
---
|
|
25
|
+
name: my-skill # the /slash-command (lowercase, hyphens)
|
|
26
|
+
description: What it does and WHEN to use it. # primary auto-invocation signal
|
|
27
|
+
user-invocable: true # false = background knowledge only
|
|
28
|
+
allowed-tools: Bash(bun *) Read # optional
|
|
29
|
+
---
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The `description` decides when Claude auto-invokes the skill — describe the topic and the trigger.
|
|
33
|
+
|
|
34
|
+
## Instruction frontmatter (Copilot)
|
|
35
|
+
|
|
36
|
+
```yaml
|
|
37
|
+
---
|
|
38
|
+
description: "Short summary — apply when …"
|
|
39
|
+
applyTo: "**/*.ts, **/relevant/**" # globs that auto-attach this instruction
|
|
40
|
+
---
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
`applyTo` controls when Copilot attaches the instruction. Use the patterns the guidance is about;
|
|
44
|
+
fall back to `**/*.ts, **/*.tsx` if broadly relevant.
|
|
45
|
+
|
|
46
|
+
## Keep the pair in sync
|
|
47
|
+
|
|
48
|
+
Change one side, change the other. They need not be identical prose but must not contradict.
|
|
49
|
+
Cross-reference related guidance by name.
|
|
50
|
+
|
|
51
|
+
## Skill vs memory
|
|
52
|
+
|
|
53
|
+
- **Skill / instruction** — a reusable procedure or reference worth auto-invoking.
|
|
54
|
+
- **Memory** (shared `.agents/memory/` graph store, both tools) — a fact, decision, or gotcha
|
|
55
|
+
specific to this project's history. See the agent-memory instruction; promotion triggers live
|
|
56
|
+
in the memory-promotion instruction.
|
|
57
|
+
|
|
58
|
+
## After adding a skill
|
|
59
|
+
|
|
60
|
+
If it absorbed memory content, shrink the source `.agents/memory/` node to a pointer line
|
|
61
|
+
(memory-promotion instruction) — the memory index does not list skills. Reference it from
|
|
62
|
+
`.github/copilot-instructions.md` / `CLAUDE.md` if it should be discoverable every session.
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# Memory Index
|
|
2
|
-
|
|
3
|
-
Read this at the start of every session. Load any file relevant to the current task before acting.
|
|
4
|
-
|
|
5
|
-
When you learn something durable about __APP_NAME__ that isn't obvious from the code or git history —
|
|
6
|
-
a decision and why, a gotcha, project state or goals — save it to `.claude/memory/<topic>.md` and add
|
|
7
|
-
a one-line pointer below. See the `agent-memory` skill.
|
|
8
|
-
|
|
9
|
-
## Memory files
|
|
10
|
-
|
|
11
|
-
_(none yet)_
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# Memory Index
|
|
2
|
-
|
|
3
|
-
Read this at the start of every session. Load any file relevant to the current task before acting.
|
|
4
|
-
|
|
5
|
-
When you learn something durable about __APP_NAME__ that isn't obvious from the code or git history —
|
|
6
|
-
a decision and why, a gotcha, project state or goals — save it to `.github/memory/<topic>.md` and add
|
|
7
|
-
a one-line pointer below. See `agent-memory.instructions.md`.
|
|
8
|
-
|
|
9
|
-
## Memory files
|
|
10
|
-
|
|
11
|
-
_(none yet)_
|