@owlmeans/create-app 0.1.18-rc.53 → 0.1.18-rc.55
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 +3 -4
- package/build/args.js +1 -1
- package/build/bin.js +0 -0
- package/build/run.js +3 -3
- package/build/run.js.map +1 -1
- package/build/template.js +2 -2
- package/build/template.js.map +1 -1
- package/package.json +2 -2
- package/template/AGENTS.md +13 -2
- package/template/README.bare.md +2 -2
- package/template/_agents/scripts/link-skills.sh +19 -2
- package/template/_agents/skills/reuse-code/SKILL.md +19 -2
- package/template/sources/api/package.json +1 -1
- package/template/sources/common/package.json +2 -2
- package/template/sources/web/package.json +8 -8
- package/template/CLAUDE.md +0 -13
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ bun create @owlmeans/app my-app
|
|
|
9
9
|
# or
|
|
10
10
|
yarn create @owlmeans/app my-app
|
|
11
11
|
# or
|
|
12
|
-
npx @owlmeans/create-app@^0.1.18-rc.
|
|
12
|
+
npx @owlmeans/create-app@^0.1.18-rc.55 my-app
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
## What it generates
|
|
@@ -18,8 +18,7 @@ A bun-workspace monorepo with three packages and **no authentication**:
|
|
|
18
18
|
|
|
19
19
|
```
|
|
20
20
|
my-app/
|
|
21
|
-
├── AGENTS.md # agent context, read by every coding agent
|
|
22
|
-
├── CLAUDE.md # thin bridge: imports AGENTS.md, links skills for Claude Code
|
|
21
|
+
├── AGENTS.md # agent context, read by every coding agent (Claude Code included)
|
|
23
22
|
├── .agents/skills/<name>/SKILL.md # deployed agent skills
|
|
24
23
|
├── .agents/memory/MEMORY.md # shared agent memory index
|
|
25
24
|
├── sources/
|
|
@@ -39,7 +38,7 @@ into the project via [`@owlmeans/agent-skills`](https://www.npmjs.com/package/@o
|
|
|
39
38
|
`AGENTS.md` carries the four mandatory sections a real OwlMeans monorepo uses — **Git Workflow**,
|
|
40
39
|
**Reporting**, **Memory**, **Self-Education** — plus a project-purpose placeholder your agent fills
|
|
41
40
|
in on its first session. GitHub Copilot and Codex read `AGENTS.md` and `.agents/skills/` natively;
|
|
42
|
-
Claude Code reads `
|
|
41
|
+
Claude Code reads `AGENTS.md` too and keeps per-skill symlinks in
|
|
43
42
|
`.claude/skills/` fresh through `sh .agents/scripts/link-skills.sh`. The harness guidance (memory
|
|
44
43
|
protocol, self-education, git policy, skill authoring, reuse-first) ships with the template, so it
|
|
45
44
|
is present even with `--no-install`.
|
package/build/args.js
CHANGED
|
@@ -5,7 +5,7 @@ Usage:
|
|
|
5
5
|
npm create @owlmeans/app@latest <dir> [options]
|
|
6
6
|
bun create @owlmeans/app <dir> [options]
|
|
7
7
|
yarn create @owlmeans/app <dir> [options]
|
|
8
|
-
npx @owlmeans/create-app@^0.1.18-rc.
|
|
8
|
+
npx @owlmeans/create-app@^0.1.18-rc.55 <dir> [options]
|
|
9
9
|
|
|
10
10
|
Generates three workspaces (common + api + web) with shadcn UI navigation and
|
|
11
11
|
layout, no authentication, and a session-scoped in-memory resource on the
|
package/build/bin.js
CHANGED
|
File without changes
|
package/build/run.js
CHANGED
|
@@ -50,7 +50,7 @@ export const run = async (args) => {
|
|
|
50
50
|
log(args.install
|
|
51
51
|
? '\nDeploying agent skills via @owlmeans/agent-skills…'
|
|
52
52
|
: '\nDeploying harness guidance via @owlmeans/agent-skills (general skills only — re-run'
|
|
53
|
-
+ '\n`npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
53
|
+
+ '\n`npx @owlmeans/agent-skills@^0.1.18-rc.46` after installing to add the package-specific ones)…');
|
|
54
54
|
try {
|
|
55
55
|
const result = await installSkills({
|
|
56
56
|
dir: dest,
|
|
@@ -62,7 +62,7 @@ export const run = async (args) => {
|
|
|
62
62
|
help: false,
|
|
63
63
|
});
|
|
64
64
|
if (result.code !== 0) {
|
|
65
|
-
process.stderr.write(` agent-skills exited with code ${result.code} — you can re-run \`npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
65
|
+
process.stderr.write(` agent-skills exited with code ${result.code} — you can re-run \`npx @owlmeans/agent-skills@^0.1.18-rc.46\` later.\n`);
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
catch (err) {
|
|
@@ -81,7 +81,7 @@ export const run = async (args) => {
|
|
|
81
81
|
? 'Add your entrypoints in sources/common/src/entrypoints.ts, handlers in sources/api\n'
|
|
82
82
|
+ 'and screens in sources/web/src/screens — the Home screen shows where they go.\n'
|
|
83
83
|
: 'Open the "Session" page to exercise the in-memory session resource.\n');
|
|
84
|
-
log('Agent guidance was scaffolded: AGENTS.md
|
|
84
|
+
log('Agent guidance was scaffolded: AGENTS.md, the skills in');
|
|
85
85
|
log('.agents/skills/ and the shared memory store at .agents/memory/MEMORY.md.');
|
|
86
86
|
log('Open the project in any coding agent — on the first session it will ask what the');
|
|
87
87
|
log('project is for and fill in its purpose for you.\n');
|
package/build/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/build/template.js
CHANGED
|
@@ -9,8 +9,8 @@ const DOTFILE_RENAMES = {
|
|
|
9
9
|
'_github': '.github',
|
|
10
10
|
// `_agents` carries the canonical harness — AGENTS.md's skills, the shared memory
|
|
11
11
|
// store and the link-skills bridge; the template seed (sync-agent-meta) writes
|
|
12
|
-
// `_agents/skills/` into this tree. `_claude` carries only the Claude Code
|
|
13
|
-
// (SessionStart hook + the gitkept symlink dir). Entries whose source dir is
|
|
12
|
+
// `_agents/skills/` into this tree. `_claude` carries only the Claude Code skill-link
|
|
13
|
+
// bridge (SessionStart hook + the gitkept symlink dir). Entries whose source dir is
|
|
14
14
|
// absent are inert.
|
|
15
15
|
'_agents': '.agents',
|
|
16
16
|
'_claude': '.claude',
|
package/build/template.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAEjE,uGAAuG;AACvG,MAAM,eAAe,GAA2B;IAC9C,YAAY,EAAE,YAAY;IAC1B,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,SAAS;IACpB,kFAAkF;IAClF,+EAA+E;IAC/E,
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/create-app",
|
|
3
|
-
"version": "0.1.18-rc.
|
|
3
|
+
"version": "0.1.18-rc.55",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Scaffold a fullstack OwlMeans Common app — common + api + web workspaces, shadcn UI navigation/layout, no auth, and a session-scoped in-memory resource, or --bare for the demo-free shell. Also usable programmatically via scaffold(). Deploys agent skills via @owlmeans/agent-skills by default.",
|
|
6
6
|
"type": "module",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"template"
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@owlmeans/agent-skills": "^0.1.18-rc.
|
|
33
|
+
"@owlmeans/agent-skills": "^0.1.18-rc.46"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@owlmeans/dep-config": "workspace:*",
|
package/template/AGENTS.md
CHANGED
|
@@ -92,9 +92,9 @@ tokens, secrets and internal addresses never belong in an `allow` selector.
|
|
|
92
92
|
Reusable guidance lives in `.agents/skills/<name>/SKILL.md`, deployed by `@owlmeans/agent-skills`
|
|
93
93
|
from the installed `@owlmeans/*` packages. Agents load a skill by topic, or you run `/<name>`
|
|
94
94
|
explicitly. Copilot and Codex read `.agents/skills/` directly; Claude Code reads the generated
|
|
95
|
-
symlinks in `.claude/skills/` (see
|
|
95
|
+
symlinks in `.claude/skills/` (see "Claude Code" below).
|
|
96
96
|
|
|
97
|
-
- After adding or updating any `@owlmeans/*` dependency, run `npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
97
|
+
- After adding or updating any `@owlmeans/*` dependency, run `npx @owlmeans/agent-skills@^0.1.18-rc.46` to refresh
|
|
98
98
|
the deployed skills.
|
|
99
99
|
- Deployed files carry an `AUTO-GENERATED` banner and are refreshed in place — never hand-edit them.
|
|
100
100
|
- To capture your own guidance, see the `skill-authoring` skill; to turn repeatedly-used memory into
|
|
@@ -117,6 +117,17 @@ not just Claude Code.
|
|
|
117
117
|
|
|
118
118
|
<!-- /OWLMEANS:LINKED-SKILLS -->
|
|
119
119
|
|
|
120
|
+
## Claude Code
|
|
121
|
+
|
|
122
|
+
Claude Code reads this file directly — there is no `CLAUDE.md`. Skills live only in
|
|
123
|
+
`.agents/skills/<name>/SKILL.md`, the single canonical location shared with Copilot and Codex.
|
|
124
|
+
`.claude/skills/` holds only generated per-skill symlinks (gitignored except `.gitkeep`); the
|
|
125
|
+
committed `SessionStart` hook runs `sh .agents/scripts/link-skills.sh` to (re)create them each session.
|
|
126
|
+
|
|
127
|
+
- Never author files under `.claude/skills/` — write skills in `.agents/skills/`.
|
|
128
|
+
- After creating, renaming, or deleting a skill, re-run
|
|
129
|
+
`sh .agents/scripts/link-skills.sh` so the session picks it up.
|
|
130
|
+
|
|
120
131
|
## Develop
|
|
121
132
|
|
|
122
133
|
```sh
|
package/template/README.bare.md
CHANGED
|
@@ -44,7 +44,7 @@ for a worked example of all three steps.
|
|
|
44
44
|
|
|
45
45
|
## Agent guidance
|
|
46
46
|
|
|
47
|
-
This project ships agent context in `AGENTS.md
|
|
47
|
+
This project ships agent context in `AGENTS.md`, with skills in
|
|
48
48
|
`.agents/skills/` and a shared memory store at `.agents/memory/`.
|
|
49
49
|
|
|
50
50
|
Files carrying an `AUTO-GENERATED` banner are managed by
|
|
@@ -53,5 +53,5 @@ them; write your own guidance as separate, un-bannered files. Refresh after addi
|
|
|
53
53
|
`@owlmeans/*` packages:
|
|
54
54
|
|
|
55
55
|
```sh
|
|
56
|
-
npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
56
|
+
npx @owlmeans/agent-skills@^0.1.18-rc.46
|
|
57
57
|
```
|
|
@@ -35,7 +35,9 @@
|
|
|
35
35
|
# contributes its skills a single time.
|
|
36
36
|
# - links every upstream skill that no local skill shadows into BOTH
|
|
37
37
|
# .agents/linked-skills/<name> and .claude/skills/<name>, pointing at the
|
|
38
|
-
# upstream's real directory (never
|
|
38
|
+
# upstream's real directory using a relative target (never another symlink).
|
|
39
|
+
# Relative targets survive a hostPath checkout mounted under another root.
|
|
40
|
+
# A local skill
|
|
39
41
|
# always wins; a nearer dependency wins over a farther one.
|
|
40
42
|
# - writes .agents/linked-skills/INDEX.md — skill / origin repo / description
|
|
41
43
|
# in deterministic order — and rewrites it only when its content changes
|
|
@@ -258,6 +260,21 @@ cand_has() {
|
|
|
258
260
|
awk -F"$TAB" -v n="$1" '$1 == n { found = 1 } END { exit found ? 0 : 1 }' "$CAND"
|
|
259
261
|
}
|
|
260
262
|
|
|
263
|
+
# Both directories are resolved absolute paths. Store their relative relationship,
|
|
264
|
+
# so a prepare hook inside /var/sources does not break the host's skill links.
|
|
265
|
+
relative_target() {
|
|
266
|
+
awk -v base="$1" -v dest="$2" 'BEGIN {
|
|
267
|
+
nb = split(base, b, "/")
|
|
268
|
+
nd = split(dest, d, "/")
|
|
269
|
+
i = 1
|
|
270
|
+
while (i <= nb && i <= nd && b[i] == d[i]) i++
|
|
271
|
+
result = ""
|
|
272
|
+
for (j = i; j <= nb; j++) result = result "../"
|
|
273
|
+
for (j = i; j <= nd; j++) result = result d[j] (j < nd ? "/" : "")
|
|
274
|
+
print result == "" ? "." : result
|
|
275
|
+
}'
|
|
276
|
+
}
|
|
277
|
+
|
|
261
278
|
# ---- dependency link pass --------------------------------------------------
|
|
262
279
|
if [ -n "$CAND" ] && [ -s "$CAND" ]; then
|
|
263
280
|
mkdir -p "$LNK" 2>/dev/null || true
|
|
@@ -270,7 +287,7 @@ if [ -n "$CAND" ] && [ -s "$CAND" ]; then
|
|
|
270
287
|
ok=0
|
|
271
288
|
continue
|
|
272
289
|
fi
|
|
273
|
-
ln -sfn "$path" "$target" 2>/dev/null || {
|
|
290
|
+
ln -sfn "$(relative_target "$(dirname "$target")" "$path")" "$target" 2>/dev/null || {
|
|
274
291
|
echo "link-skills: failed to link '$name' from $origin" >&2
|
|
275
292
|
ok=0
|
|
276
293
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: reuse-code
|
|
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.
|
|
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 (membership, invitations, organizations and access come from the IAM); extend before writing new; simplify what you write.
|
|
4
4
|
user-invocable: true
|
|
5
5
|
metadata:
|
|
6
6
|
scope: general
|
|
@@ -47,7 +47,7 @@ How you research the repo depends on whether `@owlmeans/*` is linked locally:
|
|
|
47
47
|
**https://github.com/owlmeans/common** — `tree.md` and package READMEs — to find the right package.
|
|
48
48
|
|
|
49
49
|
This is the same dev-linked detection `@owlmeans/agent-skills` uses (see its `detectLinked`). After
|
|
50
|
-
adding an `@owlmeans/*` dependency, run `npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
50
|
+
adding an `@owlmeans/*` dependency, run `npx @owlmeans/agent-skills@^0.1.18-rc.46` to deploy its
|
|
51
51
|
skill. Prefer an `@owlmeans/*` package over a third-party library or bespoke code whenever one fits.
|
|
52
52
|
|
|
53
53
|
### Never add an OwlMeans dependency without an explicit range
|
|
@@ -74,6 +74,23 @@ If an installed package nearly fits, **configure or extend it** rather than writ
|
|
|
74
74
|
its resources, services, entrypoints, and helpers. A small extension of a framework package beats a new
|
|
75
75
|
parallel implementation.
|
|
76
76
|
|
|
77
|
+
### People, organizations and access come from the IAM
|
|
78
|
+
|
|
79
|
+
An application that signs its people in through an OwlMeans IAM provider already has accounts,
|
|
80
|
+
organizations, memberships, invitations and grants — the provider keeps them. Before writing a
|
|
81
|
+
members table, an invitation flow, a role column or an organization picker:
|
|
82
|
+
|
|
83
|
+
- **Server** (`@owlmeans/server-iam`): `iamRuntime(context, request)` lists the person's
|
|
84
|
+
organizations, creates one, lists / adds (find-or-create by e-mail) / updates / removes members,
|
|
85
|
+
and lists, assigns and revokes grants — as the signed-in person, with owner and member rights
|
|
86
|
+
decided by the provider. `organizationOf` / `organizationsOf` read the session's organizations;
|
|
87
|
+
gates and `hasPermission` enforce access; `requireEntityKey(req)` is the tenant key to store
|
|
88
|
+
records by.
|
|
89
|
+
- **Browser** (`@owlmeans/client-iam`): `listOrganizations` / `switchOrganization` — the acting
|
|
90
|
+
organization is session state, never a per-request parameter.
|
|
91
|
+
- If the project's own scaffold already ships an organization switcher or a people / access screen,
|
|
92
|
+
extend it rather than adding a second one.
|
|
93
|
+
|
|
77
94
|
## 3. No package? Reuse code and extract an abstraction
|
|
78
95
|
|
|
79
96
|
When no package solves it, search the codebase for code that already solves a **similar** problem.
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"typecheck": "tsc -b"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@owlmeans/config": "^0.1.18-rc.
|
|
23
|
-
"@owlmeans/entrypoint": "^0.1.18-rc.
|
|
22
|
+
"@owlmeans/config": "^0.1.18-rc.41",
|
|
23
|
+
"@owlmeans/entrypoint": "^0.1.18-rc.39",
|
|
24
24
|
"@owlmeans/error": "^0.1.18-rc.36",
|
|
25
25
|
"@owlmeans/resource": "^0.1.18-rc.37",
|
|
26
26
|
"@owlmeans/route": "^0.1.18-rc.33",
|
|
@@ -11,16 +11,16 @@
|
|
|
11
11
|
"preview": "vite preview"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@owlmeans/client": "^0.1.18-rc.
|
|
15
|
-
"@owlmeans/client-config": "^0.1.18-rc.
|
|
16
|
-
"@owlmeans/client-context": "^0.1.18-rc.
|
|
17
|
-
"@owlmeans/client-entrypoint": "^0.1.18-rc.
|
|
18
|
-
"@owlmeans/client-i18n": "^0.1.18-rc.
|
|
19
|
-
"@owlmeans/entrypoint": "^0.1.18-rc.
|
|
14
|
+
"@owlmeans/client": "^0.1.18-rc.48",
|
|
15
|
+
"@owlmeans/client-config": "^0.1.18-rc.41",
|
|
16
|
+
"@owlmeans/client-context": "^0.1.18-rc.45",
|
|
17
|
+
"@owlmeans/client-entrypoint": "^0.1.18-rc.44",
|
|
18
|
+
"@owlmeans/client-i18n": "^0.1.18-rc.47",
|
|
19
|
+
"@owlmeans/entrypoint": "^0.1.18-rc.39",
|
|
20
20
|
"@owlmeans/route": "^0.1.18-rc.33",
|
|
21
21
|
"@owlmeans/state": "^0.1.18-rc.36",
|
|
22
|
-
"@owlmeans/web-client": "^0.1.18-rc.
|
|
23
|
-
"@owlmeans/web-panel": "^0.1.18-rc.
|
|
22
|
+
"@owlmeans/web-client": "^0.1.18-rc.58",
|
|
23
|
+
"@owlmeans/web-panel": "^0.1.18-rc.68",
|
|
24
24
|
"@radix-ui/react-label": "^2.1.0",
|
|
25
25
|
"@radix-ui/react-navigation-menu": "^1.2.14",
|
|
26
26
|
"@radix-ui/react-progress": "^1.1.0",
|
package/template/CLAUDE.md
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
@AGENTS.md
|
|
2
|
-
|
|
3
|
-
## Claude Code bridge
|
|
4
|
-
|
|
5
|
-
All guidance lives in `AGENTS.md` (imported above) and in skills under
|
|
6
|
-
`.agents/skills/<name>/SKILL.md` — the single canonical location shared with Copilot
|
|
7
|
-
and Codex. `.claude/skills/` holds only generated per-skill symlinks (gitignored
|
|
8
|
-
except `.gitkeep`); the committed `SessionStart` hook runs
|
|
9
|
-
`sh .agents/scripts/link-skills.sh` to (re)create them each session.
|
|
10
|
-
|
|
11
|
-
- Never author files under `.claude/skills/` — write skills in `.agents/skills/`.
|
|
12
|
-
- After creating, renaming, or deleting a skill, re-run
|
|
13
|
-
`sh .agents/scripts/link-skills.sh` so this session picks it up.
|