@wistantkode/dotfiles 1.4.0 → 1.5.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/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [1.5.0] - 2026-04-05 - [Iron Gate & Neon Dash]
6
+
7
+ ### Added
8
+ - **Protocol Hardening**: Integrated strict "Zero-Initiative" and "Separation of Concerns" rules into `RODIN.md` and `COMMIT.md`. AI is now formally forbidden from touching release artifacts outside of Release mode.
9
+ - **Elite UI Overhaul**: Complete refactor of `github.sh` and `bin/cli.mjs` with premium 256-color aesthetics, box-drawing tables, and animated progress bars.
10
+ - **Enhanced Gatekeeping**: `github.sh` now performs a silent tag-delta audit and forces manual confirmation on production branches.
11
+
5
12
  ## [1.4.0] - 2026-04-05 - [Community-Grade Governance]
6
13
 
7
14
  ### Added
package/README.md CHANGED
@@ -73,8 +73,8 @@ pnpm dlx @wistantkode/dotfiles
73
73
 
74
74
  ### Included Assets
75
75
  - **Professional `.gitignore`**: PRODUCTION-READY baseline for all modern stacks.
76
- - **`.gitmessage` Architectural Template**: Standardizes commit intentions across teams.
77
- - **Governance Library**: Injected `.protocols/` folder for immediate AI alignment.
76
+ - **Security & Integrity**: Injected `.protocols/` folder for immediate AI alignment.
77
+ - **Universal License**: Apache 2.0 baseline for all technical distributions.
78
78
 
79
79
  ---
80
80
 
@@ -82,9 +82,12 @@ pnpm dlx @wistantkode/dotfiles
82
82
 
83
83
  | Standard | Role | Reference |
84
84
  | :--- | :--- | :--- |
85
- | **Integrity Audit** | High-level engineering and architectural philosophy. | [RODIN.md](./protocols/RODIN.md) |
85
+ | **Audit Philosophy** | Socratic auditing and architectural integrity. | [RODIN.md](./protocols/RODIN.md) |
86
86
  | **Commit Protocol** | Strict atomic formatting and zero-entropy staging. | [COMMIT.md](./protocols/COMMIT.md) |
87
87
  | **Release Flow** | Socratic versioning and manual sealing logic. | [RELEASE.md](./protocols/RELEASE.md) |
88
+ | **Security First** | Vulnerability audits and secret scanning protocols. | [SECURITY.md](./protocols/SECURITY.md) |
89
+
90
+ > See [_INDEX.md](./protocols/_INDEX.md) for the full library of orchestration protocols.
88
91
 
89
92
  ---
90
93
 
package/bin/cli.mjs CHANGED
@@ -1,22 +1,46 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { copyFile, mkdir, readdir, lstat } from 'node:fs/promises';
4
- import { join, dirname, basename } from 'node:path';
4
+ import { join, dirname } from 'node:path';
5
5
  import { fileURLToPath } from 'node:url';
6
6
 
7
+ // ── UI Configuration (256-color) ──────────────────────────────────────
8
+ const RESET = '\x1b[0m';
9
+ const BOLD = '\x1b[1m';
10
+ const DIM = '\x1b[2m';
11
+ const CYAN = '\x1b[38;5;117m';
12
+ const GREEN = '\x1b[38;5;114m';
13
+ const YELLOW = '\x1b[38;5;221m';
14
+ const RED = '\x1b[38;5;203m';
15
+ const GRAY = '\x1b[38;5;244m';
16
+ const WHITE = '\x1b[38;5;255m';
17
+ const DGRAY = '\x1b[38;5;238m';
18
+
7
19
  const __dirname = dirname(fileURLToPath(import.meta.url));
8
20
  const pkgRoot = join(__dirname, '..');
9
21
 
10
22
  const FILES_TO_INSTALL = [
11
23
  'gitignore',
12
- 'gitmessage',
13
- 'myKDEshorcuts.kksrc'
24
+ 'LICENSE'
14
25
  ];
15
26
 
16
27
  const DIRECTORIES_TO_INSTALL = [
17
28
  'protocols'
18
29
  ];
