reins-method 0.1.2 → 0.1.3

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 CHANGED
@@ -38,6 +38,31 @@ your company's or project's specific conventions and skills.
38
38
 
39
39
  ---
40
40
 
41
+ ## What it looks like
42
+
43
+ ```
44
+ you: Add a password reset endpoint to the API
45
+
46
+ agent: Detected stack: ruby (Gemfile) + node (package.json)
47
+ Loading adapter: acme-rails (matches `ruby`)
48
+
49
+ This looks like a new feature. Proposed breakdown:
50
+ 1. POST /password_resets — request a reset token
51
+ 2. POST /password_resets/:token — consume token, set new password
52
+ 3. Wire up email delivery via existing Mailer
53
+
54
+ Architecture decision needed: store reset tokens in the DB or Redis
55
+ with a TTL? Flagging this before we proceed.
56
+
57
+ Create a context file and start on step 1?
58
+ ```
59
+
60
+ The orchestrator instructions live in your AI agent's global config — every
61
+ project you open gets this behavior automatically, with no REINS files added to
62
+ the repo.
63
+
64
+ ---
65
+
41
66
  ## Quick start
42
67
 
43
68
  ```bash
@@ -50,6 +75,8 @@ menus for:
50
75
  - optionally fill in your company/personal coding standards
51
76
  - optionally enable Historic Mode (performance tracking)
52
77
  - optionally install an adapter pack
78
+ - choose your interaction language (default: English)
79
+ - choose your documentation language (default: English)
53
80
 
54
81
  Then restart your terminal/agent and run:
55
82
 
@@ -160,7 +187,7 @@ proactively. Use the built-in meta-skill to create one:
160
187
  reins new-skill my-skill
161
188
  ```
162
189
 
163
- or invoke `skill-creator` for guided creation. See [SKILLS.md](SKILLS.md).
190
+ or invoke `reins-skill-creator` for guided creation. See [SKILLS.md](SKILLS.md).
164
191
 
165
192
  ---
166
193
 
@@ -179,10 +206,10 @@ external install:
179
206
  | `reins-senior-engineer` | Test-first (red/green/refactor), 100% passing before review, no shortcuts |
180
207
 
