@demig0d2/skills 1.0.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.
Files changed (29) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/bin/cli.js +313 -0
  4. package/package.json +44 -0
  5. package/skills/book-writer/SKILL.md +1396 -0
  6. package/skills/book-writer/references/kdp_specs.md +139 -0
  7. package/skills/book-writer/scripts/kdp_check.py +255 -0
  8. package/skills/book-writer/scripts/toc_extract.py +151 -0
  9. package/skills/book-writer/scripts/word_count.py +196 -0
  10. package/skills/chapter-auditor/SKILL.md +231 -0
  11. package/skills/chapter-auditor/scripts/score_report.py +237 -0
  12. package/skills/concept-expander/SKILL.md +170 -0
  13. package/skills/concept-expander/scripts/validate_concept.py +255 -0
  14. package/skills/continuity-tracker/SKILL.md +251 -0
  15. package/skills/continuity-tracker/references/log_schema.md +149 -0
  16. package/skills/continuity-tracker/scripts/conflict_check.py +179 -0
  17. package/skills/continuity-tracker/scripts/log_manager.py +258 -0
  18. package/skills/humanizer/SKILL.md +632 -0
  19. package/skills/humanizer/references/patterns_quick_ref.md +71 -0
  20. package/skills/humanizer/scripts/dna_scan.py +168 -0
  21. package/skills/humanizer/scripts/scan_ai_patterns.py +279 -0
  22. package/skills/overhaul/SKILL.md +697 -0
  23. package/skills/overhaul/references/upgrade_checklist.md +81 -0
  24. package/skills/overhaul/scripts/changelog_gen.py +183 -0
  25. package/skills/overhaul/scripts/skill_parser.py +265 -0
  26. package/skills/overhaul/scripts/version_bump.py +128 -0
  27. package/skills/research-aggregator/SKILL.md +194 -0
  28. package/skills/research-aggregator/references/thinkers_reference.md +104 -0
  29. package/skills/research-aggregator/scripts/bank_formatter.py +206 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Dheelep N (Vivid)
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/README.md ADDED
@@ -0,0 +1,111 @@
1
+ # @demig0d2/skills
2
+
3
+ > Claude skill suite by Vivid (Dheelep N)
4
+
5
+ A collection of production-grade Claude skills for book writing, humanizing AI text, upgrading skill files, and the full book production pipeline — installable in one command.
6
+
7
+ ---
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ # Install a single skill
13
+ npx @demig0d2/skills install book-writer
14
+
15
+ # Install everything at once
16
+ npx @demig0d2/skills install all
17
+ ```
18
+
19
+ Skills are copied to `~/.claude/skills/` — Claude picks them up automatically on next session start.
20
+
21
+ ---
22
+
23
+ ## Commands
24
+
25
+ ```bash
26
+ npx @demig0d2/skills install <skill> # Install one skill
27
+ npx @demig0d2/skills install all # Install all skills
28
+ npx @demig0d2/skills remove <skill> # Remove a skill
29
+ npx @demig0d2/skills remove all # Remove all demigod skills
30
+ npx @demig0d2/skills list # List available skills + install status
31
+ npx @demig0d2/skills status # Show which skills are installed
32
+ npx @demig0d2/skills info <skill> # Show details about a skill
33
+ npx @demig0d2/skills version # Show package version
34
+ ```
35
+
36
+ ---
37
+
38
+ ## Skills
39
+
40
+ ### `book-writer`
41
+ Full end-to-end book authoring pipeline. Takes a concept document from seed idea to KDP-ready DOCX. Includes concept expansion, structure options, 26-question intake, research bank, table of contents, chapter writing (guided or autonomous), 7-dimension chapter audit, humanizer pass, continuity tracking, and KDP-formatted output.
42
+
43
+ ```bash
44
+ npx @demig0d2/skills install book-writer
45
+ ```
46
+
47
+ ### `humanizer`
48
+ Strips all 25 documented AI writing patterns AND actively rewrites toward Vivid's style DNA simultaneously. Includes a DNA protection layer that identifies and exempts authentic signature constructions before the pattern elimination pass runs. Produces: draft → self-audit → final version → changes summary.
49
+
50
+ ```bash
51
+ npx @demig0d2/skills install humanizer
52
+ ```
53
+
54
+ ### `overhaul`
55
+ Upgrades any skill file from its current version to a dramatically better one. Two modes:
56
+ - **Automated** — diagnoses across 6 dimensions and rebuilds completely, no user input needed
57
+ - **Personalized** — user-guided, decides scope/depth at each stage
58
+
59
+ ```bash
60
+ npx @demig0d2/skills install overhaul
61
+ ```
62
+
63
+ ### `concept-expander`
64
+ Turns a rough book seed (a paragraph, title, or bullet points) into a complete concept document the book-writer can consume. Outputs logline, core question, reader profile, emotional arc, thematic clusters, comp titles, and chapter territories.
65
+
66
+ ```bash
67
+ npx @demig0d2/skills install concept-expander
68
+ ```
69
+
70
+ ### `chapter-auditor`
71
+ Scores chapters across 7 dimensions before the humanizer pass: voice authenticity, pain-to-transformation arc, sentence rhythm, metaphor quality, structural integrity, AI pattern contamination, and reader resonance. Produces a PASS / CONDITIONAL PASS / REVISE verdict.
72
+
73
+ ```bash
74
+ npx @demig0d2/skills install chapter-auditor
75
+ ```
76
+
77
+ ### `continuity-tracker`
78
+ Maintains a running continuity log across all chapters. Tracks established facts, metaphors, insights, tone decisions, and open threads. Fires a continuity brief before each chapter and updates the log after — detects and surfaces conflicts before they compound.
79
+
80
+ ```bash
81
+ npx @demig0d2/skills install continuity-tracker
82
+ ```
83
+
84
+ ### `research-aggregator`
85
+ Builds a Research Bank organized by chapter — philosophical anchors, quotes, empirical findings, and conceptual oppositions. Tuned specifically for Vivid's genres: philosophy/essay, self-help/motivational, non-fiction/technical.
86
+
87
+ ```bash
88
+ npx @demig0d2/skills install research-aggregator
89
+ ```
90
+
91
+ ---
92
+
93
+ ## Requirements
94
+
95
+ - Node.js 16+
96
+ - Claude.ai (any paid plan) or Claude Code
97
+
98
+ Skills install to `~/.claude/skills/` and are picked up automatically by Claude on session start.
99
+
100
+ ---
101
+
102
+ ## Author
103
+
104
+ **Dheelep N (Vivid)** — developer, author, security researcher
105
+ 8 published books · 6 research papers · 9+ production tools
106
+
107
+ ---
108
+
109
+ ## License
110
+
111
+ MIT
package/bin/cli.js ADDED
@@ -0,0 +1,313 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require("fs");
4
+ const path = require("path");
5
+ const os = require("os");
6
+
7
+ // ─── Constants ────────────────────────────────────────────────────────────────
8
+
9
+ const PACKAGE_NAME = "@demig0d2/skills";
10
+ const VERSION = "1.0.0";
11
+
12
+ const SKILLS = {
13
+ "book-writer": {
14
+ description: "Full end-to-end book authoring pipeline with KDP output",
15
+ aliases: ["book", "bookwriter"],
16
+ },
17
+ humanizer: {
18
+ description: "Strip AI patterns + rewrite toward Vivid's style DNA",
19
+ aliases: ["humanize"],
20
+ },
21
+ overhaul: {
22
+ description: "Upgrade any skill file — Automated or Personalized mode",
23
+ aliases: ["upgrade", "skill-upgrader"],
24
+ },
25
+ "concept-expander": {
26
+ description: "Expand a rough book seed into a full concept document",
27
+ aliases: ["concept", "expand"],
28
+ },
29
+ "chapter-auditor": {
30
+ description: "Score chapters across 7 dimensions before humanizing",
31
+ aliases: ["auditor", "audit"],
32
+ },
33
+ "continuity-tracker": {
34
+ description: "Track facts, metaphors, and insights across chapters",
35
+ aliases: ["continuity", "tracker"],
36
+ },
37
+ "research-aggregator": {
38
+ description: "Build a research bank of quotes and thinkers per chapter",
39
+ aliases: ["research", "aggregator"],
40
+ },
41
+ };
42
+
43
+ const ALL_SKILLS = Object.keys(SKILLS);
44
+
45
+ // ─── Install paths ────────────────────────────────────────────────────────────
46
+
47
+ function getInstallDir() {
48
+ const platform = os.platform();
49
+
50
+ // Claude.ai skills path (user-level, works across all projects)
51
+ // Windows: %USERPROFILE%\.claude\skills
52
+ // macOS/Linux: ~/.claude/skills
53
+ const home = os.homedir();
54
+ return path.join(home, ".claude", "skills");
55
+ }
56
+
57
+ function getSkillSourcePath(skillName) {
58
+ return path.join(__dirname, "..", "skills", skillName, "SKILL.md");
59
+ }
60
+
61
+ function getSkillDestPath(skillName) {
62
+ return path.join(getInstallDir(), skillName, "SKILL.md");
63
+ }
64
+
65
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
66
+
67
+ function resolveSkillName(input) {
68
+ // Direct match
69
+ if (SKILLS[input]) return input;
70
+
71
+ // Alias match
72
+ for (const [name, meta] of Object.entries(SKILLS)) {
73
+ if (meta.aliases.includes(input)) return name;
74
+ }
75
+
76
+ return null;
77
+ }
78
+
79
+ function ensureDir(dirPath) {
80
+ if (!fs.existsSync(dirPath)) {
81
+ fs.mkdirSync(dirPath, { recursive: true });
82
+ }
83
+ }
84
+
85
+ function printBanner() {
86
+ console.log(`
87
+ ██████╗ ███████╗███╗ ███╗██╗ ██████╗ ██████╗ ██████╗
88
+ ██╔══██╗██╔════╝████╗ ████║██║██╔════╝ ██╔═══██╗██╔══██╗
89
+ ██║ ██║█████╗ ██╔████╔██║██║██║ ███╗██║ ██║██║ ██║
90
+ ██║ ██║██╔══╝ ██║╚██╔╝██║██║██║ ██║██║ ██║██║ ██║
91
+ ██████╔╝███████╗██║ ╚═╝ ██║██║╚██████╔╝╚██████╔╝██████╔╝
92
+ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═════╝ ╚═════╝ ╚═════╝
93
+ SKILLS
94
+ `);
95
+ }
96
+
97
+ function printHelp() {
98
+ printBanner();
99
+ console.log(` ${PACKAGE_NAME} v${VERSION}`);
100
+ console.log(` Claude skill suite by Vivid (Dheelep N)\n`);
101
+ console.log(` USAGE`);
102
+ console.log(` npx @demig0d2/skills <command> [skill]\n`);
103
+ console.log(` COMMANDS`);
104
+ console.log(` install <skill> Install a skill to ~/.claude/skills/`);
105
+ console.log(` install all Install all skills at once`);
106
+ console.log(` remove <skill> Remove an installed skill`);
107
+ console.log(` remove all Remove all demigod skills`);
108
+ console.log(` list List all available skills`);
109
+ console.log(` status Show which skills are installed`);
110
+ console.log(` info <skill> Show details about a skill`);
111
+ console.log(` version Show package version\n`);
112
+ console.log(` EXAMPLES`);
113
+ console.log(` npx @demig0d2/skills install book-writer`);
114
+ console.log(` npx @demig0d2/skills install all`);
115
+ console.log(` npx @demig0d2/skills status`);
116
+ console.log(` npx @demig0d2/skills remove humanizer\n`);
117
+ console.log(` SKILLS`);
118
+ for (const [name, meta] of Object.entries(SKILLS)) {
119
+ console.log(` ${name.padEnd(22)} ${meta.description}`);
120
+ }
121
+ console.log();
122
+ }
123
+
124
+ function printList() {
125
+ console.log(`\n Available skills in @demig0d2/skills:\n`);
126
+ for (const [name, meta] of Object.entries(SKILLS)) {
127
+ const installed = fs.existsSync(getSkillDestPath(name));
128
+ const status = installed ? "✓ installed" : " available";
129
+ console.log(` ${status} ${name.padEnd(22)} ${meta.description}`);
130
+ }
131
+ console.log();
132
+ }
133
+
134
+ function printStatus() {
135
+ console.log(`\n Skill status (install dir: ${getInstallDir()})\n`);
136
+ for (const [name] of Object.entries(SKILLS)) {
137
+ const installed = fs.existsSync(getSkillDestPath(name));
138
+ const icon = installed ? "✓" : "✗";
139
+ const label = installed ? "installed" : "not installed";
140
+ console.log(` ${icon} ${name.padEnd(22)} ${label}`);
141
+ }
142
+ console.log();
143
+ }
144
+
145
+ function printInfo(skillName) {
146
+ const resolved = resolveSkillName(skillName);
147
+ if (!resolved) {
148
+ console.error(`\n ✗ Unknown skill: "${skillName}"`);
149
+ console.error(` Run: npx @demig0d2/skills list\n`);
150
+ process.exit(1);
151
+ }
152
+
153
+ const meta = SKILLS[resolved];
154
+ const installed = fs.existsSync(getSkillDestPath(resolved));
155
+ const srcPath = getSkillSourcePath(resolved);
156
+ const content = fs.readFileSync(srcPath, "utf8");
157
+ const lines = content.split("\n").length;
158
+
159
+ console.log(`\n Skill: ${resolved}`);
160
+ console.log(` Description: ${meta.description}`);
161
+ console.log(` Aliases: ${meta.aliases.join(", ")}`);
162
+ console.log(` Size: ${lines} lines`);
163
+ console.log(` Installed: ${installed ? "Yes → " + getSkillDestPath(resolved) : "No"}`);
164
+ console.log(` Install: npx @demig0d2/skills install ${resolved}\n`);
165
+ }
166
+
167
+ // ─── Install ──────────────────────────────────────────────────────────────────
168
+
169
+ function installSkill(skillName) {
170
+ const resolved = resolveSkillName(skillName);
171
+ if (!resolved) {
172
+ console.error(` ✗ Unknown skill: "${skillName}"`);
173
+ console.error(` Available: ${ALL_SKILLS.join(", ")}\n`);
174
+ process.exit(1);
175
+ }
176
+
177
+ const src = getSkillSourcePath(resolved);
178
+ const dest = getSkillDestPath(resolved);
179
+ const destDir = path.dirname(dest);
180
+
181
+ if (!fs.existsSync(src)) {
182
+ console.error(` ✗ Source file missing: ${src}`);
183
+ process.exit(1);
184
+ }
185
+
186
+ const alreadyInstalled = fs.existsSync(dest);
187
+
188
+ ensureDir(destDir);
189
+ fs.copyFileSync(src, dest);
190
+
191
+ if (alreadyInstalled) {
192
+ console.log(` ↑ Updated: ${resolved}`);
193
+ } else {
194
+ console.log(` ✓ Installed: ${resolved}`);
195
+ }
196
+ console.log(` → ${dest}`);
197
+ }
198
+
199
+ function installAll() {
200
+ console.log(`\n Installing all @demig0d2/skills...\n`);
201
+ for (const skillName of ALL_SKILLS) {
202
+ installSkill(skillName);
203
+ }
204
+ console.log(`\n All skills installed. Restart Claude to activate.\n`);
205
+ }
206
+
207
+ // ─── Remove ───────────────────────────────────────────────────────────────────
208
+
209
+ function removeSkill(skillName) {
210
+ const resolved = resolveSkillName(skillName);
211
+ if (!resolved) {
212
+ console.error(` ✗ Unknown skill: "${skillName}"`);
213
+ process.exit(1);
214
+ }
215
+
216
+ const dest = getSkillDestPath(resolved);
217
+ const destDir = path.dirname(dest);
218
+
219
+ if (!fs.existsSync(dest)) {
220
+ console.log(` ○ Not installed: ${resolved} (nothing to remove)`);
221
+ return;
222
+ }
223
+
224
+ fs.rmSync(destDir, { recursive: true, force: true });
225
+ console.log(` ✓ Removed: ${resolved}`);
226
+ }
227
+
228
+ function removeAll() {
229
+ console.log(`\n Removing all @demig0d2/skills...\n`);
230
+ for (const skillName of ALL_SKILLS) {
231
+ removeSkill(skillName);
232
+ }
233
+ console.log(`\n All skills removed.\n`);
234
+ }
235
+
236
+ // ─── Main ─────────────────────────────────────────────────────────────────────
237
+
238
+ function main() {
239
+ const args = process.argv.slice(2);
240
+ const command = args[0];
241
+ const target = args[1];
242
+
243
+ if (!command || command === "help" || command === "--help" || command === "-h") {
244
+ printHelp();
245
+ return;
246
+ }
247
+
248
+ if (command === "version" || command === "--version" || command === "-v") {
249
+ console.log(`${PACKAGE_NAME} v${VERSION}`);
250
+ return;
251
+ }
252
+
253
+ if (command === "list" || command === "ls") {
254
+ printList();
255
+ return;
256
+ }
257
+
258
+ if (command === "status") {
259
+ printStatus();
260
+ return;
261
+ }
262
+
263
+ if (command === "info") {
264
+ if (!target) {
265
+ console.error(`\n ✗ Specify a skill: npx @demig0d2/skills info <skill>\n`);
266
+ process.exit(1);
267
+ }
268
+ printInfo(target);
269
+ return;
270
+ }
271
+
272
+ if (command === "install") {
273
+ if (!target) {
274
+ console.error(`\n ✗ Specify a skill or "all"\n`);
275
+ console.error(` Examples:`);
276
+ console.error(` npx @demig0d2/skills install book-writer`);
277
+ console.error(` npx @demig0d2/skills install all\n`);
278
+ process.exit(1);
279
+ }
280
+
281
+ if (target === "all") {
282
+ installAll();
283
+ } else {
284
+ console.log();
285
+ installSkill(target);
286
+ console.log(`\n Restart Claude to activate the skill.\n`);
287
+ }
288
+ return;
289
+ }
290
+
291
+ if (command === "remove" || command === "uninstall") {
292
+ if (!target) {
293
+ console.error(`\n ✗ Specify a skill or "all"\n`);
294
+ process.exit(1);
295
+ }
296
+
297
+ if (target === "all") {
298
+ removeAll();
299
+ } else {
300
+ console.log();
301
+ removeSkill(target);
302
+ console.log();
303
+ }
304
+ return;
305
+ }
306
+
307
+ // Unknown command
308
+ console.error(`\n ✗ Unknown command: "${command}"`);
309
+ console.error(` Run: npx @demig0d2/skills help\n`);
310
+ process.exit(1);
311
+ }
312
+
313
+ main();
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@demig0d2/skills",
3
+ "version": "1.0.0",
4
+ "description": "Claude skill suite by Vivid (Dheelep N) — book writing pipeline, humanizer, skill upgrader, and more",
5
+ "keywords": [
6
+ "claude",
7
+ "claude-skills",
8
+ "ai-skills",
9
+ "book-writing",
10
+ "humanizer",
11
+ "skill-upgrader",
12
+ "anthropic",
13
+ "agent-skills"
14
+ ],
15
+ "homepage": "https://github.com/dheelep/demigod-skills#readme",
16
+ "bugs": {
17
+ "url": "https://github.com/dheelep/demigod-skills/issues"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/dheelep/demigod-skills.git"
22
+ },
23
+ "license": "MIT",
24
+ "author": {
25
+ "name": "Dheelep N (Vivid)",
26
+ "email": "dheelepsain2+moba@gmail.com"
27
+ },
28
+ "main": "bin/cli.js",
29
+ "bin": {
30
+ "demigod-skills": "bin/cli.js"
31
+ },
32
+ "files": [
33
+ "bin/",
34
+ "skills/",
35
+ "README.md",
36
+ "LICENSE"
37
+ ],
38
+ "engines": {
39
+ "node": ">=16.0.0"
40
+ },
41
+ "publishConfig": {
42
+ "access": "public"
43
+ }
44
+ }