@aacombarro89/praxis 0.1.12 → 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 +28 -0
- package/dist/anchors.d.ts +17 -1
- package/dist/anchors.js +65 -4
- package/dist/anchors.js.map +1 -1
- package/dist/emit.js +5 -1
- package/dist/emit.js.map +1 -1
- package/dist/init.d.ts +11 -3
- package/dist/init.js +55 -4
- package/dist/init.js.map +1 -1
- package/dist/manifest.d.ts +48 -0
- package/dist/manifest.js +139 -0
- package/dist/manifest.js.map +1 -1
- package/dist/packages.d.ts +1 -0
- package/dist/packages.js +14 -1
- package/dist/packages.js.map +1 -1
- package/dist/program.d.ts +18 -0
- package/dist/program.js +119 -15
- package/dist/program.js.map +1 -1
- package/package.json +1 -1
- package/packages/layer2/workspace/commands/workspace-upkeep.md +90 -0
- package/packages/layer2/workspace/package.yaml +14 -0
- package/packages/layer2/workspace/rules.md +29 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Hub-sovereign workspace upkeep — audit this hub and its cloned members, report drift and proposed edits, and apply only what the user confirms.
|
|
3
|
+
argument-hint: [optional-member-or-area-to-focus]
|
|
4
|
+
allowed-tools: Read, Glob, Bash(git log:*), Bash(npx @aacombarro89/praxis@latest check:*), Bash(npx @aacombarro89/praxis@latest sync:*), Bash(npx @aacombarro89/praxis check:*), Bash(npx @aacombarro89/praxis sync:*), Bash(praxis check:*), Bash(praxis sync:*)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Focus: {{arguments}} — if empty, cover the whole workspace at a high level.
|
|
8
|
+
|
|
9
|
+
This is the hub-sovereign upkeep pass for a Praxis **workspace**: a meta-repo
|
|
10
|
+
with independent git repos cloned beneath it. It sequences the hub's own
|
|
11
|
+
upkeep, keeps the hub wiki's cross-repo knowledge current, fans work out to
|
|
12
|
+
cloned members in **audit mode only**, and never edits a member repo without
|
|
13
|
+
the user's explicit confirmation.
|
|
14
|
+
|
|
15
|
+
**Planning entry.** Enter this pass in planning mode when the rule's planning
|
|
16
|
+
trigger routed here, or when `{{arguments}}` states a planning or
|
|
17
|
+
implementation question rather than a general sweep. Under planning entry:
|
|
18
|
+
scope step 4's fan-out to one read-only planning workstream per affected
|
|
19
|
+
cloned member instead of the full roster; treat steps 2 and 3 as optional
|
|
20
|
+
observations, skipped when they don't bear on the question; and collapse
|
|
21
|
+
steps 5 and 6 into a single planning synthesis — constraints, validation
|
|
22
|
+
commands, risks, and `file:line` evidence for the hub plan — instead of the
|
|
23
|
+
consolidated upkeep report. The entire pass runs read-only in this mode: hub
|
|
24
|
+
drift (step 2) and wiki staleness (step 3) are reported as proposals only,
|
|
25
|
+
and no `sync`, wiki edit, or instruction edit is applied until the user is
|
|
26
|
+
out of planning and confirms.
|
|
27
|
+
|
|
28
|
+
**CLI resolution (all repos).** In the hub and every cloned member, run
|
|
29
|
+
`praxis check` when that repo has an available `praxis` command. If `praxis` is
|
|
30
|
+
unavailable, immediately fall back to `npx @aacombarro89/praxis@latest check`
|
|
31
|
+
and continue the pass — a missing local command is not a reason to skip that
|
|
32
|
+
repo. Use the matching `praxis sync` or
|
|
33
|
+
`npx @aacombarro89/praxis@latest sync` invocation if drift needs syncing.
|
|
34
|
+
Always pin the fallback to `@latest`; never use a bare
|
|
35
|
+
`npx @aacombarro89/praxis`, which can silently reuse a stale cached build.
|
|
36
|
+
|
|
37
|
+
1. **Read the workspace** from `praxis.yaml`'s `workspace:` section (members,
|
|
38
|
+
edges, contract pages). If it is absent, say so and stop — this command is
|
|
39
|
+
for a workspace hub only. Note any member whose directory isn't cloned yet;
|
|
40
|
+
skip it in the steps below and point at that repo's own clone/setup script
|
|
41
|
+
if one exists — never invent one.
|
|
42
|
+
|
|
43
|
+
2. **Hub pass.** Perform `{{workflow:praxis-upkeep}}` for this repo. Its
|
|
44
|
+
`praxis check` output now includes member-anchor skips and the `Workspace:`
|
|
45
|
+
status line for this hub — read them, don't just exit-code them.
|
|
46
|
+
|
|
47
|
+
3. **Workspace wiki currency.** Ensure the hub wiki has a system-map page (a
|
|
48
|
+
member table, the dependency edges, a contract-page index, cross-repo change
|
|
49
|
+
order, and an add-a-member checklist) consistent with `workspace:` in
|
|
50
|
+
`praxis.yaml` — the manifest is the source of truth for membership and
|
|
51
|
+
edges; the wiki holds the prose and contracts. Anchor member references with
|
|
52
|
+
`member:` anchors so `praxis check` trips on drift. This is wiki work: follow
|
|
53
|
+
`{{workflow:praxis-wiki}}`'s own conventions and confirmation gate before
|
|
54
|
+
creating or editing pages.
|
|
55
|
+
|
|
56
|
+
4. **Member fan-out (report-first).** For each **cloned** member — each
|
|
57
|
+
**affected** cloned member only, under planning entry — produce a
|
|
58
|
+
per-member brief with `{{workflow:praxis-handoff}}` and delegate one
|
|
59
|
+
workstream per member — where the tool lacks subagent spawning, execute the
|
|
60
|
+
briefs sequentially instead. Every brief must name the resolved member root
|
|
61
|
+
(the hub root plus the member's declared `path`) and make the delegate's
|
|
62
|
+
first tool action use that root as its working directory; the delegate
|
|
63
|
+
confirms the root it used in its report. Each delegate reads that repo's own
|
|
64
|
+
`CLAUDE.md` and every file under `.claude/rules/` (Claude Code) or
|
|
65
|
+
`AGENTS.md` (Codex/agents-md) first, then `docs/wiki/index.md` when it
|
|
66
|
+
exists and the relevant pages those entrypoints identify, before inspecting
|
|
67
|
+
source.
|
|
68
|
+
|
|
69
|
+
When the focus is planning or an implementation question, do not stop at
|
|
70
|
+
methodology currency: state the concrete member-local question in the brief,
|
|
71
|
+
inspect the relevant implementation source and nearest tests, and return the
|
|
72
|
+
constraints, local validation commands, and unresolved risks with `file:line`
|
|
73
|
+
evidence. Keep the workstream in **audit mode**: run `praxis check` there,
|
|
74
|
+
assess instruction/wiki currency, and **return proposed edits without
|
|
75
|
+
applying them**. Also have it flag any duplicated cross-repo integration
|
|
76
|
+
prose that belongs in the hub's contract pages instead.
|
|
77
|
+
|
|
78
|
+
5. **Edge-based staleness judgment.** For each member with changes since its
|
|
79
|
+
relevant contract page was last touched (compare via `git log`), walk
|
|
80
|
+
`edges` where that member is the producer (`from`) and name each downstream
|
|
81
|
+
member plus its contract page as *likely stale* — a candidate for review,
|
|
82
|
+
not proof.
|
|
83
|
+
|
|
84
|
+
6. **Consolidated report + apply opt-in.** Report: hub status; a per-member
|
|
85
|
+
table (cloned / onboarded / check result); proposed edits per member;
|
|
86
|
+
likely-stale contract pages; and a recommendation of the form "run
|
|
87
|
+
`{{workflow:praxis-upkeep}}` in `<member>`" for any member whose own upkeep
|
|
88
|
+
needs running. On explicit user confirmation, re-delegate to apply the
|
|
89
|
+
confirmed subset per member, so the user can review each member's own git
|
|
90
|
+
diff. Never edit a member's files without that confirmation.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Package manifest (docs/wiki/packages-and-emit.md, D53). Ships a standing
|
|
2
|
+
# reminder (rules.md) plus the /praxis-workspace-upkeep command
|
|
3
|
+
# (commands/workspace-upkeep.md): hub-sovereign upkeep for a Praxis workspace —
|
|
4
|
+
# a meta-repo with N independent git repos cloned beneath it, declared in this
|
|
5
|
+
# repo's own `workspace:` praxis.yaml section. Gated on the `workspace`
|
|
6
|
+
# pseudo-stack, which is derived from that section (never user-declarable in
|
|
7
|
+
# `stacks:`, src/manifest.ts/src/packages.ts), so it never lands in an ordinary
|
|
8
|
+
# repo. Requires wiki-memory/upkeep/session-handoff (D21): the command
|
|
9
|
+
# delegates to all three rather than restating their steps.
|
|
10
|
+
name: workspace
|
|
11
|
+
layer: layer2
|
|
12
|
+
stack: workspace
|
|
13
|
+
provides: [rules, commands]
|
|
14
|
+
requires: [wiki-memory, upkeep, session-handoff]
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
## Workspace hub (Layer 2)
|
|
2
|
+
|
|
3
|
+
This repo is a Praxis **workspace hub**: `workspace:` in `praxis.yaml` declares
|
|
4
|
+
the member repos cloned beneath it and the dependency edges between them.
|
|
5
|
+
|
|
6
|
+
Cross-repo knowledge — dependency edges, API contracts between members,
|
|
7
|
+
cross-repo change order, the add-a-new-member checklist — lives in **this
|
|
8
|
+
repo's wiki**, never duplicated into member wikis; members carry at most prose
|
|
9
|
+
pointers up to it.
|
|
10
|
+
|
|
11
|
+
Trigger: after any change with cross-repo impact (a producer API change, a new
|
|
12
|
+
member, an edge change), or on a periodic sweep, run
|
|
13
|
+
`{{workflow:praxis-workspace-upkeep}}` rather than fixing hub/member drift
|
|
14
|
+
piecemeal.
|
|
15
|
+
|
|
16
|
+
Planning trigger: when planning a change that may cross member boundaries, or
|
|
17
|
+
when the plan needs member implementation details, enter through
|
|
18
|
+
`{{workflow:praxis-workspace-upkeep}}` before finalizing the hub plan. Fan out
|
|
19
|
+
one read-only planning workstream per affected cloned member. Every brief names
|
|
20
|
+
the resolved member root and makes the delegate's first tool action start there;
|
|
21
|
+
the delegate reads that member's `CLAUDE.md` and every file under
|
|
22
|
+
`.claude/rules/` (Claude Code) or `AGENTS.md` (Codex/agents-md), plus
|
|
23
|
+
`docs/wiki/index.md` and relevant linked pages when present, then inspects the
|
|
24
|
+
implementation source and nearest tests. Synthesize the returned constraints,
|
|
25
|
+
validation commands, risks, and `file:line` evidence in the hub — never infer
|
|
26
|
+
member implementation from hub prose alone.
|
|
27
|
+
|
|
28
|
+
Sovereignty: never edit a member repo's files from the hub uninvited — audit,
|
|
29
|
+
propose, and apply only what the user confirms.
|