181
208
  Each is callable individually (e.g. "give me the system architect's take on
182
- this"). Before a breakdown, ask for **`party-mode`** — a facilitator picks the
209
+ this"). Before a breakdown, ask for **`reins-party-mode`** — a facilitator picks the
183
210
  relevant personas (always the business analyst) and announces the lineup, each
184
211
  speaks in turn, then a synthesizer distills it into what matters for the
185
- breakdown. Before proposing a commit message, ask for **`code-review`** — it
212
+ breakdown. Before proposing a commit message, ask for **`reins-code-review`** — it
186
213
  launches independent subagents (logic, security, and requirements if a SPEC
187
214
  exists) for adversarial, parallel review, then closes with a plain-language
188
215
  summary of what needs fixing before merge.
@@ -214,6 +241,13 @@ these tools if you choose to install them separately:
214
241
  pip install "headroom-ai[all]"
215
242
  headroom wrap <agent>
216
243
  ```
244
+ Every session must be started through the wrapper (`headroom wrap claude`
245
+ instead of `claude`). To avoid typing that every time, alias it in your shell
246
+ rc file (e.g. `~/.zshrc`):
247
+ ```bash
248
+ alias claude="headroom wrap claude"
249
+ ```
250
+ This is fully optional — REINS works the same with or without headroom.
217
251
  - **[graphify](https://github.com/safishamsi/graphify)** — generates a knowledge
218
252
  graph of your codebase (code, docs, SQL, PDFs, images) at `graphify-out/`. REINS's
219
253
  orchestrator (`1_orchestrator.md` §2.5) automatically reads
@@ -274,7 +308,7 @@ reins-method/
274
308
  │ ├── workflow/ ← 1_orchestrator, 2_new_task, 3_implement, 4_close_task
275
309
  │ ├── templates/ ← context, current_task, adapter, skill, spec, plan templates
276
310
  │ ├── evaluation/ ← historic mode docs + templates
277
- │ └── skills/ ← skill-creator, party-mode, code-review,
311
+ │ └── skills/ ← reins-skill-creator, reins-party-mode, reins-code-review,
278
312
  │ reins-business-analyst, reins-technical-writer,
279
313
  │ reins-product-manager, reins-ux-designer,
280
314
  │ reins-system-architect, reins-senior-engineer
@@ -301,7 +335,7 @@ authors — nothing here is a fork or a dependency):
301
335
  `specs/<type>_<slug>/step-NN-{spec,plan}.md` and `core/templates/{spec,plan}.md`.
302
336
  - **[BMAD-METHOD](https://github.com/bmad-code-org/BMAD-METHOD)** — the
303
337
  multi-persona "Party Mode" discussion and the adversarial, parallel code-review
304
- pattern, reimplemented natively as `party-mode`, `code-review`, and the six
338
+ pattern, reimplemented natively as `reins-party-mode`, `reins-code-review`, and the six
305
339
  `reins-business-analyst`/`reins-technical-writer`/`reins-product-manager`/
306
340
  `reins-ux-designer`/`reins-system-architect`/`reins-senior-engineer` persona skills.
307
341
  - **[headroom](https://github.com/chopratejas/headroom)** — token-efficient context
@@ -312,8 +346,8 @@ authors — nothing here is a fork or a dependency):
312
346
  `graphify-out/GRAPH_REPORT.md` output if present (see "Companion tools" above).
313
347
  - **[ruflo](https://github.com/ruvnet/ruflo)** — informed thinking on fluid
314
348
  interlinking of workflow phases; no dedicated subsystem was added, but it shaped
315
- how `1_orchestrator.md` surfaces optional steps (project map, party-mode,
316
- code-review) inline in the workflow diagram.
349
+ how `1_orchestrator.md` surfaces optional steps (project map, reins-party-mode,
350
+ reins-code-review) inline in the workflow diagram.
317
351
 
318
352
  ---
319
353
 
package/SKILLS.md CHANGED
@@ -26,8 +26,8 @@ reins new-skill my-skill
26
26
  ```
27
27
 
28
28
  This scaffolds `~/.reins/user/skills/my-skill/SKILL.md`. Or, for guided creation, ask
29
- your agent to use the **skill-creator** meta-skill
30
- (`~/.reins/core/skills/skill-creator/SKILL.md`) — it will ask what the skill should do,
29
+ your agent to use the **reins-skill-creator** meta-skill
30
+ (`~/.reins/core/skills/reins-skill-creator/SKILL.md`) — it will ask what the skill should do,
31
31
  when it should trigger, whether it's read-only, and where it belongs (user vs.
32
32
  adapter), then draft the file for your review before writing it.
33
33
 
