reins-method 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/ADAPTERS.md +117 -0
- package/HISTORIC_MODE.md +52 -0
- package/LICENSE +21 -0
- package/MIGRATION.md +82 -0
- package/README.md +332 -0
- package/SKILLS.md +111 -0
- package/agents/README.md +61 -0
- package/bin/reins +750 -0
- package/core/evaluation/README.md +134 -0
- package/core/evaluation/templates/monthly.md +121 -0
- package/core/evaluation/templates/task-entry.md +20 -0
- package/core/skills/code-review/SKILL.md +115 -0
- package/core/skills/party-mode/SKILL.md +76 -0
- package/core/skills/reins-business-analyst/SKILL.md +51 -0
- package/core/skills/reins-product-manager/SKILL.md +50 -0
- package/core/skills/reins-senior-engineer/SKILL.md +51 -0
- package/core/skills/reins-system-architect/SKILL.md +48 -0
- package/core/skills/reins-technical-writer/SKILL.md +47 -0
- package/core/skills/reins-ux-designer/SKILL.md +48 -0
- package/core/skills/skill-creator/SKILL.md +112 -0
- package/core/templates/adapter.md +94 -0
- package/core/templates/context.md +42 -0
- package/core/templates/current_task.md +37 -0
- package/core/templates/plan.md +32 -0
- package/core/templates/skill.md +67 -0
- package/core/templates/spec.md +62 -0
- package/core/workflow/1_orchestrator.md +224 -0
- package/core/workflow/2_new_task.md +133 -0
- package/core/workflow/3_implement.md +118 -0
- package/core/workflow/4_close_task.md +166 -0
- package/package.json +30 -0
- package/tools/installer/cli.js +231 -0
package/ADAPTERS.md
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Adapters
|
|
2
|
+
|
|
3
|
+
An adapter teaches REINS about a specific stack, company, or team. It's the only place
|
|
4
|
+
where stack-specific or proprietary content should live — the `core/` engine never
|
|
5
|
+
contains it.
|
|
6
|
+
|
|
7
|
+
Adapters are **user-owned**: they live at `~/.reins/user/adapters/<name>/`, are never
|
|
8
|
+
modified by `reins update`, and you decide whether to keep them local, share them
|
|
9
|
+
privately within a team, or publish them.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Creating an adapter
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
reins new-adapter my-company
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
This scaffolds:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
~/.reins/user/adapters/my-company/
|
|
23
|
+
├── ADAPTER.md
|
|
24
|
+
├── standards/
|
|
25
|
+
│ └── floor.md
|
|
26
|
+
├── workflow/ (empty — add 3_implement.md only if needed)
|
|
27
|
+
└── skills/ (empty — add SKILL.md dirs as needed)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 1. `ADAPTER.md`
|
|
31
|
+
|
|
32
|
+
```yaml
|
|
33
|
+
---
|
|
34
|
+
name: my-company
|
|
35
|
+
stacks: [ruby, node] # which detected stacks this adapter applies to
|
|
36
|
+
author: you
|
|
37
|
+
version: 0.1.0
|
|
38
|
+
description: >
|
|
39
|
+
Conventions and skills for ACME Corp's Rails + Angular stack.
|
|
40
|
+
---
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
`stacks` is matched against the marker-derived identifiers the orchestrator detects
|
|
44
|
+
(`core/workflow/1_orchestrator.md` §2 — `ruby` for `Gemfile`, `node` for
|
|
45
|
+
`package.json`, `python`, `go`, `jvm`, `rust`, `php`, ...). If more than one installed
|
|
46
|
+
adapter matches a project, all of them load.
|
|
47
|
+
|
|
48
|
+
### 2. `standards/floor.md`
|
|
49
|
+
|
|
50
|
+
The non-negotiable baseline for this stack: naming, architecture, test conventions —
|
|
51
|
+
whatever must always apply. Optionally add `standards/personal.md` for personal style
|
|
52
|
+
on top of the floor (precedence 2 — must never contradict the floor).
|
|
53
|
+
|
|
54
|
+
### 3. `workflow/3_implement.md` (optional)
|
|
55
|
+
|
|
56
|
+
Only add this if the stack needs a different development loop than the generic
|
|
57
|
+
SPEC → PLAN → IMPLEMENT → VERIFY → CONFIRM cycle in
|
|
58
|
+
`core/workflow/3_implement.md`. Common variants:
|
|
59
|
+
|
|
60
|
+
- **TDD/STDD** (backend with a test suite): `SPEC → TESTS → REVIEW → RED → GREEN`
|
|
61
|
+
- **SDD** (UI-only frontend, no automated tests): `SPEC → IMPLEMENT → VISUAL REVIEW → CONFIRM`
|
|
62
|
+
|
|
63
|
+
Keep the same "Permanent constraints" and "Start prompt" structure as the generic file
|
|
64
|
+
so behavior stays predictable.
|
|
65
|
+
|
|
66
|
+
### 4. `skills/`
|
|
67
|
+
|
|
68
|
+
Stack-specific, on-demand skills (scaffold generators, library reference browsers,
|
|
69
|
+
hotfix workflows, etc.). See [SKILLS.md](SKILLS.md).
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Example: a minimal Rails adapter
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
~/.reins/user/adapters/rails/
|
|
77
|
+
├── ADAPTER.md # stacks: [ruby]
|
|
78
|
+
├── standards/
|
|
79
|
+
│ └── floor.md # "use RSpec", "service objects under app/services", ...
|
|
80
|
+
└── workflow/
|
|
81
|
+
└── 3_implement.md # STDD cycle: SPEC -> TESTS -> RED -> GREEN
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Example: a minimal Python/FastAPI adapter
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
~/.reins/user/adapters/fastapi/
|
|
88
|
+
├── ADAPTER.md # stacks: [python]
|
|
89
|
+
├── standards/
|
|
90
|
+
│ └── floor.md # "pydantic models in schemas/", "pytest", ...
|
|
91
|
+
└── skills/
|
|
92
|
+
└── new-router/SKILL.md # scaffolds a new FastAPI router + schema + test
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Multi-stack projects
|
|
98
|
+
|
|
99
|
+
If a project matches more than one adapter (e.g. a `ruby` backend + `node` frontend
|
|
100
|
+
repo), the orchestrator loads both. Breakdown steps in `2_new_task.md` get labeled by
|
|
101
|
+
component (`(backend)`, `(frontend)`, `(integration)`), and the context file's
|
|
102
|
+
`branches`/`prs` fields become maps with one entry per component.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Sharing adapters
|
|
107
|
+
|
|
108
|
+
- **Local only**: do nothing — it's already at `~/.reins/user/adapters/<name>/`.
|
|
109
|
+
- **Private team sharing**: put it in a private git repo, `git clone` it into
|
|
110
|
+
`~/.reins/user/adapters/<name>/` on each machine.
|
|
111
|
+
- **Public**: publish it if there's nothing proprietary (no internal library names,
|
|
112
|
+
no internal process docs, no personal data). Review it the same way you'd review
|
|
113
|
+
any other open-source contribution before publishing.
|
|
114
|
+
|
|
115
|
+
REINS core never inspects adapter contents beyond `ADAPTER.md`'s `stacks:` field and the
|
|
116
|
+
optional `workflow/3_implement.md` override — it's safe to keep adapters completely
|
|
117
|
+
separate from this repo.
|
package/HISTORIC_MODE.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Historic Mode
|
|
2
|
+
|
|
3
|
+
Optional, off by default. Turns each closed task into a short entry in a monthly
|
|
4
|
+
file, and compiles a summary on request — useful for self-assessment and
|
|
5
|
+
performance check-ins.
|
|
6
|
+
|
|
7
|
+
All data is **user-owned** and lives at `~/.reins/user/historic/` — never inside a
|
|
8
|
+
project repo, never touched by `reins update`.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Enable / disable
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
reins historic on # creates ~/.reins/user/historic/ and this month's file
|
|
16
|
+
reins historic off # stops recording new entries; existing data is kept
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## What happens when it's on
|
|
22
|
+
|
|
23
|
+
- `core/workflow/4_close_task.md` Step 8 records a short entry for every closed task:
|
|
24
|
+
type, context, what was done, impact, and (optionally) a 0–10 difficulty rating
|
|
25
|
+
across size/complexity/impact.
|
|
26
|
+
- Entries accumulate in `~/.reins/user/historic/YYYY-MM.md`, one file per month, created
|
|
27
|
+
from `core/evaluation/templates/monthly.md`.
|
|
28
|
+
- On request ("generate monthly summary" / `reins historic summary`), the agent compiles
|
|
29
|
+
the month's entries — optionally enriched with PR/commit metrics from available
|
|
30
|
+
tooling — into a summary covering deliveries, progress against priorities, impact,
|
|
31
|
+
skills demonstrated, and a one-line takeaway.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Details
|
|
36
|
+
|
|
37
|
+
See `core/evaluation/README.md` for the full procedure (Mode A: recording an entry,
|
|
38
|
+
Mode B: generating a summary), the difficulty scale, and the rules (one file per
|
|
39
|
+
month, record at close not at month-end, no duplicates, enrichment is additive).
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Privacy
|
|
44
|
+
|
|
45
|
+
This is the one part of REINS that holds personal data by design. It is intentionally
|
|
46
|
+
kept:
|
|
47
|
+
- Outside any project repository
|
|
48
|
+
- Outside `~/.reins/core/` (so it's never confused with the updatable engine)
|
|
49
|
+
- Untouched by `reins update`
|
|
50
|
+
|
|
51
|
+
If you ever want to back it up or move it, it's just markdown files at
|
|
52
|
+
`~/.reins/user/historic/`.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Gustavo Dias
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/MIGRATION.md
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Migration — from the old `personal_ai_workflow` to REINS Method
|
|
2
|
+
|
|
3
|
+
This repo was redesigned from a project-coupled workflow (Rails/Angular + Hitax +
|
|
4
|
+
personal evaluation data, all in one repo) into REINS Method: a public, stack-agnostic
|
|
5
|
+
core (`~/.reins/core/`) plus user-owned adapters and historic data
|
|
6
|
+
(`~/.reins/user/`).
|
|
7
|
+
|
|
8
|
+
**Phase 1 (done in this repo):** the generic core, CLI, agent bridges, and docs
|
|
9
|
+
described in the rest of this repo.
|
|
10
|
+
|
|
11
|
+
**Phase 2 (TODO — separate, private session):** migrate everything stack-specific or
|
|
12
|
+
personal out of this repo into your local `~/.reins/user/`.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## What needs to move, and where
|
|
17
|
+
|
|
18
|
+
### 1. Hitax/Rails/Angular adapter → private adapter pack
|
|
19
|
+
|
|
20
|
+
The old `adapters/backend/` and `adapters/frontend/` directories contained Rails/RSpec
|
|
21
|
+
and Angular/hitax-ng conventions and skills (`hitax-*`, `reins-add-*`, etc.) tied to a
|
|
22
|
+
specific employer's stack and internal libraries (`hitax_ai`, `hitax_hub`, `hitax-ng`,
|
|
23
|
+
`HtxApiService`, ...).
|
|
24
|
+
|
|
25
|
+
To migrate:
|
|
26
|
+
|
|
27
|
+
1. `reins new-adapter hitax`
|
|
28
|
+
2. Move `standards/code_standards.md`, `personal_code_standards.md`,
|
|
29
|
+
`test_conventions.md`, `test_runner.md` (backend) and
|
|
30
|
+
`code_standards.md`, `frontend_standards.md`, `i18n_workflow.md`,
|
|
31
|
+
`personal_code_standards.md` (frontend) into
|
|
32
|
+
`~/.reins/user/adapters/hitax/standards/` — split/merge into `floor.md` (precedence 1)
|
|
33
|
+
and `personal.md` (precedence 2) per `ADAPTERS.md`.
|
|
34
|
+
3. Move `adapters/backend/workflow/3_stdd_instructions.md` and
|
|
35
|
+
`adapters/frontend/workflow/3_sdd_instructions.md` into
|
|
36
|
+
`~/.reins/user/adapters/hitax/workflow/3_implement.md` — pick (or merge) whichever
|
|
37
|
+
applies based on the stack the adapter targets, following the structure of
|
|
38
|
+
`core/workflow/3_implement.md`.
|
|
39
|
+
4. Move all `hitax-*` skills and the `reins-*` frontend/backend skills into
|
|
40
|
+
`~/.reins/user/adapters/hitax/skills/`.
|
|
41
|
+
5. Set `ADAPTER.md` `stacks: [ruby, node]` (or split into two adapters,
|
|
42
|
+
`hitax-backend` / `hitax-frontend`, if they should load independently).
|
|
43
|
+
6. Keep this adapter **private** — it references an employer's internal libraries and
|
|
44
|
+
processes (`hitax apps`, `Deloitte TaxIT`, etc.).
|
|
45
|
+
|
|
46
|
+
### 2. Personal evaluation data → `~/.reins/user/historic/`
|
|
47
|
+
|
|
48
|
+
The old `core/evaluation/monthly/*.md` files (2025-11 through 2026-06) contain real
|
|
49
|
+
performance-review content. Move them as-is to `~/.reins/user/historic/`:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
mkdir -p ~/.reins/user/historic
|
|
53
|
+
mv core/evaluation/monthly/*.md ~/.reins/user/historic/
|
|
54
|
+
reins historic on
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Then remove `core/evaluation/monthly/` from this repo (already done in Phase 1 — this
|
|
58
|
+
repo only ships empty templates now).
|
|
59
|
+
|
|
60
|
+
### 3. Active project contexts/specs → `~/.reins/user/projects/<project-slug>/`
|
|
61
|
+
|
|
62
|
+
The old `projects/contexts/*.md` and `projects/specs/*.md` described in-progress
|
|
63
|
+
company work. For each active context:
|
|
64
|
+
|
|
65
|
+
1. Determine `<project-slug>` for the project it belongs to (per
|
|
66
|
+
`core/workflow/1_orchestrator.md` §1).
|
|
67
|
+
2. `mkdir -p ~/.reins/user/projects/<project-slug>/{contexts,specs}`
|
|
68
|
+
3. Move the relevant context/spec files there.
|
|
69
|
+
4. Update the frontmatter to the new model (`branches`/`prs` as maps — see
|
|
70
|
+
`core/templates/context.md`) if it used the old single `branch`/`pr` fields.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## After migrating
|
|
75
|
+
|
|
76
|
+
- `reins doctor` should report no issues.
|
|
77
|
+
- Open a project that matches the `hitax` adapter's `stacks:` and confirm the
|
|
78
|
+
orchestrator loads it.
|
|
79
|
+
- Confirm `reins historic on` picks up the current month correctly and that closing a
|
|
80
|
+
task appends to it.
|
|
81
|
+
- This repo (REINS Method core) should now contain **no personal data and nothing
|
|
82
|
+
proprietary** — safe to make public.
|
package/README.md
ADDED
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
```
|
|
2
|
+
█████ █████ ███ █ █ ████
|
|
3
|
+
█ █ █ █ ██ █ █
|
|
4
|
+
█ █ █ █ █ █ █ █
|
|
5
|
+
█████ ████ █ █ ██ ███
|
|
6
|
+
█ █ █ █ █ █ █
|
|
7
|
+
█ █ █ █ █ █ █
|
|
8
|
+
█ █ █████ ███ █ █ ████
|
|
9
|
+
|
|
10
|
+
agent-agnostic · stack-agnostic
|
|
11
|
+
globally installed · customizable
|
|
12
|
+
──────────────────────────────────────────
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
<p align="center">
|
|
16
|
+
<a href="#quick-start"><img alt="Install" src="https://img.shields.io/badge/install-npx%20reins--method-orange?style=flat-square"></a>
|
|
17
|
+
<a href="#supported-agents"><img alt="Agents" src="https://img.shields.io/badge/agents-Claude%20%7C%20Gemini%20%7C%20Copilot%20%7C%20Codex%20%7C%20Aider-8A2BE2?style=flat-square"></a>
|
|
18
|
+
<a href="#"><img alt="Dependencies" src="https://img.shields.io/badge/dependencies-bash%20%2B%20git%20(installer%3A%20node)-4EAA25?style=flat-square&logo=gnu-bash&logoColor=white"></a>
|
|
19
|
+
<a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/license-MIT-yellow?style=flat-square"></a>
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
# REINS Method
|
|
23
|
+
|
|
24
|
+
> AI is like a horse — far stronger than any human, but without a rider it goes
|
|
25
|
+
> wherever it wants. REINS is the bridle. It does not limit the horse; it gives the
|
|
26
|
+
> rider control over where that power goes.
|
|
27
|
+
|
|
28
|
+
A universal, agent-agnostic AI pair-programming workflow. Install it once, globally,
|
|
29
|
+
and use it in every project — without ever adding files to a project repository.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Why
|
|
34
|
+
|
|
35
|
+
Most AI coding workflows end up either:
|
|
36
|
+
- copy-pasted into every repo (drifts out of sync, leaks into commits), or
|
|
37
|
+
- tightly coupled to one company's stack and conventions (can't be shared or open-sourced)
|
|
38
|
+
|
|
39
|
+
REINS Method solves both: a small, **stack-agnostic core** that defines how you and your
|
|
40
|
+
AI agent move through a task (new task → implement → close task, with an optional
|
|
41
|
+
historic/performance-tracking mode), plus **user-owned adapter packs** that teach it
|
|
42
|
+
your company's or project's specific conventions and skills.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Quick start
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npx reins-method@latest install
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
This clones REINS Method to `~/.reins/` and runs the setup wizard — arrow-key
|
|
53
|
+
menus for:
|
|
54
|
+
- pick your AI agent (Claude Code, GitHub Copilot CLI, Codex CLI, Gemini CLI, Aider, OpenCode, Cursor, other)
|
|
55
|
+
- optionally fill in your company/personal coding standards
|
|
56
|
+
- optionally enable Historic Mode (performance tracking)
|
|
57
|
+
- optionally install an adapter pack
|
|
58
|
+
|
|
59
|
+
Then restart your terminal/agent and run:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
reins status
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Open any project with your AI agent — REINS's orchestrator is now part of its
|
|
66
|
+
instructions and will detect the project's stack automatically.
|
|
67
|
+
|
|
68
|
+
No Node.js? Use the plain bash installer instead — same questions, numbered
|
|
69
|
+
prompts instead of arrow-key menus:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
curl -fsSL https://raw.githubusercontent.com/gustavodiasp/reins-method/main/install.sh | bash
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Where should I install this?
|
|
76
|
+
|
|
77
|
+
**Install once, in your home directory — not inside or next to your projects.**
|
|
78
|
+
`reins install` always installs to `~/.reins/`, regardless of where you run it from.
|
|
79
|
+
|
|
80
|
+
There's no need to create a parent folder containing all your projects, and no
|
|
81
|
+
need to install REINS per-project or per-workspace: REINS wires itself into each AI
|
|
82
|
+
agent's *global* config (`~/.claude/CLAUDE.md`, `~/.gemini/GEMINI.md`, etc. — see
|
|
83
|
+
"Supported agents" below), so every project you open with that agent
|
|
84
|
+
automatically gets REINS's orchestrator instructions and stack detection. One
|
|
85
|
+
global install covers every project on the machine, in every supported agent.
|
|
86
|
+
|
|
87
|
+
### Why does the installer need Node, if REINS is a bash CLI?
|
|
88
|
+
|
|
89
|
+
Only the *installer* (`npx reins-method install`) uses Node — for the
|
|
90
|
+
[@clack/prompts](https://github.com/bombshell-dev/clack)-based arrow-key menus,
|
|
91
|
+
in the same style as [BMAD-METHOD](https://github.com/bmad-code-org/BMAD-METHOD)'s
|
|
92
|
+
`npx bmad-method install`. It collects your answers, then hands them to `bin/reins
|
|
93
|
+
install --non-interactive` to do the actual file work. Everything you run
|
|
94
|
+
afterwards — `reins update`, `reins sync`, `reins new-adapter`, etc. — is plain
|
|
95
|
+
bash with no runtime dependencies. If you'd rather not use Node at all, `install.sh`
|
|
96
|
+
runs the same wizard with `read -p` prompts instead of menus.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## How it works
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
~/.reins/
|
|
104
|
+
├── core/ ← the workflow engine (updated via `reins update`)
|
|
105
|
+
├── user/ ← your config, standards, adapters, skills, project state, historic data
|
|
106
|
+
└── agents/ ← generated bridge files, one per AI agent
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
- **`core/`** defines the workflow phases: `1_orchestrator.md` (read first every
|
|
110
|
+
session — detects stack, loads adapters, locates the active task), `2_new_task.md`
|
|
111
|
+
(understand → breakdown → confirm), `3_implement.md` (SPEC → implement → verify),
|
|
112
|
+
`4_close_task.md` (summary → commit → optional historic entry → cleanup).
|
|
113
|
+
- **`user/`** is yours. `reins update` never touches it. It holds your standards, your
|
|
114
|
+
adapters, your custom skills, per-project task contexts/specs, and (optionally)
|
|
115
|
+
monthly historic records.
|
|
116
|
+
- **`agents/`** holds generated files that each AI agent's native config imports or
|
|
117
|
+
references — see [agents/README.md](agents/README.md).
|
|
118
|
+
|
|
119
|
+
No REINS file is ever written into a project repository. `.gitignore` hacks aren't
|
|
120
|
+
needed because there's nothing to ignore.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## The workflow
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
New task arrives
|
|
128
|
+
↓
|
|
129
|
+
2_new_task.md — understand task & epic, propose breakdown, flag decisions, create context
|
|
130
|
+
↓
|
|
131
|
+
3_implement.md — SPEC → implement → verify, per confirmed step
|
|
132
|
+
(adapters can override this with TDD/SDD-style cycles)
|
|
133
|
+
↓
|
|
134
|
+
4_close_task.md — summary, epic impact, commit message, PR review,
|
|
135
|
+
optional historic entry, context cleanup
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Context files (one per active task, per project) live at
|
|
139
|
+
`~/.reins/user/projects/<project-slug>/contexts/`. See `core/workflow/1_orchestrator.md`
|
|
140
|
+
for the full model, including the "exactly one active context" invariant and the
|
|
141
|
+
multi-component branch guard.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Adapters — teaching REINS your stack
|
|
146
|
+
|
|
147
|
+
An adapter pack is a folder with conventions (`standards/floor.md`), an optional
|
|
148
|
+
override of the implement phase (`workflow/3_implement.md`), and optional on-demand
|
|
149
|
+
skills (`skills/<name>/SKILL.md`). The orchestrator matches an adapter's declared
|
|
150
|
+
`stacks:` against marker files it finds in your project (`Gemfile`, `package.json`,
|
|
151
|
+
`pyproject.toml`, `go.mod`, ...).
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
reins new-adapter my-company
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
See [ADAPTERS.md](ADAPTERS.md) for the full contract. Adapters are **user-owned** —
|
|
158
|
+
keep them local, share them privately within your team, or publish them if there's
|
|
159
|
+
nothing proprietary inside.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Skills — on-demand procedures
|
|
164
|
+
|
|
165
|
+
Skills are single `SKILL.md` files the agent loads only when relevant — never
|
|
166
|
+
proactively. Use the built-in meta-skill to create one:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
reins new-skill my-skill
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
or invoke `skill-creator` for guided creation. See [SKILLS.md](SKILLS.md).
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Personas, Party Mode & Code Review
|
|
177
|
+
|
|
178
|
+
Six built-in persona skills give you BMAD-style perspectives natively, with no
|
|
179
|
+
external install — each named after its role (`reins-<role>`), with a character
|
|
180
|
+
identity for flavor:
|
|
181
|
+
|
|
182
|
+
| Skill | Persona | Lens |
|
|
183
|
+
|---|---|---|
|
|
184
|
+
| `reins-business-analyst` | Toby | Methodical, evidence-based (Porter, Minto Pyramid), represents every stakeholder — including the inconvenient ones — never takes sides |
|
|
185
|
+
| `reins-technical-writer` | Pam | CommonMark/DITA/OpenAPI, writes for the reader with zero context, diagrams over walls of text |
|
|
186
|
+
| `reins-product-manager` | Jim | Jobs-to-be-Done, pragmatic and people-focused, skeptical of complexity that doesn't earn its cost |
|
|
187
|
+
| `reins-ux-designer` | Erin | Deeply empathetic, thinks in user flows and friction points, every decision serves a genuine user need |
|
|
188
|
+
| `reins-system-architect` | David | Calm and strategic, favors proven tech, developer productivity, ties decisions to business value |
|
|
189
|
+
| `reins-senior-engineer` | Angela | Test-first (red/green/refactor), 100% passing before review, no shortcuts |
|
|
190
|
+
|
|
191
|
+
Each is callable individually ("give me David's take on this"). Before a
|
|
192
|
+
breakdown, ask for **`party-mode`** — Michael (Facilitator) picks the relevant
|
|
193
|
+
personas (always Toby) and announces the lineup, each speaks in turn, then Jim
|
|
194
|
+
(Synthesizer) distills it into what matters for the breakdown. Before proposing a
|
|
195
|
+
commit message, ask for **`code-review`** — Michael opens the session and
|
|
196
|
+
launches independent subagents (Dwight for logic, Creed for security, and Oscar for
|
|
197
|
+
requirements if a SPEC exists) for adversarial, parallel review; Jim then closes
|
|
198
|
+
with a plain-language summary of what needs fixing before merge.
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Historic Mode — optional performance tracking
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
reins historic on
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Each closed task can leave a short entry in a monthly file under
|
|
209
|
+
`~/.reins/user/historic/`. On request, REINS compiles a Monthly Summary to support
|
|
210
|
+
self-assessment and check-ins. All data is local and user-owned. See
|
|
211
|
+
[HISTORIC_MODE.md](HISTORIC_MODE.md).
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Companion tools (optional)
|
|
216
|
+
|
|
217
|
+
REINS has no required dependencies, but its workflow is designed to take advantage of
|
|
218
|
+
these tools if you choose to install them separately:
|
|
219
|
+
|
|
220
|
+
- **[headroom](https://github.com/chopratejas/headroom)** — token-efficient context
|
|
221
|
+
compression for AI agents. Wrap your agent to cut context usage without losing
|
|
222
|
+
comprehension:
|
|
223
|
+
```bash
|
|
224
|
+
pip install "headroom-ai[all]"
|
|
225
|
+
headroom wrap <agent>
|
|
226
|
+
```
|
|
227
|
+
- **[graphify](https://github.com/safishamsi/graphify)** — generates a knowledge
|
|
228
|
+
graph of your codebase (code, docs, SQL, PDFs, images) at `graphify-out/`. REINS's
|
|
229
|
+
orchestrator (`1_orchestrator.md` §2.5) automatically reads
|
|
230
|
+
`graphify-out/GRAPH_REPORT.md` at session start if present:
|
|
231
|
+
```bash
|
|
232
|
+
pip install graphifyy && graphify install
|
|
233
|
+
# then, in a project:
|
|
234
|
+
/graphify .
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## CLI reference
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
reins install First-time setup (interactive wizard)
|
|
243
|
+
reins update Pull latest core, regenerate agent bridge files
|
|
244
|
+
reins new-adapter <name> Scaffold a new adapter pack
|
|
245
|
+
reins new-skill <name> Scaffold a new skill
|
|
246
|
+
reins sync Regenerate agent bridges + skill registration (no git pull)
|
|
247
|
+
reins link-agents Wire any newly-installed AI agents into existing bridges
|
|
248
|
+
reins historic on|off Enable/disable historic mode
|
|
249
|
+
reins status Show installed version, agent, adapters, historic mode
|
|
250
|
+
reins doctor Validate the installation
|
|
251
|
+
reins uninstall Unhook REINS from your agent/shell, optionally delete ~/.reins
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Supported agents
|
|
257
|
+
|
|
258
|
+
REINS doesn't just wire the one agent you pick during `reins install` — every `reins
|
|
259
|
+
update`/`reins sync` run wires **every agent it finds installed on the machine**
|
|
260
|
+
(detected by the presence of that agent's config directory), plus a generic
|
|
261
|
+
`~/AGENTS.md` fallback used by tools without a dedicated config directory:
|
|
262
|
+
|
|
263
|
+
| Agent | Bridge mechanism | Detected via |
|
|
264
|
+
|---|---|---|
|
|
265
|
+
| Claude Code | `~/.claude/CLAUDE.md` imports `~/.reins/agents/CLAUDE.md` | `~/.claude/` exists |
|
|
266
|
+
| Gemini CLI | `~/.gemini/GEMINI.md` imports `~/.reins/agents/GEMINI.md` | `~/.gemini/` exists |
|
|
267
|
+
| GitHub Copilot CLI | `~/.copilot/instructions.md` references `~/.reins/agents/copilot-instructions.md` | `~/.copilot/` exists |
|
|
268
|
+
| Codex CLI | `~/.codex/AGENTS.md` references `~/.reins/agents/AGENTS.md` | `~/.codex/` exists |
|
|
269
|
+
| Aider / OpenCode / Cursor / other | `~/AGENTS.md` references `~/.reins/agents/AGENTS.md` | always wired |
|
|
270
|
+
|
|
271
|
+
The agent you pick during `reins install` is just your *default* for `reins
|
|
272
|
+
status`/`reins doctor` — it doesn't limit which agents get REINS's instructions.
|
|
273
|
+
If you install a new AI agent later, run `reins link-agents` to wire it in
|
|
274
|
+
without a full `reins update`. Run `reins doctor` to check your default agent's
|
|
275
|
+
bridge is wired correctly.
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Project structure (this repo)
|
|
280
|
+
|
|
281
|
+
```
|
|
282
|
+
reins-method/
|
|
283
|
+
├── core/
|
|
284
|
+
│ ├── workflow/ ← 1_orchestrator, 2_new_task, 3_implement, 4_close_task
|
|
285
|
+
│ ├── templates/ ← context, current_task, adapter, skill, spec, plan templates
|
|
286
|
+
│ ├── evaluation/ ← historic mode docs + templates
|
|
287
|
+
│ └── skills/ ← skill-creator, party-mode, code-review,
|
|
288
|
+
│ reins-business-analyst, reins-technical-writer,
|
|
289
|
+
│ reins-product-manager, reins-ux-designer,
|
|
290
|
+
│ reins-system-architect, reins-senior-engineer
|
|
291
|
+
├── agents/ ← generated bridge file templates
|
|
292
|
+
├── bin/reins ← the CLI
|
|
293
|
+
├── tools/installer/cli.js ← `npx reins-method install` (Node wizard, @clack/prompts)
|
|
294
|
+
├── install.sh ← curl | bash entry point (no Node required)
|
|
295
|
+
├── package.json ← npm package for the installer (`reins-method`)
|
|
296
|
+
├── ADAPTERS.md
|
|
297
|
+
├── SKILLS.md
|
|
298
|
+
├── HISTORIC_MODE.md
|
|
299
|
+
└── MIGRATION.md
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## Inspiration
|
|
305
|
+
|
|
306
|
+
REINS Method's design borrows specific ideas from these projects (full credit to their
|
|
307
|
+
authors — nothing here is a fork or a dependency):
|
|
308
|
+
|
|
309
|
+
- **[spec-kit](https://github.com/github/spec-kit)** (GitHub) — the per-feature
|
|
310
|
+
`specs/<feature>/{spec,plan}.md` artifact separation that shaped
|
|
311
|
+
`specs/<type>_<slug>/step-NN-{spec,plan}.md` and `core/templates/{spec,plan}.md`.
|
|
312
|
+
- **[BMAD-METHOD](https://github.com/bmad-code-org/BMAD-METHOD)** — the
|
|
313
|
+
multi-persona "Party Mode" discussion and the adversarial, parallel code-review
|
|
314
|
+
pattern, reimplemented natively as `party-mode`, `code-review`, and the six
|
|
315
|
+
`reins-business-analyst`/`reins-technical-writer`/`reins-product-manager`/
|
|
316
|
+
`reins-ux-designer`/`reins-system-architect`/`reins-senior-engineer` persona skills.
|
|
317
|
+
- **[headroom](https://github.com/chopratejas/headroom)** — token-efficient context
|
|
318
|
+
compression; documented as an optional companion tool (see "Companion tools"
|
|
319
|
+
above).
|
|
320
|
+
- **[graphify](https://github.com/safishamsi/graphify)** — codebase knowledge-graph
|
|
321
|
+
generation; the orchestrator (`1_orchestrator.md` §2.5) reads its
|
|
322
|
+
`graphify-out/GRAPH_REPORT.md` output if present (see "Companion tools" above).
|
|
323
|
+
- **[ruflo](https://github.com/ruvnet/ruflo)** — informed thinking on fluid
|
|
324
|
+
interlinking of workflow phases; no dedicated subsystem was added, but it shaped
|
|
325
|
+
how `1_orchestrator.md` surfaces optional steps (project map, party-mode,
|
|
326
|
+
code-review) inline in the workflow diagram.
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## License
|
|
331
|
+
|
|
332
|
+
MIT (or your choice — update before publishing).
|