19
30
 
31
+ // ── Utilities ─────────────────────────────────────────────────────────
32
+
33
+ const sep = () => console.log(`${DGRAY}${'─'.repeat(60)}${RESET}`);
34
+
35
+ const progress = async (label) => {
36
+ process.stdout.write(` ${GRAY}[${RESET}`);
37
+ for (let i = 0; i < 24; i++) {
38
+ process.stdout.write(`${CYAN}█${RESET}`);
39
+ await new Promise(r => setTimeout(r, 15));
40
+ }
41
+ process.stdout.write(`${GRAY}]${RESET} ${GREEN}${label}${RESET}\n`);
42
+ };
43
+
20
44
  async function copyRecursive(src, dest) {
21
45
  const stat = await lstat(src);
22
46
  if (stat.isDirectory()) {
@@ -31,36 +55,49 @@ async function copyRecursive(src, dest) {
31
55
  }
32
56
 
33
57
  async function run() {
34
- console.log('\x1b[36m%s\x1b[0m', '--- Dotfiles Installer ---');
35
-
58
+ console.clear();
59
+ console.log(`\n ${WHITE}${BOLD}◆ DOTFILES INSTALLER${RESET} ${DGRAY}· @wistantkode/dotfiles${RESET}\n`);
60
+ sep();
61
+
36
62
  const targetDir = process.cwd();
37
- console.log(`Installing dotfiles to: ${targetDir}`);
63
+ console.log(`\n ${GRAY}Target Directory:${RESET} ${CYAN}${BOLD}${targetDir}${RESET}\n`);
64
+
65
+ sep();
66
+ console.log(`\n ${BOLD}▶ Initiating deployment...${RESET}\n`);
38
67
 
68
+ await progress('Verifying package integrity...');
69
+
70
+ // Files deployment
39
71
  for (const file of FILES_TO_INSTALL) {
40
72
  try {
41
73
  const destName = file === 'gitignore' ? '.gitignore' : file;
42
74
  await copyFile(join(pkgRoot, file), join(targetDir, destName));
43
- console.log(` [OK] ${destName}`);
75
+ console.log(` ${GREEN}✔${RESET} Deployed ${BOLD}${destName}${RESET}`);
44
76
  } catch (err) {
45
- console.error(` [ERROR] Failed to copy ${file}: ${err.message}`);
77
+ console.error(` ${RED}✘${RESET} Failed to deploy ${file}: ${err.message}`);
46
78
  }
47
79
  }
48
80
 
81
+ // Directories deployment
49
82
  for (const dir of DIRECTORIES_TO_INSTALL) {
50
83
  try {
51
84
  const destName = dir === 'protocols' ? '.protocols' : dir;
52
85
  await copyRecursive(join(pkgRoot, dir), join(targetDir, destName));
53
- console.log(` [OK] ${destName}/`);
86
+ console.log(` ${GREEN}✔${RESET} Deployed ${BOLD}${destName}/${RESET}`);
54
87
  } catch (err) {
55
- console.error(` [ERROR] Failed to copy ${dir}: ${err.message}`);
88
+ console.error(` ${RED}✘${RESET} Failed to deploy ${dir}: ${err.message}`);
56
89
  }
57
90
  }
58
91
 
59
- console.log('\x1b[32m%s\x1b[0m', '\nDone! Dotfiles and protocols added.');
60
- console.log('Installation complete.');
92
+ await progress('Finalizing configuration...');
93
+
94
+ console.log(`\n ${GREEN}${BOLD}✔ SUCCESS${RESET} Infrastructure deployed successfully.`);
95
+ console.log(` ${GRAY}Your environment is now orchestrated by @wistantkode protocols.${RESET}\n`);
96
+ sep();
97
+ console.log('');
61
98
  }
62
99
 
63
100
  run().catch(err => {
64
- console.error('Fatal error:', err);
101
+ console.error(`\n ${RED}${BOLD}✗ FATAL ERROR${RESET} ${err.message}\n`);
65
102
  process.exit(1);
66
103
  });
package/github.sh CHANGED
@@ -1,107 +1,206 @@
1
1
  #!/bin/bash
2
2
 
3
- # --- GITHUB SYNC (SYSTEM PROTOCOL) ---
4
-
5
- # Colors & Style
6
- GRAY='\033[90m'
7
- BOLD='\033[1m'
8
- RED='\033[31m'
9
- GREEN='\033[32m'
10
- YELLOW='\033[33m'
11
- CYAN='\033[36m'
12
- RESET='\033[0m'
13
-
14
- # Utilities
15
- print_banner() {
16
- echo -e "${GRAY}--------------------------------------------------${RESET}"
17
- echo -e "${BOLD} INTEGRITY AUDIT : GITHUB SYNC${RESET}"
18
- echo -e "${GRAY}--------------------------------------------------${RESET}"
3
+ # ═══════════════════════════════════════════════════════════════════════
4
+ # GITHUB SYNC · Integrity Gate · @wistantkode/dotfiles
5
+ # ═══════════════════════════════════════════════════════════════════════
6
+
7
+ # ── Color palette (256-color) ─────────────────────────────────────────
8
+ RESET='\033[0m'; BOLD='\033[1m'; DIM='\033[2m'
9
+ RED='\033[38;5;203m'; GREEN='\033[38;5;114m'; YELLOW='\033[38;5;221m'
10
+ CYAN='\033[38;5;117m'; BLUE='\033[38;5;75m'; GRAY='\033[38;5;244m'
11
+ DGRAY='\033[38;5;238m'; WHITE='\033[38;5;255m'; ORANGE='\033[38;5;215m'
12
+
13
+ # ── Table dimensions ──────────────────────────────────────────────────
14
+ HASH_W=8 # hash column display width
15
+ MSG_W=52 # message column display width
16
+
17
+ # ── Layout helpers ────────────────────────────────────────────────────
18
+ _rep() { printf "%${1}s" | tr ' ' "${2}"; }
19
+ _sep() { echo -e "${DGRAY}$(_rep 68 '─')${RESET}"; }
20
+ _sep2() { echo -e "${DGRAY} $(_rep 64 '·')${RESET}"; }
21
+
22
+ _header() {
23
+ echo -e "${DGRAY} ╭$(_rep $((HASH_W+2)) '─')┬$(_rep $((MSG_W+2)) '─')╮${RESET}"
24
+ printf "${DGRAY} │${RESET} ${BOLD}${GRAY}%-${HASH_W}s${RESET} ${DGRAY}│${RESET} ${BOLD}${GRAY}%-${MSG_W}s${RESET} ${DGRAY}│${RESET}\n" "HASH" "COMMIT"
25
+ echo -e "${DGRAY} ├$(_rep $((HASH_W+2)) '─')┼$(_rep $((MSG_W+2)) '─')┤${RESET}"
19
26
  }
20
27
 
28
+ _row() {
29
+ local hash msg
30
+ hash=$(printf "%-${HASH_W}s" "${1:0:$HASH_W}")
31
+ local raw="$2"
32
+ [ ${#raw} -gt $((MSG_W-1)) ] && raw="${raw:0:$((MSG_W-3))}..."
33
+ msg=$(printf "%-${MSG_W}s" "$raw")
34
+ printf "${DGRAY} │${RESET} ${CYAN}%s${RESET} ${DGRAY}│${RESET} %s ${DGRAY}│${RESET}\n" "$hash" "$msg"
35
+ }
36
+
37
+ _footer() {
38
+ echo -e "${DGRAY} ╰$(_rep $((HASH_W+2)) '─')┴$(_rep $((MSG_W+2)) '─')╯${RESET}"
39
+ }
40
+
41
+ # ── Progress bar animation ────────────────────────────────────────────
42
+ _progress() {
43
+ local label="$1"
44
+ local total=28
45
+ printf " ${GRAY}[${RESET}"
46
+ for ((i=1; i<=total; i++)); do
47
+ printf "${CYAN}█${RESET}"
48
+ sleep 0.018
49
+ done
50
+ printf "${GRAY}]${RESET} ${GREEN}${label}${RESET}\n"
51
+ }
52
+
53
+ # ── Core utilities ────────────────────────────────────────────────────
21
54
  abort() {
22
- echo -e "\n${RED}${BOLD}[ABORT]${RESET} $1"
23
- echo -e "${GRAY}Infrastructure integrity takes precedence over speed.${RESET}"
24
- echo -e "${GRAY}--------------------------------------------------${RESET}"
55
+ echo ""
56
+ _sep
57
+ echo -e " ${RED}${BOLD}✗ ABORTED${RESET} ${GRAY}$1${RESET}"
58
+ _sep
59
+ echo ""
25
60
  exit 1
26
61
  }
27
62
 
28
- ask_confirm() {
29
- echo -ne "${YELLOW}${BOLD}[CONFIRM]${RESET} $1 [y/N] "
30
- read -r response
31
- if [[ ! "$response" =~ ^([yY][eE][sS]|[yY])$ ]]; then
32
- return 1
33
- fi
34
- return 0
63
+ ask() {
64
+ echo -ne "\n ${YELLOW}${BOLD}?${RESET} $1 ${GRAY}[y/N]${RESET} "
65
+ read -r _r
66
+ [[ "$_r" =~ ^([yY][eE][sS]|[yY])$ ]]
35
67
  }
36
68
 
37
- # --- AUDIT START ---
38
- print_banner
69
+ # ── Phase 0 · Silent data collection ─────────────────────────────────
70
+ CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null) \
71
+ || { echo -e "\n ${RED}✗${RESET} Not a git repository."; exit 1; }
72
+
73
+ REMOTE="origin/${CURRENT_BRANCH}"
74
+ COMMITS_RAW=$(git log "${REMOTE}..HEAD" --oneline 2>/dev/null)
75
+ COMMIT_COUNT=0
76
+ [ -n "$COMMITS_RAW" ] && COMMIT_COUNT=$(echo "$COMMITS_RAW" | wc -l | tr -d ' ')
77
+
78
+ LOCAL_ONLY_TAGS=$(
79
+ git log --tags --simplify-by-decoration --pretty="format:%D" 2>/dev/null \
80
+ | grep "tag: " \
81
+ | sed 's/.*tag: \([^,)]*\).*/\1/' \
82
+ | while read -r t; do
83
+ git ls-remote --tags origin 2>/dev/null | grep -q "refs/tags/$t" || echo "$t"
84
+ done | sort -u
85
+ )
86
+ TAG_COUNT=0
87
+ [ -n "$LOCAL_ONLY_TAGS" ] && TAG_COUNT=$(echo "$LOCAL_ONLY_TAGS" | grep -c .)
88
+ PUSH_TAGS=""
89
+ [ "$TAG_COUNT" -gt 0 ] && PUSH_TAGS="--tags"
39
90
 
40
- # 1. Working Tree Audit
41
- if ! git diff-index --quiet HEAD --; then
42
- echo -e "${YELLOW}[WARNING]${RESET} Uncommitted changes detected in the working tree."
43
- git status -s
44
- abort "History is not clean. Remote projection requires a pure commit history."
91
+ case "$CURRENT_BRANCH" in
92
+ main|master) BLABEL="${RED}${BOLD}⬡ PRODUCTION${RESET}" ;;
93
+ dev|develop) BLABEL="${YELLOW}◈ INTEGRATION${RESET}" ;;
94
+ feat/*) BLABEL="${GREEN}◈ FEATURE${RESET}" ;;
95
+ fix/*) BLABEL="${CYAN}◈ BUGFIX${RESET}" ;;
96
+ refactor/*) BLABEL="${BLUE}◈ REFACTOR${RESET}" ;;
97
+ *) BLABEL="${GRAY}◈ BRANCH${RESET}" ;;
98
+ esac
99
+
100
+ # ── Phase 1 · Working tree check ─────────────────────────────────────
101
+ clear
102
+ echo ""
103
+ echo -e " ${WHITE}${BOLD}◆ GITHUB SYNC${RESET} ${DGRAY}· Integrity Gate · @wistantkode/dotfiles${RESET}"
104
+ echo ""
105
+ _sep
106
+
107
+ if ! git diff-index --quiet HEAD -- 2>/dev/null; then
108
+ echo ""
109
+ echo -e " ${YELLOW}${BOLD}⚠ DIRTY WORKING TREE${RESET}"
110
+ echo ""
111
+ git status -s | sed 's/^/ /'
112
+ abort "Stage and commit all changes before syncing."
45
113
  fi
46
114
 
47
- # 2. Branch Detection
48
- CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
49
- echo -e "${BOLD}[CONTEXT]${RESET} Current branch: ${CYAN}${BOLD}${CURRENT_BRANCH}${RESET}"
50
-
51
- # 3. Tag Delta Audit (Local vs Remote)
52
- echo -e "${GRAY}[AUDIT] Scanning tag versions...${RESET}"
53
- LOCAL_ONLY_TAGS=$(git log --tags --simplify-by-decoration --pretty="format:%D" | grep "tag: " | sed 's/.*tag: \([^,)]*\).*/\1/' | while read tag; do
54
- if ! git ls-remote --tags origin 2>/dev/null | grep -q "refs/tags/$tag"; then
55
- echo $tag
56
- fi
57
- done | sort -u)
58
-
59
- if [ -n "$LOCAL_ONLY_TAGS" ]; then
60
- echo -e "${YELLOW}${BOLD}[DELTA]${RESET} Local tags not yet sealed on remote:"
61
- for tag in $LOCAL_ONLY_TAGS; do
62
- echo -e " - ${BOLD}$tag${RESET}"
63
- done
115
+ # ── Phase 2 · Summary panel ───────────────────────────────────────────
116
+ echo ""
117
+ printf " ${GRAY}%-14s${RESET} ${CYAN}${BOLD}%s${RESET} %b\n" "Branch" "$CURRENT_BRANCH" "$BLABEL"
118
+ printf " ${GRAY}%-14s${RESET} ${BOLD}%s${RESET} commit(s) ahead of remote\n" "Ahead" "$COMMIT_COUNT"
119
+ printf " ${GRAY}%-14s${RESET} ${BOLD}%s${RESET} to publish\n" "Tags" "$TAG_COUNT"
120
+ echo ""
121
+ _sep
64
122
 
65
- if ask_confirm "Propagate these tags with this push?"; then
66
- PUSH_TAGS="--tags"
67
- fi
68
- else
69
- echo -e "${GRAY}[OK] No unpublished local tags detected.${RESET}"
123
+ # Commits table
124
+ if [ "$COMMIT_COUNT" -gt 0 ]; then
125
+ echo ""
126
+ _header
127
+ while IFS= read -r line; do
128
+ h=$(echo "$line" | awk '{print $1}')
129
+ m=$(echo "$line" | cut -d' ' -f2-)
130
+ _row "$h" "$m"
131
+ done <<< "$COMMITS_RAW"
132
+ _footer
70
133
  fi
71
134
 
72
- # 4. Branch Gate Logic
135
+ # Tags list
136
+ if [ "$TAG_COUNT" -gt 0 ]; then
137
+ echo ""
138
+ echo -e " ${GRAY}Unpublished tags:${RESET}"
139
+ while IFS= read -r tag; do
140
+ echo -e " ${GREEN}+${RESET} ${BOLD}$tag${RESET}"
141
+ done <<< "$LOCAL_ONLY_TAGS"
142
+ fi
143
+
144
+ echo ""
145
+ _sep
146
+
147
+ # ── Phase 3 · Branch gate ─────────────────────────────────────────────
148
+ echo ""
73
149
  case "$CURRENT_BRANCH" in
74
- "main" | "master")
75
- echo -e "${RED}${BOLD}[GATE]${RESET} Production branch. Full integrity required."
76
- if ! ask_confirm "Seal these changes to the public repository?"; then
77
- abort "Push cancelled by operator."
78
- fi
79
- ;;
80
- "dev" | "develop")
81
- echo -e "${YELLOW}[GATE]${RESET} Integration branch."
82
- if ! ask_confirm "Push to integration upstream?"; then
83
- abort "Push cancelled by operator."
84
- fi
150
+ main|master)
151
+ echo -e " ${RED}${BOLD}⚠ PRODUCTION BRANCH${RESET}"
152
+ echo -e " ${DIM}Every push to this branch triggers the public release pipeline.${RESET}"
153
+ ask "You are on ${BOLD}${CURRENT_BRANCH}${RESET}. Proceed to final review?" \
154
+ || abort "Cancelled by operator."
85
155
  ;;
