create-religion 0.1.0
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/LICENSE +21 -0
- package/README.md +47 -0
- package/dist/bin/religion.js +209 -0
- package/dist/lib/dashboard.js +123 -0
- package/dist/lib/doctor.js +164 -0
- package/dist/lib/install.js +170 -0
- package/dist/lib/paths.js +40 -0
- package/dist/lib/state.js +117 -0
- package/dist/lib/status.js +88 -0
- package/package.json +40 -0
- package/template/.agents/skills/audit/SKILL.md +169 -0
- package/template/.agents/skills/auto/SKILL.md +110 -0
- package/template/.agents/skills/browser-tests/SKILL.md +65 -0
- package/template/.agents/skills/check/SKILL.md +86 -0
- package/template/.agents/skills/ci/SKILL.md +79 -0
- package/template/.agents/skills/complete/SKILL.md +184 -0
- package/template/.agents/skills/debug/SKILL.md +72 -0
- package/template/.agents/skills/discovery/SKILL.md +83 -0
- package/template/.agents/skills/distill/SKILL.md +95 -0
- package/template/.agents/skills/doctor/SKILL.md +65 -0
- package/template/.agents/skills/extend/SKILL.md +102 -0
- package/template/.agents/skills/feature/SKILL.md +172 -0
- package/template/.agents/skills/feature/reference/spec-template.md +67 -0
- package/template/.agents/skills/fix/SKILL.md +76 -0
- package/template/.agents/skills/implement/SKILL.md +174 -0
- package/template/.agents/skills/overview/SKILL.md +150 -0
- package/template/.agents/skills/overview/reference/project-overview-template.md +101 -0
- package/template/.agents/skills/prototype/SKILL.md +90 -0
- package/template/.agents/skills/release/SKILL.md +88 -0
- package/template/.agents/skills/rollback/SKILL.md +114 -0
- package/template/.agents/skills/setup/SKILL.md +105 -0
- package/template/.agents/skills/status/SKILL.md +63 -0
- package/template/.agents/skills/tests/SKILL.md +90 -0
- package/template/.agents/skills/try/SKILL.md +59 -0
- package/template/.claude/hooks/guard-rendered-output.mjs +49 -0
- package/template/.claude/hooks/guard-tier-one.mjs +63 -0
- package/template/.claude/hooks/write-handoff.mjs +83 -0
- package/template/.claude/skills/audit/SKILL.md +169 -0
- package/template/.claude/skills/auto/SKILL.md +110 -0
- package/template/.claude/skills/browser-tests/SKILL.md +65 -0
- package/template/.claude/skills/check/SKILL.md +86 -0
- package/template/.claude/skills/ci/SKILL.md +79 -0
- package/template/.claude/skills/complete/SKILL.md +184 -0
- package/template/.claude/skills/debug/SKILL.md +72 -0
- package/template/.claude/skills/discovery/SKILL.md +83 -0
- package/template/.claude/skills/distill/SKILL.md +95 -0
- package/template/.claude/skills/doctor/SKILL.md +65 -0
- package/template/.claude/skills/extend/SKILL.md +102 -0
- package/template/.claude/skills/feature/SKILL.md +172 -0
- package/template/.claude/skills/feature/reference/spec-template.md +67 -0
- package/template/.claude/skills/fix/SKILL.md +76 -0
- package/template/.claude/skills/implement/SKILL.md +174 -0
- package/template/.claude/skills/overview/SKILL.md +150 -0
- package/template/.claude/skills/overview/reference/project-overview-template.md +101 -0
- package/template/.claude/skills/prototype/SKILL.md +90 -0
- package/template/.claude/skills/release/SKILL.md +88 -0
- package/template/.claude/skills/rollback/SKILL.md +114 -0
- package/template/.claude/skills/setup/SKILL.md +105 -0
- package/template/.claude/skills/status/SKILL.md +63 -0
- package/template/.claude/skills/tests/SKILL.md +90 -0
- package/template/.claude/skills/try/SKILL.md +59 -0
- package/template/AGENTS.md +206 -0
- package/template/CLAUDE.md +175 -0
- package/template/religion/.state/README.md +10 -0
- package/template/religion/.state/settings-template.json +19 -0
- package/template/religion/build-plan.md +43 -0
- package/template/religion/config.json +26 -0
- package/template/religion/context/ai-interaction.md +84 -0
- package/template/religion/context/coding-standards.md +77 -0
- package/template/religion/context/current-work.md +8 -0
- package/template/religion/context/findings.md +9 -0
- package/template/religion/context/handoff.md +8 -0
- package/template/religion/context/project-overview.md +8 -0
- package/template/religion/history/features/README.md +8 -0
- package/template/religion/history/fixes/README.md +6 -0
- package/template/religion/history/rollbacks/README.md +7 -0
- package/template/religion/learning/journal.md +7 -0
- package/template/religion/learning/lessons.md +8 -0
- package/template/religion/project-plan.md +49 -0
- package/template/religion/reference/README.md +7 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: try
|
|
3
|
+
summary: write the human walkthrough for reviewing the work yourself
|
|
4
|
+
description: "Generate the manual walkthrough for the current or most recently completed work: what to start, where to go, what to click or run, what to expect, and what would count as wrong. Read-only, and written for a person rather than an agent. /complete emits one for every completed item automatically, so this is for asking again later or for work still in progress. Use when the user runs /try, asks how to see or test a change themselves, asks where to click, or wants a manual review path."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# try - the human review path
|
|
8
|
+
|
|
9
|
+
/check is the agent proving the work. This is you checking it yourself, which is a
|
|
10
|
+
different thing and catches different problems: the ones that are technically correct and
|
|
11
|
+
still wrong.
|
|
12
|
+
|
|
13
|
+
Read-only. It does not run the project unless asked to.
|
|
14
|
+
|
|
15
|
+
## Step 1 - find the work
|
|
16
|
+
|
|
17
|
+
Use `religion/context/current-work.md` when something is in progress. When it is the stub,
|
|
18
|
+
use the most recent archive under `religion/history/`, and say which one you are describing.
|
|
19
|
+
|
|
20
|
+
## Step 2 - write the walkthrough
|
|
21
|
+
|
|
22
|
+
Read the spec's outcomes and the project's declared commands, then write instructions a
|
|
23
|
+
person can follow without knowing how any of it was built.
|
|
24
|
+
|
|
25
|
+
1. **Start it.** The exact command, and where it will be listening.
|
|
26
|
+
2. **Get there.** The route, the screen, the command, the endpoint. Say how to reach it
|
|
27
|
+
from a cold start, including any state that has to exist first, such as being signed in
|
|
28
|
+
or having a record to act on.
|
|
29
|
+
3. **Do the thing.** What to click, type, or run.
|
|
30
|
+
4. **Expect this.** What should happen, concretely enough to disagree with.
|
|
31
|
+
5. **This would be wrong.** The specific failure worth watching for. Skipping this makes
|
|
32
|
+
the whole walkthrough a confirmation exercise, because someone following instructions
|
|
33
|
+
tends to see what they were told to expect.
|
|
34
|
+
|
|
35
|
+
Cover the unhappy paths too when they are quick: the empty state, the error case, what a
|
|
36
|
+
second attempt does.
|
|
37
|
+
|
|
38
|
+
For a rollback, say how to confirm the removed behavior is gone, and name one unaffected
|
|
39
|
+
path that should still work.
|
|
40
|
+
|
|
41
|
+
## Step 3 - keep it honest
|
|
42
|
+
|
|
43
|
+
State any setup that will not be obvious: seed data, environment variables, a service that
|
|
44
|
+
must be running, a browser signed into something.
|
|
45
|
+
|
|
46
|
+
If a step cannot be described because the work has no observable effect, say so plainly.
|
|
47
|
+
That is worth knowing before completion, not after.
|
|
48
|
+
|
|
49
|
+
## Rules
|
|
50
|
+
|
|
51
|
+
- Instructions for a person, never a claim that a person followed them. Generating a
|
|
52
|
+
walkthrough is not evidence of review.
|
|
53
|
+
- Read-only. Do not start the project, change files, or run anything unless asked.
|
|
54
|
+
- Concrete over complete. Five steps someone will actually follow beat twenty they will not.
|
|
55
|
+
|
|
56
|
+
## Formatting
|
|
57
|
+
|
|
58
|
+
Match the conventions in `religion/context/ai-interaction.md`: concise, scannable
|
|
59
|
+
markdown, lists for enumerations and tables for matrices rather than dense paragraphs.
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
Instructions for AI coding agents working in this project. This is the cross-tool entry
|
|
4
|
+
point, read by Codex, GitHub Copilot, or OpenCode, and by any other agent that looks for `AGENTS.md`. Claude Code
|
|
5
|
+
reads `CLAUDE.md`, which covers the same workflow.
|
|
6
|
+
|
|
7
|
+
## What this is
|
|
8
|
+
|
|
9
|
+
A description of your project and the problem it solves.
|
|
10
|
+
|
|
11
|
+
Religion is a workflow layer, not an application skeleton. To start a new project,
|
|
12
|
+
scaffold the app first in an empty folder, then install Religion on top. Never run a
|
|
13
|
+
framework scaffolder inside a directory that already holds these files; it fails because
|
|
14
|
+
the directory is not empty.
|
|
15
|
+
|
|
16
|
+
## Read these for full context
|
|
17
|
+
|
|
18
|
+
Read these before acting. They are the project's own definition of what it is and how work
|
|
19
|
+
is done here, and they outrank anything you infer from the code alone.
|
|
20
|
+
|
|
21
|
+
- `religion/config.json` - deterministic workflow settings
|
|
22
|
+
- `religion/context/project-overview.md` - the project's source of truth
|
|
23
|
+
- `religion/context/coding-standards.md` - conventions to follow
|
|
24
|
+
- `religion/context/ai-interaction.md` - how to work with the user on this project
|
|
25
|
+
- `religion/context/current-work.md` - the one feature, fix, or rollback in progress
|
|
26
|
+
- `religion/context/handoff.md` - where the work sits and what to read first
|
|
27
|
+
- `religion/context/findings.md` - the findings ledger, when it holds anything
|
|
28
|
+
- `religion/learning/lessons.md` - what previous runs learned about this project
|
|
29
|
+
|
|
30
|
+
## Workflow
|
|
31
|
+
|
|
32
|
+
Build one feature, fix, or rollback at a time, behind review gates.
|
|
33
|
+
|
|
34
|
+
The loop is:
|
|
35
|
+
|
|
36
|
+
$feature -> review the spec -> $implement -> $check -> $audit -> $complete
|
|
37
|
+
|
|
38
|
+
Each step's instructions are plain markdown skills any capable agent can read and follow.
|
|
39
|
+
The spec is written before code exists, so it can be reviewed before a line is built.
|
|
40
|
+
Implementation lands one small step at a time, each with a diff to read and evidence that
|
|
41
|
+
its stated outcome was met.
|
|
42
|
+
|
|
43
|
+
`religion/context/current-work.md` holds exactly one work item. Finish it, archive it,
|
|
44
|
+
then start the next. Progress lives in checkboxes inside that file, so a cleared context
|
|
45
|
+
costs nothing: a fresh session reads which steps are ticked and resumes from the first
|
|
46
|
+
one that is not.
|
|
47
|
+
|
|
48
|
+
## Skills
|
|
49
|
+
|
|
50
|
+
The workflow is defined by the skills in `.agents/skills`. Each one is a `SKILL.md` you can read
|
|
51
|
+
and follow directly.
|
|
52
|
+
|
|
53
|
+
- `audit` - review the code itself across four lenses, recording findings in the ledger
|
|
54
|
+
- `auto` - run the loop unattended, within explicit bounds
|
|
55
|
+
- `browser-tests` - set up a repeatable browser test harness and record its command
|
|
56
|
+
- `check` - prove the current work does what its spec says, against the running project
|
|
57
|
+
- `ci` - define one Verify command and the GitHub workflow that runs it
|
|
58
|
+
- `complete` - run the final gate, archive the work, commit it, and close it out
|
|
59
|
+
- `debug` - reproduce and isolate a failure without changing anything
|
|
60
|
+
- `discovery` - a guided planning conversation that drafts the two plans
|
|
61
|
+
- `distill` - promote proven observations from the journal into loaded lessons
|
|
62
|
+
- `doctor` - check the setup is healthy and explain anything that is not
|
|
63
|
+
- `extend` - author a new skill for this workflow, with its routing tests
|
|
64
|
+
- `feature` - turn a build-plan item into a reviewed, buildable spec
|
|
65
|
+
- `fix` - spec an unplanned bug or small change, or repair a recorded finding
|
|
66
|
+
- `implement` - build the current spec one reviewed step at a time
|
|
67
|
+
- `overview` - distill the two planning documents into the project's source of truth
|
|
68
|
+
- `prototype` - explore the look before building, as throwaway mockups or real components
|
|
69
|
+
- `release` - prepare deployment readiness for Railway, Render, or Vercel
|
|
70
|
+
- `rollback` - plan a guarded reversal of completed work, preserving its history
|
|
71
|
+
- `setup` - tune the installation to this project, greenfield or existing
|
|
72
|
+
- `status` - say where the work stands and what to do next
|
|
73
|
+
- `tests` - set up unit testing, or backfill coverage for logic that already exists
|
|
74
|
+
- `try` - write the human walkthrough for reviewing the work yourself
|
|
75
|
+
|
|
76
|
+
Invoke a skill with its name, as `$feature`, or ask in plain language, such as
|
|
77
|
+
"spec the next feature." In tools without a dedicated invocation syntax, ask the agent to
|
|
78
|
+
follow the matching `SKILL.md`. The conventions in `religion/context/` apply however a
|
|
79
|
+
step is invoked.
|
|
80
|
+
|
|
81
|
+
These commands are the structured path, not a cage. You can describe a feature, fix, or
|
|
82
|
+
change directly at any time; the same conventions still apply, because they are always in
|
|
83
|
+
context. Use the skills when you want the repeatable loop, the review gates, and the
|
|
84
|
+
written history.
|
|
85
|
+
|
|
86
|
+
## Authority
|
|
87
|
+
|
|
88
|
+
Actions fall into three tiers. This is the whole of it: no skill may widen its own
|
|
89
|
+
authority, and no setting in `religion/config.json` can move an action to a lower tier.
|
|
90
|
+
|
|
91
|
+
**Always ask, every time.** No mode, setting, or prior approval grants these. Approval for
|
|
92
|
+
one is never approval for another, and an approval given earlier in a session does not
|
|
93
|
+
carry to a later instance.
|
|
94
|
+
|
|
95
|
+
- merging into the default branch
|
|
96
|
+
- pushing to any remote
|
|
97
|
+
- deploying, publishing, or sending anything outward
|
|
98
|
+
- deleting files or data, and any rewrite of existing history
|
|
99
|
+
- changing a remote service, its configuration, or its secrets
|
|
100
|
+
|
|
101
|
+
**Ask unless an automated run is underway.** In normal work these need an explicit yes at
|
|
102
|
+
the time. Invoking an automated mode grants them for that run only, because that
|
|
103
|
+
invocation is the approval:
|
|
104
|
+
|
|
105
|
+
- committing, including step checkpoints
|
|
106
|
+
- installing or upgrading dependencies
|
|
107
|
+
- network calls that reach a remote service
|
|
108
|
+
|
|
109
|
+
An automated run's grant never reaches the first tier. It commits freely and still stops
|
|
110
|
+
to ask before it merges.
|
|
111
|
+
|
|
112
|
+
**Free.** Reading files, searching, running the project's own build, tests, linters, and
|
|
113
|
+
type checks, driving the app locally, and writing the workflow's own state files under
|
|
114
|
+
`religion/`.
|
|
115
|
+
|
|
116
|
+
## Evidence
|
|
117
|
+
|
|
118
|
+
Never claim that something passed, is verified, or works without naming what proves it:
|
|
119
|
+
the exact command and its result, the route and what appeared, the screenshot, or the
|
|
120
|
+
output. "It should work" is not evidence, and neither is a summary of what the code
|
|
121
|
+
intends to do.
|
|
122
|
+
|
|
123
|
+
A required check that cannot run is a blocker, not a pass. Say so plainly and stop.
|
|
124
|
+
|
|
125
|
+
## Git
|
|
126
|
+
|
|
127
|
+
`git.mode` decides where work lands. It ships as `trunk`.
|
|
128
|
+
|
|
129
|
+
**`trunk`** keeps work on the branch you already have checked out. Nothing is branched,
|
|
130
|
+
nothing is merged, and the first tier of the authority rules stays dormant because there
|
|
131
|
+
is no merge to ask about. This is the default because creating branches is a decision
|
|
132
|
+
that belongs to you, not to a workflow.
|
|
133
|
+
|
|
134
|
+
**`branch-per-item`** creates a branch per work item using the configured prefix, then
|
|
135
|
+
squash-merges it once the work is done and you have said yes. The merge and any push are
|
|
136
|
+
asked for separately: agreeing to a merge is never agreement to push.
|
|
137
|
+
|
|
138
|
+
`git.checkpoints` decides what happens to intermediate work, in either mode:
|
|
139
|
+
|
|
140
|
+
| Value | Behavior |
|
|
141
|
+
| --- | --- |
|
|
142
|
+
| `none` | Steps accumulate in the working tree; completion makes one commit for the whole item. |
|
|
143
|
+
| `every-step` | Each approved step becomes its own commit, left in place. |
|
|
144
|
+
| `squash` | Each approved step is committed, then completion collapses them into one. |
|
|
145
|
+
|
|
146
|
+
In `trunk` mode, `squash` collapses commits on the branch you are working on, which
|
|
147
|
+
rewrites local history. That is a first-tier action: it is never done without asking, and
|
|
148
|
+
never done at all when any of those commits has already been pushed.
|
|
149
|
+
|
|
150
|
+
## Review cadence
|
|
151
|
+
|
|
152
|
+
`workflow.stepReview` decides how often implementation stops for you. It ships as
|
|
153
|
+
`every`: each step ends with a diff to read and approve before the next one starts. Set
|
|
154
|
+
it to `item` to collect the steps into one review packet at the end.
|
|
155
|
+
|
|
156
|
+
Either way, implementation stops early and asks whenever a check fails, a decision is
|
|
157
|
+
needed, a conflict appears, the work drifts outside its spec, or something in the first
|
|
158
|
+
tier of the authority rules comes up.
|
|
159
|
+
|
|
160
|
+
## Activity
|
|
161
|
+
|
|
162
|
+
Any skill that changes something writes an activity record to
|
|
163
|
+
`religion/.state/run.json` as its **first action**, before inspecting the project or
|
|
164
|
+
calling anything else, and replaces it at meaningful milestones. Read-only skills do not.
|
|
165
|
+
|
|
166
|
+
This is generated local state. It is never committed, never part of a work commit, and
|
|
167
|
+
never contains secrets, raw output, prompts, or user content.
|
|
168
|
+
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"schemaVersion": 1,
|
|
172
|
+
"command": "auto",
|
|
173
|
+
"status": "running",
|
|
174
|
+
"summary": "Building the remaining plan",
|
|
175
|
+
"detail": "Implementing item 3.",
|
|
176
|
+
"boundary": "local-only",
|
|
177
|
+
"startedAt": "<ISO-8601>",
|
|
178
|
+
"updatedAt": "<ISO-8601>",
|
|
179
|
+
"resumeCommand": "$auto resume",
|
|
180
|
+
"progress": { "current": 2, "total": 5, "label": "items" },
|
|
181
|
+
"item": { "id": "3", "title": "Export reports" }
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
`status` is `running`, `blocked`, `ready`, or `completed`. Use `ready` when a skill reached
|
|
186
|
+
its intended handoff, such as an unattended run waiting for review. Use `blocked` with the
|
|
187
|
+
exact recovery command when work can resume. `boundary` is `read-only`, `reviewed`, or
|
|
188
|
+
`local-only`. Everything after `updatedAt` is optional.
|
|
189
|
+
|
|
190
|
+
Writing this record grants nothing and bypasses nothing. A failure to write it is reported
|
|
191
|
+
and ignored: reporting must never turn into a workflow failure.
|
|
192
|
+
|
|
193
|
+
## Commands
|
|
194
|
+
|
|
195
|
+
<!-- religion:setup-required -->
|
|
196
|
+
|
|
197
|
+
Fill this in with the project's real commands. `$setup` detects them and proposes
|
|
198
|
+
the list; until it runs, treat this section as unverified.
|
|
199
|
+
|
|
200
|
+
- Dev server: `<command>`
|
|
201
|
+
- Build: `<command>`
|
|
202
|
+
- Test: `<command>`
|
|
203
|
+
|
|
204
|
+
Testing is opt-in. A declared test command is what turns testing into a gate for
|
|
205
|
+
logic-bearing work. If this project has no test runner, `$tests` adds one and
|
|
206
|
+
updates this section.
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Project Name
|
|
2
|
+
|
|
3
|
+
Agent instructions for this project. The files below are imported so they stay loaded
|
|
4
|
+
every session: Religion keeps project state in files rather than in the conversation,
|
|
5
|
+
which is what makes a cleared context survivable.
|
|
6
|
+
|
|
7
|
+
@religion/context/project-overview.md
|
|
8
|
+
@religion/context/coding-standards.md
|
|
9
|
+
@religion/context/ai-interaction.md
|
|
10
|
+
@religion/context/current-work.md
|
|
11
|
+
@religion/context/handoff.md
|
|
12
|
+
@religion/learning/lessons.md
|
|
13
|
+
|
|
14
|
+
## What this is
|
|
15
|
+
|
|
16
|
+
A description of your project and the problem it solves.
|
|
17
|
+
|
|
18
|
+
Religion is a workflow layer, not an application skeleton. To start a new project,
|
|
19
|
+
scaffold the app first in an empty folder, then install Religion on top. Never run a
|
|
20
|
+
framework scaffolder inside a directory that already holds these files; it fails because
|
|
21
|
+
the directory is not empty.
|
|
22
|
+
|
|
23
|
+
## Workflow
|
|
24
|
+
|
|
25
|
+
Build one feature, fix, or rollback at a time, behind review gates.
|
|
26
|
+
|
|
27
|
+
The loop is:
|
|
28
|
+
|
|
29
|
+
/feature -> review the spec -> /implement -> /check -> /audit -> /complete
|
|
30
|
+
|
|
31
|
+
Each step's instructions are plain markdown skills any capable agent can read and follow.
|
|
32
|
+
The spec is written before code exists, so it can be reviewed before a line is built.
|
|
33
|
+
Implementation lands one small step at a time, each with a diff to read and evidence that
|
|
34
|
+
its stated outcome was met.
|
|
35
|
+
|
|
36
|
+
`religion/context/current-work.md` holds exactly one work item. Finish it, archive it,
|
|
37
|
+
then start the next. Progress lives in checkboxes inside that file, so a cleared context
|
|
38
|
+
costs nothing: a fresh session reads which steps are ticked and resumes from the first
|
|
39
|
+
one that is not.
|
|
40
|
+
|
|
41
|
+
## Skills
|
|
42
|
+
|
|
43
|
+
The workflow is defined by the skills in `.claude/skills`, which Claude Code discovers on its
|
|
44
|
+
own. Run one as `/feature`, or just describe what you want; the right skill is
|
|
45
|
+
selected from the request.
|
|
46
|
+
|
|
47
|
+
`religion/config.json` holds this project's deterministic workflow settings. Read it
|
|
48
|
+
before acting. A missing file means built-in defaults. If it exists but cannot be parsed,
|
|
49
|
+
stop and run `/doctor` rather than guessing past it.
|
|
50
|
+
|
|
51
|
+
These commands are the structured path, not a cage. You can describe a feature, fix, or
|
|
52
|
+
change directly at any time; the same conventions still apply, because they are always in
|
|
53
|
+
context.
|
|
54
|
+
|
|
55
|
+
## Authority
|
|
56
|
+
|
|
57
|
+
Actions fall into three tiers. This is the whole of it: no skill may widen its own
|
|
58
|
+
authority, and no setting in `religion/config.json` can move an action to a lower tier.
|
|
59
|
+
|
|
60
|
+
**Always ask, every time.** No mode, setting, or prior approval grants these. Approval for
|
|
61
|
+
one is never approval for another, and an approval given earlier in a session does not
|
|
62
|
+
carry to a later instance.
|
|
63
|
+
|
|
64
|
+
- merging into the default branch
|
|
65
|
+
- pushing to any remote
|
|
66
|
+
- deploying, publishing, or sending anything outward
|
|
67
|
+
- deleting files or data, and any rewrite of existing history
|
|
68
|
+
- changing a remote service, its configuration, or its secrets
|
|
69
|
+
|
|
70
|
+
**Ask unless an automated run is underway.** In normal work these need an explicit yes at
|
|
71
|
+
the time. Invoking an automated mode grants them for that run only, because that
|
|
72
|
+
invocation is the approval:
|
|
73
|
+
|
|
74
|
+
- committing, including step checkpoints
|
|
75
|
+
- installing or upgrading dependencies
|
|
76
|
+
- network calls that reach a remote service
|
|
77
|
+
|
|
78
|
+
An automated run's grant never reaches the first tier. It commits freely and still stops
|
|
79
|
+
to ask before it merges.
|
|
80
|
+
|
|
81
|
+
**Free.** Reading files, searching, running the project's own build, tests, linters, and
|
|
82
|
+
type checks, driving the app locally, and writing the workflow's own state files under
|
|
83
|
+
`religion/`.
|
|
84
|
+
|
|
85
|
+
## Evidence
|
|
86
|
+
|
|
87
|
+
Never claim that something passed, is verified, or works without naming what proves it:
|
|
88
|
+
the exact command and its result, the route and what appeared, the screenshot, or the
|
|
89
|
+
output. "It should work" is not evidence, and neither is a summary of what the code
|
|
90
|
+
intends to do.
|
|
91
|
+
|
|
92
|
+
A required check that cannot run is a blocker, not a pass. Say so plainly and stop.
|
|
93
|
+
|
|
94
|
+
## Git
|
|
95
|
+
|
|
96
|
+
`git.mode` decides where work lands. It ships as `trunk`.
|
|
97
|
+
|
|
98
|
+
**`trunk`** keeps work on the branch you already have checked out. Nothing is branched,
|
|
99
|
+
nothing is merged, and the first tier of the authority rules stays dormant because there
|
|
100
|
+
is no merge to ask about. This is the default because creating branches is a decision
|
|
101
|
+
that belongs to you, not to a workflow.
|
|
102
|
+
|
|
103
|
+
**`branch-per-item`** creates a branch per work item using the configured prefix, then
|
|
104
|
+
squash-merges it once the work is done and you have said yes. The merge and any push are
|
|
105
|
+
asked for separately: agreeing to a merge is never agreement to push.
|
|
106
|
+
|
|
107
|
+
`git.checkpoints` decides what happens to intermediate work, in either mode:
|
|
108
|
+
|
|
109
|
+
| Value | Behavior |
|
|
110
|
+
| --- | --- |
|
|
111
|
+
| `none` | Steps accumulate in the working tree; completion makes one commit for the whole item. |
|
|
112
|
+
| `every-step` | Each approved step becomes its own commit, left in place. |
|
|
113
|
+
| `squash` | Each approved step is committed, then completion collapses them into one. |
|
|
114
|
+
|
|
115
|
+
In `trunk` mode, `squash` collapses commits on the branch you are working on, which
|
|
116
|
+
rewrites local history. That is a first-tier action: it is never done without asking, and
|
|
117
|
+
never done at all when any of those commits has already been pushed.
|
|
118
|
+
|
|
119
|
+
## Review cadence
|
|
120
|
+
|
|
121
|
+
`workflow.stepReview` decides how often implementation stops for you. It ships as
|
|
122
|
+
`every`: each step ends with a diff to read and approve before the next one starts. Set
|
|
123
|
+
it to `item` to collect the steps into one review packet at the end.
|
|
124
|
+
|
|
125
|
+
Either way, implementation stops early and asks whenever a check fails, a decision is
|
|
126
|
+
needed, a conflict appears, the work drifts outside its spec, or something in the first
|
|
127
|
+
tier of the authority rules comes up.
|
|
128
|
+
|
|
129
|
+
## Activity
|
|
130
|
+
|
|
131
|
+
Any skill that changes something writes an activity record to
|
|
132
|
+
`religion/.state/run.json` as its **first action**, before inspecting the project or
|
|
133
|
+
calling anything else, and replaces it at meaningful milestones. Read-only skills do not.
|
|
134
|
+
|
|
135
|
+
This is generated local state. It is never committed, never part of a work commit, and
|
|
136
|
+
never contains secrets, raw output, prompts, or user content.
|
|
137
|
+
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"schemaVersion": 1,
|
|
141
|
+
"command": "auto",
|
|
142
|
+
"status": "running",
|
|
143
|
+
"summary": "Building the remaining plan",
|
|
144
|
+
"detail": "Implementing item 3.",
|
|
145
|
+
"boundary": "local-only",
|
|
146
|
+
"startedAt": "<ISO-8601>",
|
|
147
|
+
"updatedAt": "<ISO-8601>",
|
|
148
|
+
"resumeCommand": "/auto resume",
|
|
149
|
+
"progress": { "current": 2, "total": 5, "label": "items" },
|
|
150
|
+
"item": { "id": "3", "title": "Export reports" }
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
`status` is `running`, `blocked`, `ready`, or `completed`. Use `ready` when a skill reached
|
|
155
|
+
its intended handoff, such as an unattended run waiting for review. Use `blocked` with the
|
|
156
|
+
exact recovery command when work can resume. `boundary` is `read-only`, `reviewed`, or
|
|
157
|
+
`local-only`. Everything after `updatedAt` is optional.
|
|
158
|
+
|
|
159
|
+
Writing this record grants nothing and bypasses nothing. A failure to write it is reported
|
|
160
|
+
and ignored: reporting must never turn into a workflow failure.
|
|
161
|
+
|
|
162
|
+
## Commands
|
|
163
|
+
|
|
164
|
+
<!-- religion:setup-required -->
|
|
165
|
+
|
|
166
|
+
Fill this in with the project's real commands. `/setup` detects them and proposes
|
|
167
|
+
the list; until it runs, treat this section as unverified.
|
|
168
|
+
|
|
169
|
+
- Dev server: `<command>`
|
|
170
|
+
- Build: `<command>`
|
|
171
|
+
- Test: `<command>`
|
|
172
|
+
|
|
173
|
+
Testing is opt-in. A declared test command is what turns testing into a gate for
|
|
174
|
+
logic-bearing work. If this project has no test runner, `/tests` adds one and
|
|
175
|
+
updates this section.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Generated local state
|
|
2
|
+
|
|
3
|
+
Machine-written files that are never committed:
|
|
4
|
+
|
|
5
|
+
- `manifest.json` - the installed version and the hashes of managed files, so an update can
|
|
6
|
+
tell a local edit from a stale copy instead of overwriting either.
|
|
7
|
+
- `run.json` - what the workflow is doing right now, for the status view and the dashboard.
|
|
8
|
+
|
|
9
|
+
Nothing here is a record of the work. Deleting it costs the update path its conflict
|
|
10
|
+
detection and the dashboard its activity view, and costs the project nothing.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"PreToolUse": [
|
|
4
|
+
{
|
|
5
|
+
"matcher": "Bash",
|
|
6
|
+
"hooks": [{ "type": "command", "command": "node .claude/hooks/guard-tier-one.mjs" }]
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"matcher": "Edit|Write",
|
|
10
|
+
"hooks": [{ "type": "command", "command": "node .claude/hooks/guard-rendered-output.mjs" }]
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"Stop": [
|
|
14
|
+
{
|
|
15
|
+
"hooks": [{ "type": "command", "command": "node .claude/hooks/write-handoff.mjs" }]
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Build Plan
|
|
2
|
+
|
|
3
|
+
> The second planning document you own. Keep it high level even when `project-plan.md` is
|
|
4
|
+
> detailed: one line per feature, in rough build order. The depth lives in each work
|
|
5
|
+
> item's spec.
|
|
6
|
+
|
|
7
|
+
## Format
|
|
8
|
+
|
|
9
|
+
Use checkboxes. The build loop reads them: `feature` with no argument specs the
|
|
10
|
+
first unchecked item, and `complete` checks it off. That is what makes progress
|
|
11
|
+
survive a cleared context, so keep the list a checklist.
|
|
12
|
+
|
|
13
|
+
Each item should be a feature-sized outcome, not a loose task or a whole product area.
|
|
14
|
+
|
|
15
|
+
Good:
|
|
16
|
+
|
|
17
|
+
- [ ] 1. **Skill submission** - upload a package and save its metadata
|
|
18
|
+
- [ ] 2. **Validation result** - run checks and show pass or fail per submission
|
|
19
|
+
- [ ] 3. **Directory listing** - browse and filter what has been published
|
|
20
|
+
|
|
21
|
+
Avoid: "Upload stuff", "Database", "Make it look nice", or one line holding auth, billing,
|
|
22
|
+
and deployment at once.
|
|
23
|
+
|
|
24
|
+
A large item gets split into sub-items when it is spec'd, as `4a`, `4b`, and so on. Each
|
|
25
|
+
sub-item is its own work item with its own review and its own archive entry.
|
|
26
|
+
|
|
27
|
+
## Keeping it going
|
|
28
|
+
|
|
29
|
+
This is a living roadmap, not a frozen record of the first release. Keep completed items
|
|
30
|
+
checked and append new unchecked ones as the project grows. Headings such as `## Later`
|
|
31
|
+
keep a long plan readable without changing how the next item is found.
|
|
32
|
+
|
|
33
|
+
Do not renumber completed items: their archives refer back to those numbers. Continue with
|
|
34
|
+
the next unused number. If a new feature changes the product direction, users, data,
|
|
35
|
+
stack, or deployment, update `project-plan.md` too, then re-run `overview`.
|
|
36
|
+
|
|
37
|
+
Scaffolding the application and prototyping the look are pre-build steps, not features.
|
|
38
|
+
Start with the first real slice of functionality.
|
|
39
|
+
|
|
40
|
+
## Plan
|
|
41
|
+
|
|
42
|
+
- [ ] 1. **Feature one** - what it delivers
|
|
43
|
+
- [ ] 2. **Feature two** - what it delivers
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"workflow": {
|
|
4
|
+
"stepReview": "every"
|
|
5
|
+
},
|
|
6
|
+
"git": {
|
|
7
|
+
"mode": "trunk",
|
|
8
|
+
"checkpoints": "every-step",
|
|
9
|
+
"featureBranchPrefix": "feature/",
|
|
10
|
+
"fixBranchPrefix": "fix/",
|
|
11
|
+
"rollbackBranchPrefix": "rollback/"
|
|
12
|
+
},
|
|
13
|
+
"verification": {
|
|
14
|
+
"logicTests": "when-configured",
|
|
15
|
+
"uiEvidence": "when-available"
|
|
16
|
+
},
|
|
17
|
+
"qualityGates": {
|
|
18
|
+
"audit": "when-sensitive",
|
|
19
|
+
"check": "when-behavioral"
|
|
20
|
+
},
|
|
21
|
+
"auto": {
|
|
22
|
+
"maxItems": null,
|
|
23
|
+
"maxRepairAttempts": 2,
|
|
24
|
+
"finalAudit": false
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# AI Interaction
|
|
2
|
+
|
|
3
|
+
> How the agent works with you on this project. Yours to tune: the skills point here for
|
|
4
|
+
> communication and formatting, so a change made here applies everywhere.
|
|
5
|
+
|
|
6
|
+
## Communication
|
|
7
|
+
|
|
8
|
+
- Be concise and direct. Lead with the answer, then the supporting detail.
|
|
9
|
+
- Explain non-obvious decisions briefly. Skip the obvious ones.
|
|
10
|
+
- Ask before a large refactor or an architectural change.
|
|
11
|
+
- Do not add capabilities that are not in the current work item.
|
|
12
|
+
- Never delete files without asking.
|
|
13
|
+
|
|
14
|
+
## Output formatting
|
|
15
|
+
|
|
16
|
+
Format every response for fast scanning, in whatever renders it.
|
|
17
|
+
|
|
18
|
+
- **Real markdown, not walls of prose.** Bold labels, short lines, a blank line between
|
|
19
|
+
blocks.
|
|
20
|
+
- **Enumerations are lists.** A sequence of steps, options, or findings is a list, never
|
|
21
|
+
an inline "(1)... (2)... (3)" run buried in a paragraph.
|
|
22
|
+
- **Tables for matrices.** Comparing things across the same fields goes in a table.
|
|
23
|
+
- **Backticks for code things:** identifiers, paths, commands, filenames.
|
|
24
|
+
- **Do not over-format.** No deep bullet nests or decorative headers on a two-line reply.
|
|
25
|
+
|
|
26
|
+
## The loop
|
|
27
|
+
|
|
28
|
+
The spec for the work in progress lives in `religion/context/current-work.md`.
|
|
29
|
+
|
|
30
|
+
1. **Spec.** Run `feature` with no argument to spec the first unchecked item in the
|
|
31
|
+
build plan, or name one. Add ` preview` to see what it involves without writing
|
|
32
|
+
anything. For a bug or small change that is not in the plan, run `fix`. Review
|
|
33
|
+
the spec before any code exists.
|
|
34
|
+
2. **Implement.** Run `implement`. It builds one step at a time, never the whole
|
|
35
|
+
item at once.
|
|
36
|
+
3. **Review.** Each step shows a diff, not whole files, with a short summary: what the
|
|
37
|
+
step delivered, one line per changed file on why, and its stated outcome shown true.
|
|
38
|
+
4. **Verify.** If the entry file declares a `Verify` command, that exact command is the
|
|
39
|
+
automated gate. Otherwise the build runs, plus the test command when one is declared. A
|
|
40
|
+
step that adds logic ships a passing test when the test gate is on.
|
|
41
|
+
5. **Iterate.** If it does not work, revise and re-test before moving on. Do not pile the
|
|
42
|
+
next step on a broken one.
|
|
43
|
+
6. **Prove it.** Run `check` for an outside proof pass against the running app.
|
|
44
|
+
7. **Review the code.** Run `audit` for a read-only quality pass. Findings go to the
|
|
45
|
+
ledger with durable identifiers; repairs happen through `implement`.
|
|
46
|
+
8. **Complete.** Run `complete`. It runs the final safety pass, archives the spec
|
|
47
|
+
under `religion/history/`, checks the item off the build plan, resets the active spec,
|
|
48
|
+
and makes the work commit. It ends with a manual walkthrough of what landed.
|
|
49
|
+
9. **Deploy, when it is time.** Run `release` after a completed item or a milestone
|
|
50
|
+
for provider config, environment review, and a smoke-test path.
|
|
51
|
+
|
|
52
|
+
The skills are the structured path, not a requirement. You can describe a feature, fix, or
|
|
53
|
+
change directly at any time, and it is built the same way: small steps, a diff you approve,
|
|
54
|
+
these conventions. Use the skills when you want the repeatable loop and the written
|
|
55
|
+
history; ask directly when you just want something done.
|
|
56
|
+
|
|
57
|
+
## Resuming
|
|
58
|
+
|
|
59
|
+
Progress lives in files, not in the conversation. The active spec holds each step checked
|
|
60
|
+
off as it lands, and git holds the code. A fresh session loads the spec through the project
|
|
61
|
+
entry file, so `implement` continues from the first unchecked step. There is no
|
|
62
|
+
separate save or load.
|
|
63
|
+
|
|
64
|
+
If you are unsure where things stand, run `status`. If you are unsure whether the
|
|
65
|
+
setup is healthy, run `doctor`. Both are read-only.
|
|
66
|
+
|
|
67
|
+
## When stuck
|
|
68
|
+
|
|
69
|
+
- If something is not working after two or three attempts, stop and explain the problem.
|
|
70
|
+
- Do not keep trying variations of the same fix.
|
|
71
|
+
- Ask when the requirements are genuinely unclear, and only then.
|
|
72
|
+
|
|
73
|
+
## Automated runs
|
|
74
|
+
|
|
75
|
+
`auto` exists only as an explicit opt-in. Do not suggest it as the default next
|
|
76
|
+
action. When invoked it runs without pausing after each passing step, within the bounds in
|
|
77
|
+
`religion/config.json`. Its invocation grants the routine actions listed in the Authority
|
|
78
|
+
section of the project entry file, and grants nothing beyond them.
|
|
79
|
+
|
|
80
|
+
## Reviewing generated code
|
|
81
|
+
|
|
82
|
+
Review it periodically, especially for authorization checks and input validation,
|
|
83
|
+
performance traps such as repeated queries, edge cases the happy path skipped, and whether
|
|
84
|
+
it matches the patterns already in the codebase.
|