reins-method 0.1.0 → 0.1.1

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
@@ -1,15 +1,14 @@
1
1
  ```
2
- █████ █████ ███ █ █ ████
3
- █ █ █ █ ██ █
4
- █ █ █ █
5
- █████ ████ █ █ ██ ███
6
- █ █ █ █ █ █
7
- █ █ █ █ █ █ █
8
- █ █ █████ ███ █ █ ████
9
-
10
- agent-agnostic · stack-agnostic
11
- globally installed · customizable
12
- ──────────────────────────────────────────
2
+ ,~~_ ____ ___________ _______
3
+ |/\ =_ _ ~ / __ \/ ____/ _/ | / / ___/
4
+ _( )_( )\~~ / /_/ / __/ / // |/ /\__ \
5
+ \,\ _|\ \~~~ / _, _/ /____/ // /| /___/ /
6
+ \` \ /_/ |_/_____/___/_/ |_//____/
7
+ ` `
8
+
9
+ structured AI pair programming method
10
+ ──────────────────────────────────────────────────
11
+ agent-agnostic · stack-agnostic · globally installed
13
12
  ```
14
13
 
15
14
  <p align="center">
@@ -21,10 +20,6 @@
21
20
 
22
21
  # REINS Method
23
22
 
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
23
  A universal, agent-agnostic AI pair-programming workflow. Install it once, globally,
29
24
  and use it in every project — without ever adding files to a project repository.
30
25
 
@@ -329,4 +324,4 @@ authors — nothing here is a fork or a dependency):
329
324
 
330
325
  ## License
331
326
 
332
- MIT (or your choice update before publishing).
327
+ MIT — see [LICENSE](LICENSE).
package/bin/reins CHANGED
@@ -18,6 +18,45 @@ log() { printf '%s\n' "$*"; }
18
18
  err() { printf 'Error: %s\n' "$*" >&2; }
19
19
  die() { err "$*"; exit 1; }
20
20
 