86
- feat/* | fix/* | refactor/*)
87
- echo -e "${GREEN}[GATE]${RESET} Feature branch."
88
- if ! ask_confirm "Push to remote?"; then
89
- abort "Push cancelled by operator."
90
- fi
156
+ dev|develop)
157
+ echo -e " ${YELLOW}${BOLD}◈ INTEGRATION BRANCH${RESET}"
158
+ ask "Push to ${BOLD}${REMOTE}${RESET}?" || abort "Cancelled by operator."
91
159
  ;;
92
160
  *)
93
- if ! ask_confirm "Push current branch to upstream?"; then
94
- abort "Push cancelled by operator."
95
- fi
161
+ ask "Push ${BOLD}${CURRENT_BRANCH}${RESET} to remote?" || abort "Cancelled by operator."
96
162
  ;;
97
163
  esac
98
164
 
99
- # 5. Remote Projection
100
- echo -e "\n${BOLD}[PUSH]${RESET} Initiating remote sync..."
101
- if git push $PUSH_TAGS; then
102
- echo -e "\n${GREEN}${BOLD}[OK]${RESET} Infrastructure successfully synchronized."
165
+ # ── Phase 4 · Final confirmation ──────────────────────────────────────
166
+ echo ""
167
+ _sep
168
+ echo ""
169
+ SUMMARY="${BOLD}${COMMIT_COUNT}${RESET} commit(s)"
170
+ [ "$TAG_COUNT" -gt 0 ] && SUMMARY+=" ${DGRAY}+${RESET} ${BOLD}${TAG_COUNT}${RESET} tag(s)"
171
+ printf " ${GRAY}%-14s${RESET} %b\n" "Will push" "$SUMMARY"
172
+ printf " ${GRAY}%-14s${RESET} ${BOLD}%s${RESET}\n" "Target" "$REMOTE"
173
+ echo ""
174
+ echo -e " ${DIM}SSH key passphrase will be required by git if not cached.${RESET}"
175
+
176
+ ask "${BOLD}Confirm push?${RESET} ${GRAY}This cannot be undone.${RESET}" \
177
+ || abort "Final gate: push cancelled."
178
+
179
+ # ── Phase 5 · Remote projection ───────────────────────────────────────
180
+ echo ""
181
+ _sep
182
+ echo ""
183
+ _progress "Initializing..."
184
+ _progress "Verifying integrity state..."
185
+ _progress "Ready — handing off to git."
186
+ echo ""
187
+ echo -e " ${DGRAY}$(_rep 64 '─')${RESET}"
188
+ echo -e " ${BOLD}▶ git push${RESET} ${DGRAY}(passphrase prompt appears below if required)${RESET}"
189
+ echo -e " ${DGRAY}$(_rep 64 '─')${RESET}"
190
+ echo ""
191
+
192
+ if git push --quiet $PUSH_TAGS; then
193
+ echo ""
194
+ _sep
195
+ echo ""
196
+ echo -e " ${GREEN}${BOLD}✔ SUCCESS${RESET} Infrastructure synchronized with ${BOLD}${REMOTE}${RESET}."
197
+ [ "$TAG_COUNT" -gt 0 ] && \
198
+ echo -e " ${GRAY}Tags published. GitHub Actions pipeline may now be triggered.${RESET}"
199
+ echo ""
200
+ _sep
103
201
  else
104
- abort "Remote push failed. Check your credentials or network connectivity."
202
+ echo ""
203
+ abort "Git push failed. Check your SSH key or network connectivity."
105
204
  fi
106
205
 
107
- echo -e "${GRAY}--------------------------------------------------${RESET}"
206
+ echo ""
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wistantkode/dotfiles",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "High-End Linux Infrastructure & AI-Driven Orchestration Protocols",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -10,8 +10,9 @@
10
10
 
11
11
  You are a **Technical Assistant & Engineering Partner**. You facilitate excellence and ensure architectural integrity.
12
12
 
13
- - **Integrity Guard** : If a suboptimal solution is proposed, challenge it (`RODIN.md`).
14
- - **Architect** : When producing code or configuration, enforce professional standards.
13
+ - **Communication First** : Tu réponds toujours aux questions posées **AVANT** de commencer à coder. La communication prime sur l'exécution.
14
+ - **Integrity Guard** : Si une solution sous-optimale est proposée, challenge-la (`RODIN.md`).
15
+ - **Architect** : Quand tu produis du code ou de la config, applique les standards professionnels sans prendre d'initiatives non validées sur le périmètre.
15
16
  - **Context-Aware** : Adapt your methodology to the project type (library, monorepo, CLI, web app).
16
17
 
17
18
  ---
@@ -6,14 +6,18 @@
6
6
 
7
7
  ---
8
8
 
9
- ## Regle d'Or : Zero "git add ."
9
+ ### Règle d'Or 1 : Zéro "git add ."
10
10
 
11
11
  Il est **STRICTEMENT INTERDIT** d'utiliser `git add .` ou `git commit -a`.
12
- Chaque modification doit etre atomique. On ne melange pas la logique métier (`core/`) et le style (`ui/`).
12
+ Chaque modification doit être atomique. On ne mélange pas la logique métier (`core/`) et le style (`ui/`).
13
13
 
14
- > [!CAUTION]
15
- > **Pas de Push Automatique** : L'IA ne doit jamais exécuter `git push` ou `./github.sh`.
16
- > Après le commit, l'IA s'arrête. Le USER valide et pousse manuellement.
14
+ ### Règle d'Or 2 : Isolation des Commits (STRICTE)
15
+
16
+ L'IA ne doit **JAMAIS** modifier ou inclure les fichiers de release (`package.json`, `CHANGELOG.md`, `pom.xml`, etc.) ni manipuler les `git tags` lors d'une phase de commit classique. Toute interaction avec le versioning est réservée **EXCLUSIVEMENT** au protocole `RELEASE.md`.
17
+
18
+ ### Règle d'Or 3 : Zéro Initiative de Versioning
19
+
20
+ Si l'utilisateur demande un commit, fais uniquement le commit du code demandé. Ne propose pas de bump de version ou de mise à jour du changelog de ton propre chef. Ne prends aucune décision sur le périmètre de la tâche sans validation préalable.
17
21
 
18
22
  ---
19
23
 
@@ -24,11 +24,11 @@ You operate in English. You address the operator directly and professionally.
24
24
  - If you disagree, say so directly: *"No. This is structurally inconsistent, and here is why."*
25
25
  - **You are an engineering sparring partner.**
26
26
 
27
- ### Socratic Audit (Engagement)
27
+ ### Zéro-Initiative & Anti-Dérapage (CRITIQUE)
28
28
 
29
- - Before any mutation (Phase 4 of the protocols), you must go through interrogation (Phase 2).
30
- - Reformulate the request to verify its coherence.
31
- - Surface the flaws before they pollute the Git history.
29
+ - **Interdiction de Décision Autonome** : Tu n'as pas le droit de modifier des fichiers ou des composants qui n'ont pas été explicitement cités dans la demande de l'utilisateur. Toute modification "pour aider" ou "pour faire propre" est une violation de protocole.
30
+ - **Réponse avant Action** : Si l'utilisateur te pose une question, tu y réponds **AVANT** de lancer la moindre commande de code ou de modification de fichier. La communication prime sur l'exécution.
31
+ - **Séparation des Pouvoirs** : Ne confonds jamais un commit de code avec une release. Durant un commit, les fichiers `package.json`, `CHANGELOG.md` ou les Git Tags sont **sanctuarisés**. Seule la phase de Release (RELEASE.md) peut y toucher.
32
32
 
33
33
  ## Quality Standards
34
34