@actalk/inkos-core 0.4.9 → 0.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/dist/agents/architect.d.ts +2 -1
- package/dist/agents/architect.d.ts.map +1 -1
- package/dist/agents/architect.js +77 -5
- package/dist/agents/architect.js.map +1 -1
- package/dist/agents/continuity.d.ts +2 -0
- package/dist/agents/continuity.d.ts.map +1 -1
- package/dist/agents/continuity.js +146 -34
- package/dist/agents/continuity.js.map +1 -1
- package/dist/agents/en-prompt-sections.d.ts +8 -0
- package/dist/agents/en-prompt-sections.d.ts.map +1 -0
- package/dist/agents/en-prompt-sections.js +119 -0
- package/dist/agents/en-prompt-sections.js.map +1 -0
- package/dist/agents/fanfic-canon-importer.d.ts +14 -0
- package/dist/agents/fanfic-canon-importer.d.ts.map +1 -0
- package/dist/agents/fanfic-canon-importer.js +99 -0
- package/dist/agents/fanfic-canon-importer.js.map +1 -0
- package/dist/agents/fanfic-dimensions.d.ts +14 -0
- package/dist/agents/fanfic-dimensions.d.ts.map +1 -0
- package/dist/agents/fanfic-dimensions.js +63 -0
- package/dist/agents/fanfic-dimensions.js.map +1 -0
- package/dist/agents/fanfic-prompt-sections.d.ts +5 -0
- package/dist/agents/fanfic-prompt-sections.d.ts.map +1 -0
- package/dist/agents/fanfic-prompt-sections.js +85 -0
- package/dist/agents/fanfic-prompt-sections.js.map +1 -0
- package/dist/agents/post-write-validator.d.ts.map +1 -1
- package/dist/agents/post-write-validator.js +65 -0
- package/dist/agents/post-write-validator.js.map +1 -1
- package/dist/agents/reviser.d.ts.map +1 -1
- package/dist/agents/reviser.js +17 -3
- package/dist/agents/reviser.js.map +1 -1
- package/dist/agents/settler-prompts.d.ts +1 -1
- package/dist/agents/settler-prompts.d.ts.map +1 -1
- package/dist/agents/settler-prompts.js +7 -2
- package/dist/agents/settler-prompts.js.map +1 -1
- package/dist/agents/writer-prompts.d.ts +7 -2
- package/dist/agents/writer-prompts.d.ts.map +1 -1
- package/dist/agents/writer-prompts.js +43 -20
- package/dist/agents/writer-prompts.js.map +1 -1
- package/dist/agents/writer.d.ts +1 -1
- package/dist/agents/writer.d.ts.map +1 -1
- package/dist/agents/writer.js +49 -5
- package/dist/agents/writer.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/models/book-rules.d.ts +6 -0
- package/dist/models/book-rules.d.ts.map +1 -1
- package/dist/models/book-rules.js +2 -0
- package/dist/models/book-rules.js.map +1 -1
- package/dist/models/book.d.ts +15 -4
- package/dist/models/book.d.ts.map +1 -1
- package/dist/models/book.js +5 -7
- package/dist/models/book.js.map +1 -1
- package/dist/models/genre-profile.d.ts +3 -0
- package/dist/models/genre-profile.d.ts.map +1 -1
- package/dist/models/genre-profile.js +1 -0
- package/dist/models/genre-profile.js.map +1 -1
- package/dist/models/project.d.ts +3 -0
- package/dist/models/project.d.ts.map +1 -1
- package/dist/models/project.js +1 -0
- package/dist/models/project.js.map +1 -1
- package/dist/pipeline/agent.d.ts.map +1 -1
- package/dist/pipeline/agent.js +41 -0
- package/dist/pipeline/agent.js.map +1 -1
- package/dist/pipeline/runner.d.ts +5 -1
- package/dist/pipeline/runner.d.ts.map +1 -1
- package/dist/pipeline/runner.js +72 -6
- package/dist/pipeline/runner.js.map +1 -1
- package/dist/utils/analytics.d.ts +39 -0
- package/dist/utils/analytics.d.ts.map +1 -0
- package/dist/utils/analytics.js +50 -0
- package/dist/utils/analytics.js.map +1 -0
- package/dist/utils/config-loader.d.ts +9 -0
- package/dist/utils/config-loader.d.ts.map +1 -0
- package/dist/utils/config-loader.js +60 -0
- package/dist/utils/config-loader.js.map +1 -0
- package/genres/cozy.md +43 -0
- package/genres/cultivation.md +42 -0
- package/genres/dungeon-core.md +40 -0
- package/genres/isekai.md +43 -0
- package/genres/litrpg.md +43 -0
- package/genres/progression.md +41 -0
- package/genres/romantasy.md +45 -0
- package/genres/sci-fi.md +42 -0
- package/genres/system-apocalypse.md +40 -0
- package/genres/tower-climber.md +41 -0
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/utils/analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ProjectConfig } from "../models/project.js";
|
|
2
|
+
export declare const GLOBAL_CONFIG_DIR: string;
|
|
3
|
+
export declare const GLOBAL_ENV_PATH: string;
|
|
4
|
+
/**
|
|
5
|
+
* Load project config from inkos.json with .env overrides.
|
|
6
|
+
* Shared by CLI and Studio — single source of truth for config loading.
|
|
7
|
+
*/
|
|
8
|
+
export declare function loadProjectConfig(root: string): Promise<ProjectConfig>;
|
|
9
|
+
//# sourceMappingURL=config-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE/E,eAAO,MAAM,iBAAiB,QAA4B,CAAC;AAC3D,eAAO,MAAM,eAAe,QAAkC,CAAC;AAE/D;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAkD5E"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { readFile, access } from "node:fs/promises";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { ProjectConfigSchema } from "../models/project.js";
|
|
5
|
+
export const GLOBAL_CONFIG_DIR = join(homedir(), ".inkos");
|
|
6
|
+
export const GLOBAL_ENV_PATH = join(GLOBAL_CONFIG_DIR, ".env");
|
|
7
|
+
/**
|
|
8
|
+
* Load project config from inkos.json with .env overrides.
|
|
9
|
+
* Shared by CLI and Studio — single source of truth for config loading.
|
|
10
|
+
*/
|
|
11
|
+
export async function loadProjectConfig(root) {
|
|
12
|
+
// Load global ~/.inkos/.env first, then project .env overrides
|
|
13
|
+
const { config: loadEnv } = await import("dotenv");
|
|
14
|
+
loadEnv({ path: GLOBAL_ENV_PATH });
|
|
15
|
+
loadEnv({ path: join(root, ".env"), override: true });
|
|
16
|
+
const configPath = join(root, "inkos.json");
|
|
17
|
+
try {
|
|
18
|
+
await access(configPath);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
throw new Error(`inkos.json not found in ${root}.\nMake sure you are inside an InkOS project directory (cd into the project created by 'inkos init').`);
|
|
22
|
+
}
|
|
23
|
+
const raw = await readFile(configPath, "utf-8");
|
|
24
|
+
let config;
|
|
25
|
+
try {
|
|
26
|
+
config = JSON.parse(raw);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
throw new Error(`inkos.json in ${root} is not valid JSON. Check the file for syntax errors.`);
|
|
30
|
+
}
|
|
31
|
+
// .env overrides inkos.json for LLM settings
|
|
32
|
+
const env = process.env;
|
|
33
|
+
const llm = (config.llm ?? {});
|
|
34
|
+
if (env.INKOS_LLM_PROVIDER)
|
|
35
|
+
llm.provider = env.INKOS_LLM_PROVIDER;
|
|
36
|
+
if (env.INKOS_LLM_BASE_URL)
|
|
37
|
+
llm.baseUrl = env.INKOS_LLM_BASE_URL;
|
|
38
|
+
if (env.INKOS_LLM_MODEL)
|
|
39
|
+
llm.model = env.INKOS_LLM_MODEL;
|
|
40
|
+
if (env.INKOS_LLM_TEMPERATURE)
|
|
41
|
+
llm.temperature = parseFloat(env.INKOS_LLM_TEMPERATURE);
|
|
42
|
+
if (env.INKOS_LLM_MAX_TOKENS)
|
|
43
|
+
llm.maxTokens = parseInt(env.INKOS_LLM_MAX_TOKENS, 10);
|
|
44
|
+
if (env.INKOS_LLM_THINKING_BUDGET)
|
|
45
|
+
llm.thinkingBudget = parseInt(env.INKOS_LLM_THINKING_BUDGET, 10);
|
|
46
|
+
if (env.INKOS_LLM_API_FORMAT)
|
|
47
|
+
llm.apiFormat = env.INKOS_LLM_API_FORMAT;
|
|
48
|
+
config.llm = llm;
|
|
49
|
+
// Global language override
|
|
50
|
+
if (env.INKOS_DEFAULT_LANGUAGE)
|
|
51
|
+
config.language = env.INKOS_DEFAULT_LANGUAGE;
|
|
52
|
+
// API key ONLY from env — never stored in inkos.json
|
|
53
|
+
const apiKey = env.INKOS_LLM_API_KEY;
|
|
54
|
+
if (!apiKey) {
|
|
55
|
+
throw new Error("INKOS_LLM_API_KEY not set. Run 'inkos config set-global' or add it to project .env file.");
|
|
56
|
+
}
|
|
57
|
+
llm.apiKey = apiKey;
|
|
58
|
+
return ProjectConfigSchema.parse(config);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=config-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"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"}
|
package/genres/cozy.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Cozy Fantasy
|
|
3
|
+
id: cozy
|
|
4
|
+
language: en
|
|
5
|
+
chapterTypes: ["Slice-of-Life", "Community", "Setup", "Transition", "Payoff"]
|
|
6
|
+
fatigueWords: ["delve", "tapestry", "testament", "intricate", "pivotal", "vibrant", "comprehensive", "nuanced", "embark", "foster", "underscore", "bolstered", "crucial"]
|
|
7
|
+
numericalSystem: false
|
|
8
|
+
powerScaling: false
|
|
9
|
+
eraResearch: false
|
|
10
|
+
pacingRule: "Slow, meditative pacing. Each chapter advances an emotional arc or community bond. Seasonal/cyclical structure works well."
|
|
11
|
+
satisfactionTypes: ["Relationship Deepened", "Community Problem Solved", "Emotional Breakthrough", "Craft Mastered", "Found Family Moment", "Small Wonder Discovered"]
|
|
12
|
+
auditDimensions: [1,2,3,6,7,8,9,10,13,14,15,16,17,18,19,24,25,26]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Genre Prohibitions
|
|
16
|
+
|
|
17
|
+
- Genre bait-and-switch — if you promise cozy, never introduce world-ending threats or graphic violence
|
|
18
|
+
- Conflict resolution without work — problems must not solve themselves
|
|
19
|
+
- Manic pixie dream characters who exist only to change the protagonist
|
|
20
|
+
- Nostalgic falseness — romanticizing a "simpler time" without substance
|
|
21
|
+
- Cruel humor — humor must be gentle, never at someone's expense
|
|
22
|
+
- Existential stakes masquerading as low-stakes — keep threats emotional, not apocalyptic
|
|
23
|
+
- Purple prose describing food/nature without advancing character or community arc
|
|
24
|
+
|
|
25
|
+
## Emotional Arc Rules
|
|
26
|
+
|
|
27
|
+
- Stakes are high emotionally but not existentially — characters care, the world doesn't end
|
|
28
|
+
- Conflict types: personal growth, community problems, relationship tension, small dangers, moral dilemmas
|
|
29
|
+
- Community is a character — setting and relationships are as important as the individual protagonist
|
|
30
|
+
- Hope must always be present — even sad moments don't end in despair
|
|
31
|
+
- Found family bonds drive the emotional core
|
|
32
|
+
- Character arcs follow: isolation/grief -> small interactions -> gradual opening -> emotional breakthrough -> integration
|
|
33
|
+
- Comforting sensory details matter: tea, baked goods, warm spaces, seasonal textures
|
|
34
|
+
|
|
35
|
+
## Pacing Guidance
|
|
36
|
+
|
|
37
|
+
- Chapter length: 2-3k words with space for reflection
|
|
38
|
+
- Chapter structure: quiet opening -> small event or interaction -> internal response/growth -> gentle transition -> soft ending (not cliffhanger)
|
|
39
|
+
- No cliffhangers — chapters end with peace, hope, or gentle anticipation
|
|
40
|
+
- Seasonal/cyclical structure works well (calendar-based chapter rhythm)
|
|
41
|
+
- Downtime scenes must still plant hooks, advance relationships, or build contrast
|
|
42
|
+
- Slice-of-life texture woven with an emotional throughline — pure plotless chapters risk feeling static
|
|
43
|
+
- Every quiet scene must shift something: a realization, a decision, an intimacy, a small loss
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: English Cultivation
|
|
3
|
+
id: cultivation
|
|
4
|
+
language: en
|
|
5
|
+
chapterTypes: ["Training", "Breakthrough", "Combat", "Setup", "Transition", "Payoff"]
|
|
6
|
+
fatigueWords: ["delve", "tapestry", "testament", "intricate", "pivotal", "vibrant", "comprehensive", "nuanced", "embark", "foster", "underscore", "bolstered", "crucial"]
|
|
7
|
+
numericalSystem: false
|
|
8
|
+
powerScaling: true
|
|
9
|
+
eraResearch: false
|
|
10
|
+
pacingRule: "Training/meditation alternates with application/combat. Breakthrough every 5-10 chapters early, every 15-25 late. Each stage must feel earned through discipline."
|
|
11
|
+
satisfactionTypes: ["Stage Breakthrough", "Technique Mastery", "Tribulation Survived", "Martial Victory", "Philosophical Insight", "Core Formation"]
|
|
12
|
+
auditDimensions: [1,2,3,4,6,7,8,9,10,13,14,15,16,17,18,19,24,25,26]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Genre Prohibitions
|
|
16
|
+
|
|
17
|
+
- Cultivation that feels instant or effortless — it must read like genuine labor
|
|
18
|
+
- Breakthrough scenes treated as throwaway moments — each tier transition deserves a full dramatic scene
|
|
19
|
+
- Ignoring philosophical/spiritual depth — meditation and inner balance matter as much as combat power
|
|
20
|
+
- Adopting full Chinese cultural trappings without adaptation — this is Western cultivation, use accessible naming (Copper/Iron/Jade/Gold, not Qi Condensation/Core Formation unless earned)
|
|
21
|
+
- Power gains disconnected from training, sacrifice, or problem-solving
|
|
22
|
+
- Cultivation stages with no meaningful difference in capability between them
|
|
23
|
+
|
|
24
|
+
## Cultivation Rules
|
|
25
|
+
|
|
26
|
+
- Typical Western cultivation stages: Qi Foundation / Energy Gathering -> Core Formation -> Immortal Ascension -> Tribulation / Transcendence (or custom equivalents)
|
|
27
|
+
- Each stage represents meaningful power transformation — characters at different stages should not compete directly without explanation
|
|
28
|
+
- Cultivation must feel like work: meditation scenes with five-sense description, not abstract philosophy lectures
|
|
29
|
+
- Breakthrough scenes show struggle, transformation, and cost — not instant "ding" level-ups
|
|
30
|
+
- Martial integration: cultivation combines with physical combat training, not just sitting and meditating
|
|
31
|
+
- Philosophical elements add depth but must emerge through experience, not exposition
|
|
32
|
+
- Spiritual attribute development: sensitivity to energy, intuition, capacity increases are valid non-numerical progression markers
|
|
33
|
+
|
|
34
|
+
## Pacing Guidance
|
|
35
|
+
|
|
36
|
+
- Mix detailed training scenes (showing struggle, failure, epiphanies) with montages covering longer periods
|
|
37
|
+
- 1-2 detailed breakthrough scenes per cultivation stage — these are the genre's peak moments
|
|
38
|
+
- Combat tests what was learned in training — progression and action feed each other
|
|
39
|
+
- Internal struggle escalates with power: pride, responsibility, temptation, and enemies grow alongside cultivation
|
|
40
|
+
- Sect/academy politics and mentorship relationships provide non-combat tension
|
|
41
|
+
- Early: frequent small gains. Mid: longer plateaus with harder breakthroughs. Late: rare, climactic stage transitions
|
|
42
|
+
- The journey of cultivation is the story — readers came for the grind, not just the destination
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Dungeon Core
|
|
3
|
+
id: dungeon-core
|
|
4
|
+
language: en
|
|
5
|
+
chapterTypes: ["Strategy", "Adventurer POV", "Setup", "Transition", "Payoff"]
|
|
6
|
+
fatigueWords: ["delve", "tapestry", "testament", "intricate", "pivotal", "vibrant", "comprehensive", "nuanced", "embark", "foster", "underscore", "bolstered", "crucial"]
|
|
7
|
+
numericalSystem: true
|
|
8
|
+
powerScaling: false
|
|
9
|
+
eraResearch: false
|
|
10
|
+
pacingRule: "Alternate dungeon POV (planning/building) with adventurer POV (exploration/combat) every 1-2 chapters. Expansion milestone every 5-8 chapters."
|
|
11
|
+
satisfactionTypes: ["Trap Success", "Floor Expansion", "Minion Evolution", "Adventurer Defeated", "Resource Milestone", "Core Upgrade"]
|
|
12
|
+
auditDimensions: [1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,24,25,26]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Genre Prohibitions
|
|
16
|
+
|
|
17
|
+
- Dungeon leaving its location — immobility is the core constraint, not a bug
|
|
18
|
+
- No consequence for poor trap design or weak minions — adventurers must punish strategic failure
|
|
19
|
+
- Overemphasis on adventurer POV (>70%) — this is dungeon core, not dungeon crawl
|
|
20
|
+
- Lone-wolf dungeon with zero NPC dialogue or relationships
|
|
21
|
+
- Resource management without scarcity — dungeon must make meaningful choices between defense, expansion, and treasure
|
|
22
|
+
- Dungeon core invulnerable or never at risk — core vulnerability is the central tension
|
|
23
|
+
|
|
24
|
+
## Non-Human POV Rules
|
|
25
|
+
|
|
26
|
+
- Establish dungeon's sensory and cognitive limitations clearly — it "feels" through mana flows, vibrations, minion senses
|
|
27
|
+
- Split POV works best: dungeon core chapters (strategic, omniscient within dungeon) alternating with adventurer/NPC chapters (ground-level human perspective)
|
|
28
|
+
- Dungeon may think differently: slower consciousness, different time perception, alien emotional range
|
|
29
|
+
- Dungeon learns about the outside world through adventurers, scouts, or other filtered means
|
|
30
|
+
- Show the dungeon learning and adapting: "Adventurers bypassed arrow trap by..." leads to next iteration improvements
|
|
31
|
+
|
|
32
|
+
## Pacing Guidance
|
|
33
|
+
|
|
34
|
+
- Early: Simple dungeon (3-4 rooms, basic traps, weak monsters). Dungeon learns the system
|
|
35
|
+
- Mid: Expanding territory, specialized rooms, sophisticated trap combinations, creature breeding
|
|
36
|
+
- Late: Sprawling complex, hundreds of minions, political relationships with other dungeons/factions, regional economic impact
|
|
37
|
+
- Dungeon POV chapters (2-3k words): internal monologue, planning, resource management, strategy
|
|
38
|
+
- Adventurer POV chapters (2-3k words): exploration, discovery, combat, adaptation
|
|
39
|
+
- End dungeon chapters on suspense (adventurers approaching); end adventurer chapters revealing dungeon's plan
|
|
40
|
+
- Each room/trap/creature must feel purposeful — readers enjoy creative dungeon design with clear strategic reasoning
|
package/genres/isekai.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Isekai / Portal Fantasy
|
|
3
|
+
id: isekai
|
|
4
|
+
language: en
|
|
5
|
+
chapterTypes: ["Exploration", "Adaptation", "Setup", "Transition", "Payoff", "Combat"]
|
|
6
|
+
fatigueWords: ["delve", "tapestry", "testament", "intricate", "pivotal", "vibrant", "comprehensive", "nuanced", "embark", "foster", "underscore", "bolstered", "crucial"]
|
|
7
|
+
numericalSystem: false
|
|
8
|
+
powerScaling: true
|
|
9
|
+
eraResearch: false
|
|
10
|
+
pacingRule: "Establish new world rules by chapter 3. Cultural adaptation and fish-out-of-water moments every 2-3 chapters early. Skip tutorial-town syndrome — no 50 pages hitting rats."
|
|
11
|
+
satisfactionTypes: ["World Rule Discovered", "Cultural Clash Resolved", "Real-World Skill Applied", "New Ability Gained", "Relationship Formed", "Identity Established in New World"]
|
|
12
|
+
auditDimensions: [1,2,3,4,6,7,8,9,10,13,14,15,16,17,18,19,24,25,26]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Genre Prohibitions
|
|
16
|
+
|
|
17
|
+
- "Tutorial town" syndrome — 50+ pages of killing rats or low-stakes grinding before the real story starts
|
|
18
|
+
- New world that feels identical to Earth with a fantasy skin
|
|
19
|
+
- MC treating new world's culture as quaint or inferior without narrative consequence
|
|
20
|
+
- No real consequences for cultural misunderstandings — fish-out-of-water must have stakes
|
|
21
|
+
- Pacing too slow in the "culture learning" phase — drip-feed rules through action, not lectures
|
|
22
|
+
- MC's origin world becoming irrelevant after chapter 3 — the contrast is the genre's engine
|
|
23
|
+
- Isekai truck or summoning ritual with zero personality — make the transportation event matter
|
|
24
|
+
|
|
25
|
+
## World Transition Rules
|
|
26
|
+
|
|
27
|
+
- Transportation event (summoning, reincarnation, portal) must be distinct and memorable
|
|
28
|
+
- Brief real-world grounding: who was MC before? What skills, knowledge, relationships do they carry?
|
|
29
|
+
- Arrival scene: disorientation is real — sensory overload, language barriers, physical discomfort
|
|
30
|
+
- First guide/NPC explains world basics through interaction, not monologue
|
|
31
|
+
- By chapter 3, readers must understand the new world's basic operating system
|
|
32
|
+
- MC's real-world knowledge creates both advantages and dangerous blind spots
|
|
33
|
+
- New world must feel real: consistent geography, politics, cultures, economics — not a game lobby
|
|
34
|
+
|
|
35
|
+
## Pacing Guidance
|
|
36
|
+
|
|
37
|
+
- Opening: transportation event -> brief real-world grounding -> arrival and disorientation -> first guide -> first concrete goal
|
|
38
|
+
- Early chapters: cultural fish-out-of-water drives comedy and drama (every 2-3 chapters)
|
|
39
|
+
- MC bringing real-world skills that apply in surprising ways is a core satisfaction — seed these early
|
|
40
|
+
- Learning the new world's magic/power system should feel like genuine discovery, not tutorial text
|
|
41
|
+
- Relationship building with new world characters grounds the MC emotionally
|
|
42
|
+
- Clash between home culture and new world values creates natural conflict without needing a villain
|
|
43
|
+
- Mid-to-late story: MC's identity shifts from "outsider" to "participant" — track this arc explicitly
|
package/genres/litrpg.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: LitRPG
|
|
3
|
+
id: litrpg
|
|
4
|
+
language: en
|
|
5
|
+
chapterTypes: ["Progression", "Setup", "Transition", "Payoff", "Combat"]
|
|
6
|
+
fatigueWords: ["delve", "tapestry", "testament", "intricate", "pivotal", "vibrant", "comprehensive", "nuanced", "embark", "foster", "underscore", "bolstered", "crucial"]
|
|
7
|
+
numericalSystem: true
|
|
8
|
+
powerScaling: true
|
|
9
|
+
eraResearch: false
|
|
10
|
+
pacingRule: "Every 1-3 chapters early: level-up or stat gain. Mid-story every 5-10 chapters. Late story: tier transitions spaced far apart."
|
|
11
|
+
satisfactionTypes: ["Level Up", "Skill Unlock", "Loot Drop", "Boss Kill", "Tier Breakthrough", "System Secret Revealed"]
|
|
12
|
+
auditDimensions: [1,2,3,4,5,6,7,8,9,10,13,14,15,16,17,18,19,24,25,26]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Genre Prohibitions
|
|
16
|
+
|
|
17
|
+
- System rules changing arbitrarily after being established — readers track every number
|
|
18
|
+
- Unexplained power jumps — growth must follow established system logic
|
|
19
|
+
- "Blue Box Madness" — stat dumps every chapter or pages-long stat sheets
|
|
20
|
+
- Instant mastery — acquiring a skill and immediately excelling at it
|
|
21
|
+
- Overpowered MC from the start — removes all tension
|
|
22
|
+
- System message overload interrupting action scenes
|
|
23
|
+
- Female characters reduced to "perfect girlfriend" or "sickly daughter" tropes
|
|
24
|
+
|
|
25
|
+
## System Design Rules
|
|
26
|
+
|
|
27
|
+
- Once stats, skills, and system rules are established, they cannot be contradicted
|
|
28
|
+
- Stat blocks punctuate achievement moments, not routine actions
|
|
29
|
+
- Derivative stats (HP, Mana) must depend logically on primary stats
|
|
30
|
+
- Skill unlocks must feel earned — tied to risk, sacrifice, or problem-solving
|
|
31
|
+
- Same-type resource absorption must show diminishing returns, not flat gains
|
|
32
|
+
- System UI (blue boxes) appears after action/revelation, never mid-combat
|
|
33
|
+
- Give the system a consistent voice/personality — formal, archaic, playful, or clinical
|
|
34
|
+
|
|
35
|
+
## Pacing Guidance
|
|
36
|
+
|
|
37
|
+
- Chapter length sweet spot: 2.8k-3.5k words depending on stat density
|
|
38
|
+
- Chapter structure: Hook/recap -> Action/exploration -> System interaction/stat gain -> Cliffhanger
|
|
39
|
+
- Early chapters: frequent level-ups to hook readers (every 1-3 chapters)
|
|
40
|
+
- Mid-story: harder gains, every 5-10 chapters; narrative tension rises
|
|
41
|
+
- Late story: tier/rank transitions are rare and climactic
|
|
42
|
+
- Test pacing: Book 3 MC decisively defeats Book 1 version, but challenges never feel trivial
|
|
43
|
+
- Describe stats in narration first (audiobook-friendly), then include stat sheet for detail readers
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Progression Fantasy
|
|
3
|
+
id: progression
|
|
4
|
+
language: en
|
|
5
|
+
chapterTypes: ["Training", "Breakthrough", "Setup", "Transition", "Payoff"]
|
|
6
|
+
fatigueWords: ["delve", "tapestry", "testament", "intricate", "pivotal", "vibrant", "comprehensive", "nuanced", "embark", "foster", "underscore", "bolstered", "crucial"]
|
|
7
|
+
numericalSystem: false
|
|
8
|
+
powerScaling: true
|
|
9
|
+
eraResearch: false
|
|
10
|
+
pacingRule: "Tier advancement every 2-4 chapters early, every 8-15 mid-story, every 20+ late-story. Each tier must feel fundamentally different."
|
|
11
|
+
satisfactionTypes: ["Tier Breakthrough", "Technique Mastery", "Rival Surpassed", "Mentor Transcended", "Power Combination Discovered", "Impossible Challenge Overcome"]
|
|
12
|
+
auditDimensions: [1,2,3,4,6,7,8,9,10,13,14,15,16,17,18,19,24,25,26]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Genre Prohibitions
|
|
16
|
+
|
|
17
|
+
- Power loss without extraordinary justification — progress loss drives readers away faster than anything
|
|
18
|
+
- Instant power-ups from found items or bloodline awakenings without buildup
|
|
19
|
+
- Training montages only — readers want detailed training scenes showing struggle and epiphany
|
|
20
|
+
- Arbitrary advancement blocks that feel like artificial gates rather than organic difficulty
|
|
21
|
+
- Tier progression that contradicts established power hierarchy
|
|
22
|
+
- Characters at different tiers competing directly without explanation
|
|
23
|
+
|
|
24
|
+
## Power System Rules
|
|
25
|
+
|
|
26
|
+
- Progress must be quantifiable — even without explicit numbers, use measurable tiers (Stage 3 cultivator, Master swordsman)
|
|
27
|
+
- Clear power tiers with meaningful differences between each (Color, Metal, Letter, or custom)
|
|
28
|
+
- Each tier should represent meaningful power difference — not just cosmetic upgrades
|
|
29
|
+
- Earned growth only — power gains connect to effort, sacrifice, or problem-solving
|
|
30
|
+
- Book-to-book comparison: Book 3 MC decisively defeats Book 1 version
|
|
31
|
+
- Mix training montages (covering weeks) with 1-2 detailed breakthrough scenes per tier
|
|
32
|
+
- Physical transformations can signal tier transitions: eye color, aura, physical presence
|
|
33
|
+
|
|
34
|
+
## Pacing Guidance
|
|
35
|
+
|
|
36
|
+
- Chapter structure: Training/learning -> Application/testing -> Breakthrough trigger -> Advancement or cliffhanger
|
|
37
|
+
- Maintain tension as MC grows: introduce enemies/challenges that scale differently or present new threat types
|
|
38
|
+
- Internal struggle must escalate with power — new power unlocks pride, responsibility, temptation, enemies
|
|
39
|
+
- Strongest threats need not be physical: political, magical, spiritual, temporal
|
|
40
|
+
- Early: MC is underdog among peers. Mid: MC formidable but others advance too. Late: MC among strongest but faces tier-transcending threats
|
|
41
|
+
- Rivalry with a peer who also progresses keeps tension alive across the full arc
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Romantasy
|
|
3
|
+
id: romantasy
|
|
4
|
+
language: en
|
|
5
|
+
chapterTypes: ["Romance", "Action", "Setup", "Transition", "Payoff"]
|
|
6
|
+
fatigueWords: ["delve", "tapestry", "testament", "intricate", "pivotal", "vibrant", "comprehensive", "nuanced", "embark", "foster", "underscore", "bolstered", "crucial"]
|
|
7
|
+
numericalSystem: false
|
|
8
|
+
powerScaling: false
|
|
9
|
+
eraResearch: false
|
|
10
|
+
pacingRule: "Romance beats at every act break. Chemistry scenes every 2-3 chapters. Fantasy romance: consummation at 60-75%. Romantic fantasy: romance resolution aligned with plot resolution."
|
|
11
|
+
satisfactionTypes: ["Chemistry Moment", "Vulnerability Shared", "Obstacle Overcome Together", "First Kiss", "Relationship Defined", "HEA/HFN Achieved"]
|
|
12
|
+
auditDimensions: [1,2,3,6,7,8,9,10,13,14,15,16,17,18,19,24,25,26]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Genre Prohibitions
|
|
16
|
+
|
|
17
|
+
- Chemistry that isn't earned — readers must understand why characters care for each other
|
|
18
|
+
- Love interest who doesn't drive protagonist's transformation
|
|
19
|
+
- Easy romance without real conflict — tension is mandatory
|
|
20
|
+
- Fantasy romance without HEA/HFN ending — readers feel betrayed
|
|
21
|
+
- Mislabeling heat level — communicate clearly in story setup; readers self-select
|
|
22
|
+
- World-building that feels like afterthought to romance — setting must complicate or enable the relationship
|
|
23
|
+
- Love triangles dragged out without decisive resolution
|
|
24
|
+
- "Tell" emotions instead of showing them — inner feelings shown through action, not declaration
|
|
25
|
+
|
|
26
|
+
## Romance Rules
|
|
27
|
+
|
|
28
|
+
- Show attraction subtly: physical detail notices, lingering touches, involuntary reactions (heartbeat, breath catching)
|
|
29
|
+
- Banter and wit: clever dialogue showing mutual understanding and intellectual challenge
|
|
30
|
+
- Vulnerability moments: characters sharing weakness, fear, secrets, past trauma
|
|
31
|
+
- Shared goals reveal compatibility: working together toward a goal shows how the partner handles conflict
|
|
32
|
+
- Conflict must be real — external barriers (class, species, faction, magic) or internal barriers (fear, trust, past wounds)
|
|
33
|
+
- Fantasy setting complicates romance: magic bonds, soul connections, species differences, political marriages
|
|
34
|
+
- Action scenes show relationship dynamics — fighting together reveals trust and compatibility
|
|
35
|
+
- Heat level must be consistent throughout — don't escalate or pull back without narrative reason
|
|
36
|
+
|
|
37
|
+
## Pacing Guidance
|
|
38
|
+
|
|
39
|
+
- Fantasy romance: heavy romance focus early, building to consummation around 60-75%, resolution after romance established
|
|
40
|
+
- Romantic fantasy: romance subplot woven through action plot, key romantic moments at act breaks, romance resolution aligned with plot resolution
|
|
41
|
+
- Chemistry scenes every 2-3 chapters minimum — readers came for the relationship
|
|
42
|
+
- Sexual tension can heighten during/after action (adrenaline, relief, protective instincts)
|
|
43
|
+
- Break up long dialogue-heavy romance scenes with physical action or setting detail
|
|
44
|
+
- Enemies-to-lovers needs slow burn: opposition -> forced proximity -> grudging respect -> attraction -> surrender
|
|
45
|
+
- Second-chance romance: history adds depth and pain; show how characters have changed
|
package/genres/sci-fi.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Science Fiction
|
|
3
|
+
id: sci-fi
|
|
4
|
+
language: en
|
|
5
|
+
chapterTypes: ["Exploration", "Combat", "Setup", "Transition", "Payoff"]
|
|
6
|
+
fatigueWords: ["delve", "tapestry", "testament", "intricate", "pivotal", "vibrant", "comprehensive", "nuanced", "embark", "foster", "underscore", "bolstered", "crucial"]
|
|
7
|
+
numericalSystem: false
|
|
8
|
+
powerScaling: false
|
|
9
|
+
eraResearch: true
|
|
10
|
+
pacingRule: "Worldbuilding emerges through action, not exposition. Tech reveals tied to plot-critical moments. Political/exploration arcs alternate with action every 2-4 chapters."
|
|
11
|
+
satisfactionTypes: ["Discovery", "Tech Breakthrough", "Political Victory", "First Contact", "Mystery Solved", "Survival Against Odds"]
|
|
12
|
+
auditDimensions: [1,2,3,6,7,8,9,10,13,14,15,16,17,18,19,24,25,26]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Genre Prohibitions
|
|
16
|
+
|
|
17
|
+
- Tech rules changing to serve plot convenience — once physics/tech is established, it must stay consistent
|
|
18
|
+
- Technology solving everything — every tech must have limitations; introduce problems tech cannot fix (corruption, emotion, human greed)
|
|
19
|
+
- Info-dumping science/tech explanations outside of plot-critical moments
|
|
20
|
+
- Ignoring logical consequences of technology — FTL, AI, biotech all have societal implications
|
|
21
|
+
- Hand-waving hard-science concepts in hard sci-fi without clear intent to treat science as soft
|
|
22
|
+
- Characters behaving as if from present day when story is set centuries ahead — cultural/linguistic adaptation matters
|
|
23
|
+
|
|
24
|
+
## Tech Consistency Rules
|
|
25
|
+
|
|
26
|
+
- Every technology must have defined limitations and side effects
|
|
27
|
+
- New technologies create new problems — they don't just solve old ones
|
|
28
|
+
- If the story uses FTL, hyperdrives, or teleportation, establish rules and stick to them
|
|
29
|
+
- Hard sci-fi: explain the science, make it plausible, build consequences. Readers will check
|
|
30
|
+
- Space opera: science can be soft, but internal rules must be consistent across the narrative
|
|
31
|
+
- Show technology through character interaction, not textbook entries
|
|
32
|
+
- Era research required: reference real science correctly, extrapolate plausibly
|
|
33
|
+
|
|
34
|
+
## Pacing Guidance
|
|
35
|
+
|
|
36
|
+
- Hard sci-fi: logical problem-solving drives pacing — each chapter should advance understanding or create new constraints
|
|
37
|
+
- Space opera: epic scale requires political/interpersonal arcs between action sequences
|
|
38
|
+
- Exploration chapters establish wonder and worldbuilding through character experience
|
|
39
|
+
- Political complexity: factions with competing interests, diplomacy alongside combat
|
|
40
|
+
- Tech reveals at plot-critical moments only — never dump specs for their own sake
|
|
41
|
+
- Action scenes grounded in established physics/tech rules — no surprise capabilities
|
|
42
|
+
- Settings spanning star systems need clear spatial orientation for readers
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: System Apocalypse
|
|
3
|
+
id: system-apocalypse
|
|
4
|
+
language: en
|
|
5
|
+
chapterTypes: ["Survival", "Combat", "Setup", "Transition", "Payoff"]
|
|
6
|
+
fatigueWords: ["delve", "tapestry", "testament", "intricate", "pivotal", "vibrant", "comprehensive", "nuanced", "embark", "foster", "underscore", "bolstered", "crucial"]
|
|
7
|
+
numericalSystem: true
|
|
8
|
+
powerScaling: true
|
|
9
|
+
eraResearch: false
|
|
10
|
+
pacingRule: "Early (ch 1-15): survival pressure every chapter. Mid (ch 15-50): power-up + faction politics every 3-5 chapters. Late: expansion and existential threats."
|
|
11
|
+
satisfactionTypes: ["Survival Against Odds", "Level Up", "Territory Claimed", "Faction Victory", "System Secret Revealed", "Societal Rebuild Milestone"]
|
|
12
|
+
auditDimensions: [1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,24,25,26]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Genre Prohibitions
|
|
16
|
+
|
|
17
|
+
- Day Zero that doesn't permanently change the world — no reverting to normal
|
|
18
|
+
- Early chapters without genuine survival danger — readers demand real stakes from page one
|
|
19
|
+
- System arrival with no in-world explanation (even a vague one)
|
|
20
|
+
- Ignoring real-world geography and consequences when set on Earth
|
|
21
|
+
- Factions that are binary good/evil — competing interests, not cartoon villainy
|
|
22
|
+
- MC becoming unstoppable too fast — power fantasy must be earned through survival
|
|
23
|
+
- Tech usage without addressing fuel, ammo, and infrastructure collapse
|
|
24
|
+
|
|
25
|
+
## World Rules
|
|
26
|
+
|
|
27
|
+
- Day Zero must establish in chapters 1-3: how a normal person reacts, first death or near-death, and that old rules are gone
|
|
28
|
+
- Infrastructure failure is real: food, water, electricity, medicine stop working
|
|
29
|
+
- Resource scarcity drives conflict: water, ammunition, medical supplies, safe shelter
|
|
30
|
+
- Factions form quickly: government remnants, criminal networks, cults, survival communities, warlords
|
|
31
|
+
- Real-world grounding: name real locations, acknowledge real infrastructure, maintain daylight cycles and weather
|
|
32
|
+
- System mechanics integrate logically — show why old-world tech fails or doesn't in a magical world
|
|
33
|
+
|
|
34
|
+
## Pacing Guidance
|
|
35
|
+
|
|
36
|
+
- Early (ch 1-15): Survival, confusion, learning system. MC is weak, struggles with low-tier threats. Shorter chapters (2-3k words)
|
|
37
|
+
- Mid (ch 15-50): Growing stronger, claiming territory, faction politics. Power fantasy increases; survival becomes strategic
|
|
38
|
+
- Late: Expansion, faction wars, world-scale threats. MC powerful but not unstoppable; challenges are existential/political
|
|
39
|
+
- Introduce new threat types as MC grows — defeating zombies leads to intelligent predators, rival factions, interdimensional invasions
|
|
40
|
+
- Balance survival pressure with power progression — desperation early, strategy mid, leadership late
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Tower Climbing
|
|
3
|
+
id: tower-climber
|
|
4
|
+
language: en
|
|
5
|
+
chapterTypes: ["Floor Challenge", "Progression", "Setup", "Transition", "Payoff"]
|
|
6
|
+
fatigueWords: ["delve", "tapestry", "testament", "intricate", "pivotal", "vibrant", "comprehensive", "nuanced", "embark", "foster", "underscore", "bolstered", "crucial"]
|
|
7
|
+
numericalSystem: false
|
|
8
|
+
powerScaling: true
|
|
9
|
+
eraResearch: false
|
|
10
|
+
pacingRule: "Each floor arc spans 3-8 chapters: introduction, exploration, confrontation, advancement. Difficulty must escalate visibly between floors."
|
|
11
|
+
satisfactionTypes: ["Floor Cleared", "Boss Defeated", "New Ability Gained", "Floor Secret Discovered", "Rival Surpassed", "Summit Progress"]
|
|
12
|
+
auditDimensions: [1,2,3,4,6,7,8,9,10,13,14,15,16,17,18,19,24,25,26]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Genre Prohibitions
|
|
16
|
+
|
|
17
|
+
- Floors that are cosmetic reskins of each other — each floor must present materially different challenges
|
|
18
|
+
- Floor difficulty that doesn't escalate predictably — readers must understand power requirements
|
|
19
|
+
- No clear summit goal — readers need to know what success at the top looks like
|
|
20
|
+
- Horizontal progression (going sideways) instead of vertical climbing
|
|
21
|
+
- Skipping floors without earned justification
|
|
22
|
+
- Boss fights that are won through deus ex machina instead of preparation and growth
|
|
23
|
+
|
|
24
|
+
## Floor Design Rules
|
|
25
|
+
|
|
26
|
+
- Each floor must introduce a distinct biome, challenge type, or rule set
|
|
27
|
+
- Floor transitions are natural progression checkpoints — use them for stat gains, ability unlocks, or narrative reveals
|
|
28
|
+
- Environmental detail matters: readers experience each floor as a new world
|
|
29
|
+
- Floor bosses or trials must test something the climber learned on that floor
|
|
30
|
+
- Difficulty tiers should be transparent to readers — they should anticipate what the next floor demands
|
|
31
|
+
- Allow brief rest/preparation between floors for character moments and strategic planning
|
|
32
|
+
|
|
33
|
+
## Pacing Guidance
|
|
34
|
+
|
|
35
|
+
- Floor introduction: establish new environment, threats, and rules (1-2 chapters)
|
|
36
|
+
- Exploration and problem-solving: MC adapts to floor's unique challenges (1-3 chapters)
|
|
37
|
+
- Confrontation: floor boss, puzzle, or trial that tests everything learned (1-2 chapters)
|
|
38
|
+
- Advancement: reward, brief respite, foreshadowing of next floor (0.5-1 chapter)
|
|
39
|
+
- Early floors move fast (2-3 chapters each) to hook readers with progression
|
|
40
|
+
- Later floors slow down (5-8 chapters) as complexity and stakes increase
|
|
41
|
+
- The summit should feel like a destination worth the climb — seed hints about what awaits throughout
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@actalk/inkos-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "InkOS core: models, agents, pipeline, LLM integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@anthropic-ai/sdk": "^0.78.0",
|
|
27
|
+
"dotenv": "^16.4.0",
|
|
27
28
|
"js-yaml": "^4.1.1",
|
|
28
29
|
"openai": "^4.80.0",
|
|
29
30
|
"zod": "^3.24.0"
|