21
+ print_banner() {
22
+ local horse=$'\033[32m' rtxt=$'\033[92m' muted=$'\033[2;32m'
23
+ local check=$'\033[92m' text=$'\033[32m' reset=$'\033[0m'
24
+
25
+ printf '%s%s%s%s%s\n' "$horse" ' ,~~_ ' "$rtxt" '____ ___________ _______' "$reset"
26
+ printf '%s%s%s%s%s\n' "$horse" ' |/\ =_ _ ~ ' "$rtxt" '/ __ \/ ____/ _/ | / / ___/' "$reset"
27
+ printf '%s%s%s%s%s\n' "$horse" ' _( )_( )\~~ ' "$rtxt" '/ /_/ / __/ / // |/ /\__ \' "$reset"
28
+ printf '%s%s%s%s%s\n' "$horse" ' \,\ _|\ \~~~ ' "$rtxt" '/ _, _/ /____/ // /| /___/ /' "$reset"
29
+ printf '%s%s%s%s%s\n' "$horse" ' \` \ ' "$rtxt" '/_/ |_/_____/___/_/ |_//____/' "$reset"
30
+ printf '%s%s%s\n' "$horse" ' ` `' "$reset"
31
+ printf '\n'
32
+ printf '%s structured AI pair programming method%s\n' "$muted" "$reset"
33
+ printf '%s ──────────────────────────────────────────────────%s\n' "$muted" "$reset"
34
+ printf ' agent-agnostic · stack-agnostic · globally installed\n'
35
+ printf '\n'
36
+
37
+ printf '%s✓%s REINS installed to ~/.reins/%s\n' "$check" "$text" "$reset"
38
+
39
+ local agent bridge_ok=0
40
+ agent="$(config_get agent)"
41
+ if [ -n "$agent" ]; then
42
+ local entry
43
+ if entry="$(agent_bridge_target "$agent" 2>/dev/null)"; then
44
+ local bridge="${entry%%:*}"
45
+ [ -f "$bridge" ] && bridge_ok=1
46
+ fi
47
+ fi
48
+ if [ "$bridge_ok" -eq 1 ]; then
49
+ printf '%s✓%s Agent bridge configured%s\n' "$check" "$text" "$reset"
50
+ fi
51
+
52
+ local skill_count=0
53
+ if [ -d "$CORE_DIR/skills" ]; then
54
+ skill_count="$(find "$CORE_DIR/skills" -mindepth 1 -maxdepth 1 -type d | wc -l | tr -d ' ')"
55
+ fi
56
+ printf '%s✓%s %s core skills registered%s\n' "$check" "$text" "$skill_count" "$reset"
57
+ printf '\n'
58
+ }
59
+
21
60
  config_get() {
22
61
  # config_get <key> -> prints scalar value for "key: value" line, empty if absent
23
62
  [ -f "$CONFIG" ] || return 0
@@ -300,6 +339,7 @@ EOF
300
339
  # ---------------------------------------------------------------------------
301
340
 
302
341
  cmd_install() {
342
+ print_banner
303
343
  local non_interactive=0
304
344
  local arg_agent="" arg_standards="" arg_historic="" arg_adapter=""
305
345
  for arg in "$@"; do
@@ -453,6 +493,7 @@ EOF
453
493
  }
454
494
 
455
495
  cmd_update() {
496
+ print_banner
456
497
  if [ -d "$REINS_HOME/.git" ]; then
457
498
  if ! git -C "$REINS_HOME" pull --ff-only; then
458
499
  err "git pull failed — if this checkout has no upstream tracking branch, run:"
@@ -468,6 +509,7 @@ cmd_update() {
468
509
  }
469
510
 
470
511
  cmd_new_adapter() {
512
+ print_banner
471
513
  local name="${1:-}"
472
514
  [ -n "$name" ] || die "usage: reins new-adapter <name>"
473
515
  local dir="$USER_DIR/adapters/$name"
@@ -504,6 +546,7 @@ EOF
504
546
  }
505
547
 
506
548
  cmd_new_skill() {
549
+ print_banner
507
550
  local name="${1:-}"
508
551
  [ -n "$name" ] || die "usage: reins new-skill <name>"
509
552
  local dir="$USER_DIR/skills/$name"
@@ -534,10 +577,12 @@ EOF
534
577
  }
535
578
 
536
579
  cmd_sync() {
580
+ print_banner
537
581
  generate_bridges
538
582
  }
539
583
 
540
584
  cmd_link_agents() {
585
+ print_banner
541
586
  # Wire newly-installed AI agents into the existing bridge files without a
542
587
  # full bridge regeneration — handy after installing a new agent on this
543
588
  # machine (e.g. you set up Gemini CLI after running `reins install`).
@@ -548,6 +593,7 @@ cmd_link_agents() {
548
593
  }
549
594
 
550
595
  cmd_historic() {
596
+ [ "${2:-}" = "--quiet" ] || print_banner
551
597
  local mode="${1:-}"
552
598
  case "$mode" in
553
599
  on)
@@ -570,6 +616,7 @@ cmd_historic() {
570
616
  }
571
617
 
572
618
  cmd_status() {
619
+ print_banner
573
620
  log "REINS_HOME: $REINS_HOME"
574
621
  if [ -d "$REINS_HOME/.git" ]; then
575
622
  log "Version: $(git -C "$REINS_HOME" rev-parse --short HEAD 2>/dev/null) ($(git -C "$REINS_HOME" log -1 --format=%cd --date=short 2>/dev/null))"
@@ -597,6 +644,7 @@ cmd_status() {
597
644
  }
598
645
 
599
646
  cmd_doctor() {
647
+ print_banner
600
648
  local problems=0
601
649
 
602
650
  [ -d "$CORE_DIR" ] || { err "missing $CORE_DIR"; problems=$((problems+1)); }
@@ -639,6 +687,7 @@ cmd_doctor() {
639
687
  }
640
688
 
641
689
  cmd_uninstall() {
690
+ print_banner
642
691
  log "Uninstalling REINS Method..."
643
692
 
644
693
  # Remove the managed block from every native config REINS may have wired
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reins-method",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
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",
@@ -29,25 +29,20 @@ async function getColors() {
29
29
  async function printBanner() {
30
30
  const c = await getColors();
31
31
  const lines = [
32
- '█████ █████ ███ █ █ ████',
33
- '█ █ █ █ ██ █ ',
34
- '█ █ █ █ ',
35
- '█████ ████ █ █ ██ ███',
36
- '█ █ █ █ █ █ █',
37
- '█ █ █ █ █ █ █',
38
- '█ █ █████ ███ █ █ ████',
32
+ [' ,~~_ ', '____ ___________ _______'],
33
+ [' |/\\ =_ _ ~ ', '/ __ \\/ ____/ _/ | / / ___/'],
34
+ [' _( )_( )\\~~ ', '/ /_/ / __/ / // |/ /\\__ \\'],
35
+ [' \\,\\ _|\\ \\~~~ ', '/ _, _/ /____/ // /| /___/ /'],
36
+ [' \\` \\ ', '/_/ |_/_____/___/_/ |_//____/'],
37
+ [' ` `', ''],
39
38
  ];
40
- const colors = [c.red, c.red, c.yellow, c.yellow, c.yellow, c.yellow, c.yellow];
41
- for (let i = 0; i < lines.length; i++) {
42
- console.log(colors[i] ? colors[i](lines[i]) : lines[i]);
39
+ for (const [horse, reins] of lines) {
40
+ console.log(c.green(horse) + c.greenBright(reins));
43
41
  }
44
42
  console.log('');
45
- console.log(
46
- c.bold(
47
- 'AI is like a horse — strong, but it goes where it wants without a rider.',
48
- ),
49
- );
50
- console.log(c.bold('REINS is the bridle.'));
43
+ console.log(c.dim(c.green(' structured AI pair programming method')));
44
+ console.log(c.dim(c.green(' ──────────────────────────────────────────────────')));
45
+ console.log(' agent-agnostic · stack-agnostic · globally installed');
51
46
  console.log('');
52
47
  }
53
48