package/bin/reins CHANGED
@@ -287,6 +287,9 @@ generate_bridges() {
287
287
  active_adapters="$(config_adapters | tr '\n' ' ')"
288
288
  local historic
289
289
  historic="$(config_get historic_mode)"
290
+ local language doc_language
291
+ language="$(config_get language)"
292
+ doc_language="$(config_get doc_language)"
290
293
 
291
294
  local skills_md=""
292
295
  while IFS=$'\t' read -r dir reins_name; do
@@ -318,6 +321,10 @@ ${active_adapters:-(none configured — generic conventions only)}
318
321
  ## Historic mode
319
322
  ${historic:-off}
320
323
 
324
+ ## Language
325
+ - Interaction language: ${language:-english}
326
+ - Documentation language: ${doc_language:-english}
327
+
321
328
  ## Available skills
322
329
  On-demand only — never load proactively (see \`1_orchestrator.md\` §5).
323
330
  ${skills_md:-(none)}
@@ -342,6 +349,7 @@ cmd_install() {
342
349
  print_banner
343
350
  local non_interactive=0
344
351
  local arg_agent="" arg_standards="" arg_historic="" arg_adapter=""
352
+ local arg_language="" arg_doc_language=""
345
353
  for arg in "$@"; do
346
354
  case "$arg" in
347
355
  --non-interactive) non_interactive=1 ;;
@@ -349,6 +357,8 @@ cmd_install() {
349
357
  --standards=*) arg_standards="${arg#--standards=}" ;;
350
358
  --historic=*) arg_historic="${arg#--historic=}" ;;
351
359
  --adapter=*) arg_adapter="${arg#--adapter=}" ;;
360
+ --language=*) arg_language="${arg#--language=}" ;;
361
+ --doc-language=*) arg_doc_language="${arg#--doc-language=}" ;;
352
362
  esac
353
363
  done
354
364
 
@@ -394,6 +404,19 @@ cmd_install() {
394
404
  fi
395
405
  config_set agent "$agent"
396
406
 
407
+ local language doc_language
408
+ if [ "$non_interactive" -eq 1 ]; then
409
+ language="${arg_language:-english}"
410
+ doc_language="${arg_doc_language:-english}"
411
+ else
412
+ read -r -p "? Language to interact in (agent replies, skill/persona output)? [english] " language
413
+ language="${language:-english}"
414
+ read -r -p "? Language for documentation (code comments, docstrings, READMEs, etc.)? [english] " doc_language
415
+ doc_language="${doc_language:-english}"
416
+ fi
417
+ config_set language "$language"
418
+ config_set doc_language "$doc_language"
419
+
397
420
  touch "$USER_DIR/standards/company.md" "$USER_DIR/standards/personal.md"
398
421
  if [ ! -s "$USER_DIR/standards/company.md" ]; then
399
422
  cat > "$USER_DIR/standards/company.md" <<'EOF'
@@ -623,6 +646,8 @@ cmd_status() {
623
646
  fi
624
647
  log "Agent: $(config_get agent || echo 'not configured')"
625
648
  log "Historic mode: $(config_get historic_mode || echo 'off')"
649
+ log "Interaction language: $(config_get language || echo 'english')"
650
+ log "Documentation language: $(config_get doc_language || echo 'english')"
626
651
  local adapters
627
652
  adapters="$(config_adapters | tr '\n' ' ')"
628
653
  log "Adapters: ${adapters:-none}"
@@ -763,6 +788,7 @@ Usage:
763
788
  reins install First-time setup (interactive wizard)
764
789
  reins install --non-interactive --agent=<id> [--standards=yes|no]
765
790
  [--historic=on|off] [--adapter=<path>]
791
+ [--language=<lang>] [--doc-language=<lang>]
766
792
  Non-interactive setup, driven by flags
767
793
  (used by `npx reins-method install`)
768
794
  reins update Pull latest core, regenerate agent bridge files
@@ -16,7 +16,7 @@ tags: [persona, party-mode, strategy]
16
16
  - The user asks for a "business analyst" or "strategic" perspective on a task
17
17
  - A task touches multiple stakeholders, competing priorities, or "why are we doing
18
18
  this" is unclear
19
- - Invoked as part of `core/skills/party-mode/SKILL.md`
19
+ - Invoked as part of `core/skills/reins-party-mode/SKILL.md`
20
20
 
21
21
  ## Context
22
22
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: code-review
2
+ name: reins-code-review
3
3
  description: >
4
4
  Adversarial, parallel code review using independent subagents — not role-play.
5
5
  Michael (Facilitator) announces the session and calls in Dwight (logic/edge-case
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: party-mode
2
+ name: reins-party-mode
3
3
  description: >
4
4
  Run a multi-perspective discussion over a task description before proposing a
5
5
  breakdown. Michael (Facilitator) picks the relevant persona lenses (always
@@ -14,7 +14,7 @@ tags: [persona, party-mode, product]
14
14
 
15
15
  - The user asks for a "PM" or "product" perspective on a task
16
16
  - A new task is being defined and its user value/purpose isn't yet explicit
17
- - Invoked as part of `core/skills/party-mode/SKILL.md` (always included), or
17
+ - Invoked as part of `core/skills/reins-party-mode/SKILL.md` (always included), or
18
18
  alongside `core/workflow/2_new_task.md` Step 1
19
19
 
20
20
  ## Context
@@ -15,7 +15,7 @@ tags: [persona, party-mode, implementation]
15
15
  - The user asks for a "senior engineer" or "implementation" perspective
16
16
  - `core/workflow/3_implement.md` Step 3 (Implement) is reached and no adapter
17
17
  override defines a TDD/SDD process for this stack
18
- - Invoked as part of `core/skills/party-mode/SKILL.md` when the implementation
18
+ - Invoked as part of `core/skills/reins-party-mode/SKILL.md` when the implementation
19
19
  approach itself is in question
20
20
 
21
21
  ## Context
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: skill-creator
2
+ name: reins-skill-creator
3
3
  description: Guides the user through creating a new REINS skill (or adapter pack skill) — asks the right questions, drafts a SKILL.md following the contract in core/templates/skill.md, and writes it to the right location.
4
4
  tags: [meta, authoring]
5
5
  ---
@@ -15,7 +15,7 @@ tags: [persona, party-mode, architecture]
15
15
  - The user asks for an "architect" or "architecture" perspective
16
16
  - A task has a step that requires choosing between two or more valid technical
17
17
  approaches with different trade-offs
18
- - Invoked as part of `core/skills/party-mode/SKILL.md` when an architecture decision
18
+ - Invoked as part of `core/skills/reins-party-mode/SKILL.md` when an architecture decision
19
19
  is likely, or as part of `core/workflow/2_new_task.md` Step 4
20
20
 
21
21
  ## Context
@@ -15,7 +15,7 @@ tags: [persona, party-mode, docs]
15
15
  - The user asks for a "technical writer" perspective, or to review/restructure a
16
16
  SPEC, README, ADR, or API doc for clarity
17
17
  - A piece of documentation has grown into a wall of text and needs structure
18
- - Invoked as part of `core/skills/party-mode/SKILL.md` when docs/spec clarity is the
18
+ - Invoked as part of `core/skills/reins-party-mode/SKILL.md` when docs/spec clarity is the
19
19
  concern
20
20
 
21
21
  ## Context
@@ -14,7 +14,7 @@ tags: [persona, party-mode, ux]
14
14
 
15
15
  - The user asks for a "UX" or "design" perspective on a task
16
16
  - A task involves a UI, user-facing flow, form, or interaction change
17
- - Invoked as part of `core/skills/party-mode/SKILL.md` when the task is user-facing
17
+ - Invoked as part of `core/skills/reins-party-mode/SKILL.md` when the task is user-facing
18
18
 
19
19
  ## Context
20
20
 
@@ -8,7 +8,7 @@ Scaffold a new one with:
8
8
  ```
9
9
  reins new-skill <name>
10
10
  ```
11
- or invoke the `skill-creator` meta-skill (`~/.reins/core/skills/skill-creator/SKILL.md`)
11
+ or invoke the `reins-skill-creator` meta-skill (`~/.reins/core/skills/reins-skill-creator/SKILL.md`)
12
12
  for guided creation.
13
13
 
14
14
  ---
@@ -21,9 +21,9 @@ REINS Method is installed once, globally, at `~/.reins/`. **No REINS files ever
21
21
  │ ├── workflow/ ← phase files (this file + 2/3/4)
22
22
  │ ├── templates/ ← context, current_task, adapter, skill templates
23
23
  │ ├── evaluation/ ← historic mode templates
24
- │ └── skills/ ← meta-skills (e.g. skill-creator)
24
+ │ └── skills/ ← meta-skills (e.g. reins-skill-creator)
25
25
  ├── user/ ← user-owned, never touched by `reins update`
26
- │ ├── config.yaml ← name, agent, active adapter, historic mode
26
+ │ ├── config.yaml ← name, agent, active adapter, historic mode, language, doc_language
27
27
  │ ├── standards/ ← company.md (floor) + personal.md
28
28
  │ ├── adapters/ ← installed adapter packs
29
29
  │ ├── skills/ ← user's custom skills
@@ -41,6 +41,24 @@ REINS Method is installed once, globally, at `~/.reins/`. **No REINS files ever
41
41
 
42
42
  ---
43
43
 
44
+ ## 0.5 — Language
45
+
46
+ Your agent bridge file's "Language" section (generated from `~/.reins/user/config.yaml`'s
47
+ `language` and `doc_language`, both default `english`) sets two independent things for
48
+ this entire session:
49
+
50
+ - **Interaction language** (`language`) — the language you use to talk to the user:
51
+ chat replies, questions, breakdowns, and all output from REINS skills/personas
52
+ (party-mode, code-review, etc.).
53
+ - **Documentation language** (`doc_language`) — the language used when *writing*:
54
+ code comments, docstrings, commit messages, READMEs, SPECs, and other generated docs.
55
+
56
+ If a project's existing code/docs are already consistently written in a different
57
+ language than `doc_language`, follow the project's existing convention instead —
58
+ don't introduce a second language into an established codebase. When in doubt, ask.
59
+
60
+ ---
61
+
44
62
  ## 1 — Identify the project
45
63
 
46
64
  1. Determine the project root (nearest ancestor directory containing `.git`, or the current working directory if none).
@@ -150,6 +168,7 @@ When `branches` has more than one entry, before proceeding:
150
168
  | File | When |
151
169
  |---|---|
152
170
  | `core/workflow/1_orchestrator.md` | Session start (this file) |
171
+ | Language settings (§0.5) | Session start |
153
172
  | Active context file (§4) | Session start |
154
173
  | Adapter standards (§3), or `~/.reins/user/standards/*.md` | Session start |
155
174
  | `graphify-out/GRAPH_REPORT.md` (§2.5) | Session start, only if present |
@@ -178,7 +197,7 @@ New task arrives
178
197
  → load project map if present (§2.5)
179
198
  → load adapter standards, or generic standards (§3)
180
199
  → understand task + epic
181
- → optional: party-mode discussion (core/skills/party-mode/SKILL.md)
200
+ → optional: party-mode discussion (core/skills/reins-party-mode/SKILL.md)
182
201
  → propose breakdown (per component if multi-stack)
183
202
  → flag architecture decisions
184
203
  → wait for confirmation
@@ -194,7 +213,7 @@ User gives close order:
194
213
  → summarize what was done
195
214
  → assess epic impact
196
215
  → identify next step
197
- → optional: code review (core/skills/code-review/SKILL.md)
216
+ → optional: code review (core/skills/reins-code-review/SKILL.md)
198
217
  → review PR comments
199
218
  → propose commit message(s)
200
219
  → record historic entry (if historic mode is on)
@@ -207,6 +226,7 @@ User gives close order:
207
226
  ## 7 — General rules (permanent — never override)
208
227
 
209
228
  - Never write or modify a SPEC — that step belongs to the user
229
+ - Apply the configured interaction and documentation languages (§0.5) at all times
210
230
  - Never implement before the SPEC is provided and confirmed
211
231
  - Never make architecture decisions silently — surface trade-offs and wait for input
212
232
  - Never modify approved tests
@@ -39,7 +39,7 @@ This context shapes every decision we make — architecture, naming, scope.
39
39
 
40
40
  If the user asks for a multi-perspective discussion ("party mode", "discuss this
41
41
  first", or the task has real ambiguity, multiple stakeholders, or an unclear "why"),
42
- invoke `core/skills/party-mode/SKILL.md` now, before proposing the breakdown. Its
42
+ invoke `core/skills/reins-party-mode/SKILL.md` now, before proposing the breakdown. Its
43
43
  synthesis informs Step 3 and Step 4 below — it does not replace them.
44
44
 
45
45
  ---
@@ -61,7 +61,7 @@ If there is no clear next step, say so explicitly.
61
61
 
62
62
  ## Optional — Code review
63
63
 
64
- On request, invoke `core/skills/code-review/SKILL.md` against the full diff for this
64
+ On request, invoke `core/skills/reins-code-review/SKILL.md` against the full diff for this
65
65
  task before proposing the commit message in Step 5. Its findings are presented to
66
66
  the user, who decides whether to address anything before proceeding.
67
67
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reins-method",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "REINS Method — agent-agnostic AI pair-programming workflow. Interactive installer.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/gustavodiasp/reins-method",
@@ -137,12 +137,34 @@ async function runInstall() {
137
137
  process.exit(0);
138
138
  }
139
139
 
140
+ const language = await clack.text({
141
+ message: 'Language to interact in (agent replies, skill/persona output)?',
142
+ placeholder: 'english',
143
+ defaultValue: 'english',
144
+ });
145
+ if (clack.isCancel(language)) {
146
+ clack.cancel('Install cancelled.');
147
+ process.exit(0);
148
+ }
149
+
150
+ const docLanguage = await clack.text({
151
+ message: 'Language for documentation (code comments, docstrings, READMEs, etc.)?',
152
+ placeholder: 'english',
153
+ defaultValue: 'english',
154
+ });
155
+ if (clack.isCancel(docLanguage)) {
156
+ clack.cancel('Install cancelled.');
157
+ process.exit(0);
158
+ }
159
+
140
160
  const args = [
141
161
  'install',
142
162
  '--non-interactive',
143
163
  `--agent=${agent}`,
144
164
  `--standards=${wantsStandards ? 'yes' : 'no'}`,
145
165
  `--historic=${wantsHistoric ? 'on' : 'off'}`,
166
+ `--language=${language || 'english'}`,
167
+ `--doc-language=${docLanguage || 'english'}`,
146
168
  ];
147
169
  if (adapterPath) args.push(`--adapter=${adapterPath}`);
148
170