@tyyyho/treg 1.0.2 → 1.0.5

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,151 +1,25 @@
1
- # @tyyyho/treg
1
+ # Package Moved
2
2
 
3
- [![npm
4
- version](https://img.shields.io/npm/v/%40tyyyho%2Ftreg)](https://www.npmjs.com/package/%40tyyyho%2Ftreg)
5
- [![npm
6
- downloads](https://img.shields.io/npm/dm/%40tyyyho%2Ftreg)](https://www.npmjs.com/package/%40tyyyho%2Ftreg)
7
- [![License](https://img.shields.io/npm/l/%40tyyyho%2Ftreg)](https://www.npmjs.com/package/%40tyyyho%2Ftreg)
8
- ![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178C6?logo=typescript&logoColor=white)
3
+ `@tyyyho/treg` has moved to:
9
4
 
10
- ## Overview
5
+ ## `@tylercore/treg`
11
6
 
12
- **Treg** is a CLI tool that injects an **engineering immune system** into your project.
7
+ [![npm version](https://img.shields.io/npm/v/%40tylercore%2Ftreg)](https://www.npmjs.com/package/%40tylercore%2Ftreg)
8
+ [![npm downloads](https://img.shields.io/npm/dm/%40tylercore%2Ftreg)](https://www.npmjs.com/package/%40tylercore%2Ftreg)
13
9
 
14
- When humans and AI collaborate and iterate rapidly, repositories often
15
- accumulate inconsistent tooling, style drift, and fragile workflows.\
16
- `Treg` helps maintain balance by establishing a clean and consistent
17
- development baseline.
18
-
19
- It focuses only on **infrastructure setup**, not application logic.
20
-
21
- ---
22
-
23
- ## Features
24
-
25
- `Treg` can configure:
26
-
27
- - **TypeScript**
28
- - **ESLint**
29
- - **Prettier / Oxfmt**
30
- - **Jest / Vitest**
31
- - **Husky git hooks**
32
- - **AI skill guidance**
33
-
34
- These guardrails help maintain long‑term code health during fast
35
- iteration.
36
-
37
- ---
38
-
39
- ## Quick Start
40
-
41
- Initialize a project interactively:
10
+ Use the new package:
42
11
 
43
12
  ```bash
44
- npx @tyyyho/treg init
13
+ npx @tylercore/treg init
45
14
  ```
46
15
 
47
- Preview changes:
48
-
49
- ```bash
50
- npx @tyyyho/treg init --dry-run
51
- ```
52
-
53
- ---
54
-
55
- ## Commands
56
-
57
- Command Description
58
-
59
- ---
60
-
61
- `init` Initialize project with interactive setup
62
- `add` Add selected features
63
- `list` Show supported frameworks and tools
64
-
65
- ---
66
-
67
- ## Common Usage
68
-
69
- Add lint and format:
70
-
71
- ```bash
72
- npx @tyyyho/treg add --features lint,format
73
- ```
74
-
75
- Add format with `oxfmt`:
76
-
77
- ```bash
78
- npx @tyyyho/treg add --features format --formatter oxfmt
79
- ```
80
-
81
- Add test with `vitest`:
82
-
83
- ```bash
84
- npx @tyyyho/treg add --features test --test-runner vitest
85
- ```
86
-
87
- ---
88
-
89
- ## Defaults
90
-
91
- Framework detection order:
92
-
93
- nuxt -> next -> react -> vue -> svelte -> node
94
-
95
- Default test runner:
96
-
97
- - `vue` / `nuxt`: `vitest`
98
- - others: `jest`
99
-
100
- Default formatter:
101
-
102
- prettier
103
-
104
- ---
105
-
106
- ## AI Skills
107
-
108
- `Treg` can update AI guidance files for development tools.
109
-
110
- Tool File
111
-
112
- ---
113
-
114
- Claude `CLAUDE.md`
115
- Codex `AGENTS.md`
116
- Gemini `GEMINI.md`
117
-
118
- Behavior:
119
-
120
- - only selected tools are updated
121
- - missing files are created automatically
122
- - updates occur in the repository root
123
-
124
- ---
125
-
126
- ## Philosophy
127
-
128
- `Treg` is intentionally minimal.
129
-
130
- It does not generate application architecture.\
131
- It focuses only on establishing the engineering infrastructure that
132
- keeps repositories healthy during rapid development.
133
-
134
- ---
135
-
136
- ## Release
16
+ or install:
137
17
 
138
18
  ```bash
139
- npm run release -- patch
19
+ npm i -D @tylercore/treg
140
20
  ```
141
21
 
142
- Supported targets:
22
+ Migration target:
143
23
 
144
- patch
145
- minor
146
- major
147
- prepatch
148
- preminor
149
- premajor
150
- prerelease
151
- x.y.z
24
+ - npm: https://www.npmjs.com/package/@tylercore/treg
25
+ - repo: https://github.com/tylercore/treg
package/README.npm.md CHANGED
@@ -1,10 +1,10 @@
1
- # @tyyyho/treg
1
+ # @tylercore/treg
2
2
 
3
3
  [![npm
4
- version](https://img.shields.io/npm/v/%40tyyyho%2Ftreg)](https://www.npmjs.com/package/%40tyyyho%2Ftreg)
4
+ version](https://img.shields.io/npm/v/%40tylercore%2Ftreg)](https://www.npmjs.com/package/%40tylercore%2Ftreg)
5
5
  [![npm
6
- downloads](https://img.shields.io/npm/dm/%40tyyyho%2Ftreg)](https://www.npmjs.com/package/%40tyyyho%2Ftreg)
7
- [![License](https://img.shields.io/npm/l/%40tyyyho%2Ftreg)](https://www.npmjs.com/package/%40tyyyho%2Ftreg)
6
+ downloads](https://img.shields.io/npm/dm/%40tylercore%2Ftreg)](https://www.npmjs.com/package/%40tylercore%2Ftreg)
7
+ [![License](https://img.shields.io/npm/l/%40tylercore%2Ftreg)](https://www.npmjs.com/package/%40tylercore%2Ftreg)
8
8
  ![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178C6?logo=typescript&logoColor=white)
9
9
 
10
10
  ## Overview
@@ -29,7 +29,7 @@ It focuses only on **infrastructure setup**, not application logic.
29
29
  - **Prettier / Oxfmt**
30
30
  - **Jest / Vitest**
31
31
  - **Husky git hooks**
32
- - **AI skill guidance**
32
+ - **AI rules guidance**
33
33
 
34
34
  These guardrails help maintain long‑term code health during fast
35
35
  iteration.
@@ -41,13 +41,13 @@ iteration.
41
41
  Initialize a project interactively:
42
42
 
43
43
  ```bash
44
- npx @tyyyho/treg init
44
+ npx @tylercore/treg init
45
45
  ```
46
46
 
47
47
  Preview changes:
48
48
 
49
49
  ```bash
50
- npx @tyyyho/treg init --dry-run
50
+ npx @tylercore/treg init --dry-run
51
51
  ```
52
52
 
53
53
  ---
@@ -69,19 +69,19 @@ Command Description
69
69
  Add lint and format:
70
70
 
71
71
  ```bash
72
- npx @tyyyho/treg add --features lint,format
72
+ npx @tylercore/treg add --features lint,format
73
73
  ```
74
74
 
75
75
  Add format with `oxfmt`:
76
76
 
77
77
  ```bash
78
- npx @tyyyho/treg add --features format --formatter oxfmt
78
+ npx @tylercore/treg add --features format --formatter oxfmt
79
79
  ```
80
80
 
81
81
  Add test with `vitest`:
82
82
 
83
83
  ```bash
84
- npx @tyyyho/treg add --features test --test-runner vitest
84
+ npx @tylercore/treg add --features test --test-runner vitest
85
85
  ```
86
86
 
87
87
  ---
@@ -103,7 +103,7 @@ Default formatter:
103
103
 
104
104
  ---
105
105
 
106
- ## AI Skills
106
+ ## AI Rules
107
107
 
108
108
  `Treg` can update AI guidance files for development tools.
109
109
 
@@ -130,22 +130,3 @@ Behavior:
130
130
  It does not generate application architecture.\
131
131
  It focuses only on establishing the engineering infrastructure that
132
132
  keeps repositories healthy during rapid development.
133
-
134
- ---
135
-
136
- ## Release
137
-
138
- ```bash
139
- npm run release -- patch
140
- ```
141
-
142
- Supported targets:
143
-
144
- patch
145
- minor
146
- major
147
- prepatch
148
- preminor
149
- premajor
150
- prerelease
151
- x.y.z
package/README.zh-hant.md CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  <img src="https://capsule-render.vercel.app/api?type=waving&color=0:0F172A,30:1D4ED8,70:7C3AED,100:22C55E&height=260&section=header&text=Treg&fontSize=72&fontColor=ffffff&animation=fadeIn&fontAlignY=38&desc=Inject%20an%20immune%20system%20into%20your%20codebase&descSize=20&descAlignY=58" width="100%" />
4
4
 
5
- # @tyyyho/treg(繁體中文)
5
+ # @tylercore/treg(繁體中文)
6
6
 
7
- [![npm version](https://img.shields.io/npm/v/%40tyyyho%2Ftreg?style=for-the-badge)](https://www.npmjs.com/package/%40tyyyho%2Ftreg)
8
- [![License](https://img.shields.io/npm/l/%40tyyyho%2Ftreg?style=for-the-badge)](https://www.npmjs.com/package/%40tyyyho%2Ftreg)
9
- [![npm downloads](https://img.shields.io/npm/dm/%40tyyyho%2Ftreg?style=for-the-badge)](https://www.npmjs.com/package/%40tyyyho%2Ftreg)
7
+ [![npm version](https://img.shields.io/npm/v/%40tylercore%2Ftreg?style=for-the-badge)](https://www.npmjs.com/package/%40tylercore%2Ftreg)
8
+ [![License](https://img.shields.io/npm/l/%40tylercore%2Ftreg?style=for-the-badge)](https://www.npmjs.com/package/%40tylercore%2Ftreg)
9
+ [![npm downloads](https://img.shields.io/npm/dm/%40tylercore%2Ftreg?style=for-the-badge)](https://www.npmjs.com/package/%40tylercore%2Ftreg)
10
10
  ![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178C6?style=for-the-badge&logo=typescript&logoColor=white)
11
11
  ![CLI](https://img.shields.io/badge/CLI-Interactive-111827?style=for-the-badge&logo=gnubash&logoColor=white)
12
12
 
@@ -54,7 +54,7 @@
54
54
  - **Formatting**(Prettier 或 Oxfmt)
55
55
  - **Testing**(Jest 或 Vitest)
56
56
  - **Git hooks**(Husky)
57
- - **AI skill guidance**(支援的 AI 工具說明)
57
+ - **AI rules guidance**(支援的 AI 工具說明)
58
58
 
59
59
  這能穩定專案品質,同時不強制你採用特定產品架構。
60
60
 
@@ -65,19 +65,19 @@
65
65
  互動式初始化:
66
66
 
67
67
  ```bash
68
- npx @tyyyho/treg init
68
+ npx @tylercore/treg init
69
69
  ```
70
70
 
71
71
  只預覽變更:
72
72
 
73
73
  ```bash
74
- npx @tyyyho/treg init --dry-run
74
+ npx @tylercore/treg init --dry-run
75
75
  ```
76
76
 
77
77
  為既有專案補上指定功能:
78
78
 
79
79
  ```bash
80
- npx @tyyyho/treg add --features lint,format
80
+ npx @tylercore/treg add --features lint,format
81
81
  ```
82
82
 
83
83
  ---
@@ -105,7 +105,7 @@ npx @tyyyho/treg add --features lint,format
105
105
  - TypeScript
106
106
  - test
107
107
  - husky
108
- - AI skill guidance
108
+ - AI rules guidance
109
109
 
110
110
  3. **Test runner**(僅在選到 `test` 時詢問)
111
111
  - `jest`
@@ -116,7 +116,7 @@ npx @tyyyho/treg add --features lint,format
116
116
  - `prettier`
117
117
  - `oxfmt`
118
118
 
119
- 5. **AI tools**(僅在選到 AI skill guidance 時詢問)
119
+ 5. **AI tools**(僅在選到 AI rules guidance 時詢問)
120
120
  - Claude
121
121
  - Codex
122
122
  - Gemini
@@ -128,31 +128,31 @@ npx @tyyyho/treg add --features lint,format
128
128
  初始化專案:
129
129
 
130
130
  ```bash
131
- npx @tyyyho/treg init
131
+ npx @tylercore/treg init
132
132
  ```
133
133
 
134
134
  只預覽 init 計畫:
135
135
 
136
136
  ```bash
137
- npx @tyyyho/treg init --dry-run
137
+ npx @tylercore/treg init --dry-run
138
138
  ```
139
139
 
140
140
  只加入 lint + format:
141
141
 
142
142
  ```bash
143
- npx @tyyyho/treg add --features lint,format
143
+ npx @tylercore/treg add --features lint,format
144
144
  ```
145
145
 
146
146
  format 使用 `oxfmt`:
147
147
 
148
148
  ```bash
149
- npx @tyyyho/treg add --features format --formatter oxfmt
149
+ npx @tylercore/treg add --features format --formatter oxfmt
150
150
  ```
151
151
 
152
152
  test 使用 `vitest`:
153
153
 
154
154
  ```bash
155
- npx @tyyyho/treg add --features test --test-runner vitest
155
+ npx @tylercore/treg add --features test --test-runner vitest
156
156
  ```
157
157
 
158
158
  ---
@@ -203,7 +203,7 @@ nuxt -> next -> react -> vue -> svelte -> node
203
203
 
204
204
  ---
205
205
 
206
- ## AI Skills 行為
206
+ ## AI Rules 行為
207
207
 
208
208
  `Treg` 可更新所選 AI 工具的說明文件:
209
209
 
@@ -234,27 +234,6 @@ nuxt -> next -> react -> vue -> svelte -> node
234
234
 
235
235
  ---
236
236
 
237
- ## 發布
238
-
239
- ```bash
240
- npm run release -- patch
241
- ```
242
-
243
- 支援目標:
244
-
245
- ```text
246
- patch
247
- minor
248
- major
249
- prepatch
250
- preminor
251
- premajor
252
- prerelease
253
- x.y.z
254
- ```
255
-
256
- ---
257
-
258
237
  <div align="center">
259
238
  <sub>Built to regulate chaotic iteration and protect long-term codebase health.</sub>
260
239
  <br />
@@ -19,7 +19,7 @@ const AI_TOOL_CHOICES = [
19
19
  { value: "claude", label: "Claude" },
20
20
  { value: "codex", label: "Codex" },
21
21
  { value: "gemini", label: "Gemini" },
22
- { value: "skip", label: "skip (disable AI skill guidance)" },
22
+ { value: "skip", label: "skip (disable AI rules guidance)" },
23
23
  ];
24
24
  const FEATURE_CHOICES = [
25
25
  { value: "lint", label: "lint" },
@@ -27,7 +27,7 @@ const FEATURE_CHOICES = [
27
27
  { value: "typescript", label: "TypeScript" },
28
28
  { value: "test", label: "test" },
29
29
  { value: "husky", label: "husky" },
30
- { value: "skills", label: "AI skill guidance" },
30
+ { value: "skills", label: "AI rules guidance" },
31
31
  ];
32
32
  let promptsModulePromise = null;
33
33
  function toFeatureSelection(selected) {
@@ -142,11 +142,11 @@ export async function collectInitPrompts(defaults) {
142
142
  skills = aiToolSelection.skills;
143
143
  aiTools = aiToolSelection.aiTools;
144
144
  if (!skills) {
145
- console.log("AI skill guidance disabled by selection: skip");
145
+ console.log("AI rules guidance disabled by selection: skip");
146
146
  }
147
147
  }
148
148
  else {
149
- console.log("5) AI tools skipped (AI skill guidance not selected)");
149
+ console.log("5) AI tools skipped (AI rules guidance not selected)");
150
150
  }
151
151
  return {
152
152
  pm,
@@ -1,7 +1,8 @@
1
1
  import { existsSync } from "node:fs";
2
2
  import { promises as fs } from "node:fs";
3
3
  import path from "node:path";
4
- const SKILL_SECTION_HEADING = "## Treg AI Skills";
4
+ const SKILL_SECTION_HEADING = "## Treg AI Rules";
5
+ const LEGACY_SKILL_SECTION_HEADINGS = ["## Treg AI Guide", "## Treg AI Skills"];
5
6
  const SKILLS_BASE_DIR = "skills";
6
7
  const AI_TOOL_DOCS = {
7
8
  claude: "CLAUDE.md",
@@ -126,7 +127,17 @@ async function ensureSkillFiles(projectDir, enabled, testRunner, dryRun) {
126
127
  function buildSkillSection(context) {
127
128
  const { enabledFeatures, testRunner } = context;
128
129
  const enabled = getEnabledFeatures(enabledFeatures);
129
- const lines = [SKILL_SECTION_HEADING, "", "### Steps and Skill Mapping", ""];
130
+ const lines = [
131
+ SKILL_SECTION_HEADING,
132
+ "",
133
+ "### Git rules",
134
+ "",
135
+ "1. Never use --no-verify",
136
+ "2. Unless the user asks, never relax TypeScript, lint, or format constraints, and never skip tests.",
137
+ "",
138
+ "### Steps and Skill Mapping",
139
+ "",
140
+ ];
130
141
  if (enabled.length === 0) {
131
142
  lines.push("1. No features are enabled in this run, so no skill call is required.");
132
143
  lines.push("");
@@ -153,7 +164,10 @@ function upsertSkillSection(content, nextSection) {
153
164
  const rebuilt = `${before}\n\n${nextSection.trim()}\n`;
154
165
  return after ? `${rebuilt}\n${after}\n` : `${rebuilt}`;
155
166
  };
156
- const headingStart = content.indexOf(SKILL_SECTION_HEADING);
167
+ const headingStart = [SKILL_SECTION_HEADING, ...LEGACY_SKILL_SECTION_HEADINGS]
168
+ .map(heading => content.indexOf(heading))
169
+ .filter(index => index !== -1)
170
+ .sort((a, b) => a - b)[0] ?? -1;
157
171
  if (headingStart !== -1) {
158
172
  const nextHeading = content.indexOf("\n## ", headingStart + 1);
159
173
  const sectionEnd = nextHeading === -1 ? content.length : nextHeading + 1;
@@ -164,7 +178,7 @@ function upsertSkillSection(content, nextSection) {
164
178
  }
165
179
  return `${content.trimEnd()}\n\n${nextSection.trim()}\n`;
166
180
  }
167
- export async function runAiSkillsRule(context) {
181
+ export async function runAiRulesRule(context) {
168
182
  const { projectDir, dryRun, aiTools } = context;
169
183
  const targetFiles = resolveSkillsDocs(projectDir, aiTools);
170
184
  const enabled = getEnabledFeatures(context.enabledFeatures);
@@ -173,7 +187,7 @@ export async function runAiSkillsRule(context) {
173
187
  for (const targetFile of targetFiles) {
174
188
  if (dryRun) {
175
189
  const action = existsSync(targetFile) ? "update" : "create";
176
- console.log(`[dry-run] Would ${action} ${path.basename(targetFile)} with AI skill guidance`);
190
+ console.log(`[dry-run] Would ${action} ${path.basename(targetFile)} with AI rules content`);
177
191
  continue;
178
192
  }
179
193
  const exists = existsSync(targetFile);
@@ -182,10 +196,10 @@ export async function runAiSkillsRule(context) {
182
196
  if (updated !== current) {
183
197
  await fs.mkdir(path.dirname(targetFile), { recursive: true });
184
198
  await fs.writeFile(targetFile, updated, "utf8");
185
- console.log(`${exists ? "Updated" : "Created"} ${path.basename(targetFile)} with AI skill guidance`);
199
+ console.log(`${exists ? "Updated" : "Created"} ${path.basename(targetFile)} with AI rules content`);
186
200
  continue;
187
201
  }
188
- console.log(`${path.basename(targetFile)} already contains latest AI skill guidance`);
202
+ console.log(`${path.basename(targetFile)} already contains latest AI rules content`);
189
203
  }
190
204
  }
191
205
  export const __testables__ = {
@@ -1,4 +1,4 @@
1
- import { runAiSkillsRule } from "./ai-skills.js";
1
+ import { runAiRulesRule } from "./ai-rules.js";
2
2
  import { runFormatRule } from "./format.js";
3
3
  import { runHuskyRule } from "./husky.js";
4
4
  import { runLintRule } from "./lint.js";
@@ -28,6 +28,6 @@ export async function runFeatureRules(context) {
28
28
  await runHuskyRule(context);
29
29
  }
30
30
  if (skills) {
31
- await runAiSkillsRule(context);
31
+ await runAiRulesRule(context);
32
32
  }
33
33
  }
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@tyyyho/treg",
3
- "version": "1.0.2",
3
+ "version": "1.0.5",
4
4
  "description": "Treg is a CLI tool that injects an engineering immune system into existing projects.",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "https://github.com/TyyyHo/Treg"
8
+ "url": "https://github.com/tyyyho/treg.git"
9
9
  },
10
10
  "bin": {
11
11
  "treg": "dist/init-project.js"