@nurix/etna 0.20.46 → 0.20.48
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/data/harness-index.json +1 -1
- package/data/harnesses/code/CLAUDE.md +1 -1
- package/data/harnesses/code/agents/maintenance.md +5 -1
- package/data/harnesses/code/codex/agents/maintenance.toml +5 -1
- package/data/harnesses/code/docs/structure.md +13 -10
- package/data/harnesses/code/harness.json +2 -2
- package/data/harnesses/code/hooks/compliance.mjs +13 -672
- package/data/harnesses/code/hooks/hooks.json +1 -1
- package/data/harnesses/code/hooks/lib/backlog-detector.mjs +30 -10
- package/data/harnesses/code/hooks/lib/frozen.mjs +28 -11
- package/data/harnesses/code/hooks/lib/gates.mjs +633 -0
- package/data/harnesses/code/hooks/lib/ownership.mjs +4 -14
- package/data/harnesses/code/hooks/lib/protection-gate.mjs +208 -0
- package/data/harnesses/code/hooks/lib/records-door.mjs +12 -21
- package/data/harnesses/code/hooks/lib/repo.mjs +33 -7
- package/data/harnesses/code/hooks/lib/session-log.mjs +1 -2
- package/data/harnesses/code/hooks/lib/state.mjs +4 -10
- package/data/harnesses/code/hooks/lib/walls.mjs +2 -1
- package/data/harnesses/code/hooks/protection.mjs +53 -0
- package/data/harnesses/code/skills/documentation/SKILL.md +11 -1
- package/data/harnesses/code/skills/documentation/references/style-guide.md +2 -1
- package/data/harnesses/code/skills/documentation/scripts/doc-lint.mjs +3 -3
- package/data/harnesses/code/skills/documentation/templates/Readme.md +3 -2
- package/data/harnesses/code/skills/documentation/templates/doctrine.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/playbook.md +63 -0
- package/data/harnesses/code/skills/documentation/templates/root-readme.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/testing-strategy.md +1 -1
- package/data/harnesses/code/skills/documentation/templates/ux-behavior.md +1 -1
- package/data/harnesses/delivery/agents/maintenance.md +5 -1
- package/data/harnesses/delivery/codex/agents/maintenance.toml +5 -1
- package/data/harnesses/delivery/harness.json +2 -2
- package/data/harnesses/delivery/skills/documentation/SKILL.md +11 -1
- package/data/harnesses/delivery/skills/documentation/references/style-guide.md +2 -1
- package/data/harnesses/delivery/skills/documentation/scripts/doc-lint.mjs +3 -3
- package/data/harnesses/delivery/skills/documentation/templates/Readme.md +3 -2
- package/data/harnesses/delivery/skills/documentation/templates/doctrine.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/playbook.md +63 -0
- package/data/harnesses/delivery/skills/documentation/templates/root-readme.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/testing-strategy.md +1 -1
- package/data/harnesses/delivery/skills/documentation/templates/ux-behavior.md +1 -1
- package/data/harnesses/etna/agents/maintenance.md +5 -1
- package/data/harnesses/etna/codex/agents/maintenance.toml +5 -1
- package/data/harnesses/etna/harness.json +2 -2
- package/data/harnesses/etna/skills/documentation/SKILL.md +11 -1
- package/data/harnesses/etna/skills/documentation/references/style-guide.md +2 -1
- package/data/harnesses/etna/skills/documentation/scripts/doc-lint.mjs +3 -3
- package/data/harnesses/etna/skills/documentation/templates/Readme.md +3 -2
- package/data/harnesses/etna/skills/documentation/templates/doctrine.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/playbook.md +63 -0
- package/data/harnesses/etna/skills/documentation/templates/root-readme.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/testing-strategy.md +1 -1
- package/data/harnesses/etna/skills/documentation/templates/ux-behavior.md +1 -1
- package/lib/install/plan.mjs +3 -1
- package/package.json +2 -2
|
@@ -130,7 +130,7 @@ The rest of this page is for the team and for coding agents working in this repo
|
|
|
130
130
|
|
|
131
131
|
The baseline **does** scaffold `/README.md` when it is missing, and it fills each section from the repo:
|
|
132
132
|
|
|
133
|
-
- **Identity, Capabilities, Deployment:** from the product charter and vision documents under `docs/architecture/
|
|
133
|
+
- **Identity, Capabilities, Deployment:** from the product charter and vision documents under `docs/architecture/doctrine/` (what the product is, the core loop, who it is for), the package manifests (what publishes where), and the deploy config (addresses). Written in a user's terms; where the charter is missing, the baseline writes Identity only and raises a `note:` row for the rest.
|
|
134
134
|
- **The main path:** from the system overview.
|
|
135
135
|
- **Map:** from the workspace globs and the ownership index.
|
|
136
136
|
- **Rules:** from `docs/operations/protected-files.md` and the architecture doctrine.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Testing strategy (docs/architecture/
|
|
1
|
+
# Testing strategy (docs/architecture/doctrine/testing.md)
|
|
2
2
|
|
|
3
3
|
Truth document. Use for: the repo's test posture — what is tested at which level, how to run it, and what is deliberately untested. The framework choices come from the harness testing rule; this doc records how *this repo* applies them.
|
|
4
4
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# UX behavior (docs/features/{surface}-ux.md)
|
|
2
2
|
|
|
3
|
-
**Truth document.** States what a person sees and can do on a surface, and what the surface promises never to do. Present tense, like every truth document.
|
|
3
|
+
**Truth document.** States what a person sees and can do on a surface, and what the surface promises never to do. Present tense, like every truth document. It is one product's surface; a shape every product's surfaces share, such as a settings area or an analytics page, is a playbook (`templates/playbook.md`), which the UX document names in its Purpose and fills with its own values.
|
|
4
4
|
|
|
5
5
|
**`type: ux`**, plus `status:` and `objects:` — the objects the surface presents (`references/frontmatter.md`). The doctrine it answers to (the state vocabulary, the routing doctrine, the information architecture) is named in its Purpose for people and computed through shared objects for tooling.
|
|
6
6
|
|
package/lib/install/plan.mjs
CHANGED
|
@@ -128,6 +128,8 @@ function freshSettings(bundleDir) {
|
|
|
128
128
|
// `.codex/hooks.json` — the Claude hooks.json filtered to type:"command", the only kind Codex
|
|
129
129
|
// executes, with each command prefixed so `$CLAUDE_PROJECT_DIR` resolves under a runtime that does
|
|
130
130
|
// not export it. The translation itself is `toCodexCommand`, imported rather than restated.
|
|
131
|
+
// `onFailure` is dropped from every handler: Codex's hook schema has no such field, and the
|
|
132
|
+
// fail-closed claim it carries holds on Claude Code only.
|
|
131
133
|
function codexHooks(bundleDir) {
|
|
132
134
|
const hooksJson = join(bundleDir, 'hooks', 'hooks.json');
|
|
133
135
|
if (!existsSync(hooksJson)) return null;
|
|
@@ -143,7 +145,7 @@ function codexHooks(bundleDir) {
|
|
|
143
145
|
for (const group of groups) {
|
|
144
146
|
const hooks = (group.hooks || [])
|
|
145
147
|
.filter((h) => h.type === 'command')
|
|
146
|
-
.map((h) => ({ ...h, command: toCodexCommand(h.command) }));
|
|
148
|
+
.map(({ onFailure, ...h }) => ({ ...h, command: toCodexCommand(h.command) }));
|
|
147
149
|
if (hooks.length) kept.push({ ...group, hooks });
|
|
148
150
|
}
|
|
149
151
|
if (kept.length) out[event] = kept;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nurix/etna",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.48",
|
|
4
4
|
"description": "Bootstrap a project with a Nurix harness — writes the committed contract (CLAUDE.md, AGENTS.md, .claude/harness.json, settings.json, the mount hook) and mounts the harness itself, gitignored, from a bundled payload; sessions keep it current from the CDN.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"agent",
|
|
47
47
|
"plugin"
|
|
48
48
|
],
|
|
49
|
-
"etnaFingerprint": "
|
|
49
|
+
"etnaFingerprint": "7050b3489eda"
|
|
50
50
|
}
|