genesis-compiler 1.8.1 → 1.8.2

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/docs/templates.md CHANGED
@@ -84,6 +84,9 @@ Genesis never treats partial application code as an empty destination.
84
84
 
85
85
  The destination keeps its Git history, remotes, branch, meaningful Blueprint,
86
86
  collaboration/engineering choices, and authored Stack operation sections.
87
+ An empty bootstrap subsystem map yields to the starter's authored map, keeping
88
+ the imported Program connected to its source. A nonempty destination map remains
89
+ authored project context; incompatible declarations fail validation before copying.
87
90
  Template Stack components/packages are combined with existing selections;
88
91
  existing complete operation sections take precedence. No dependency command,
89
92
  database command, agent, or Git commit runs during import. The result reports
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genesis-compiler",
3
- "version": "1.8.1",
3
+ "version": "1.8.2",
4
4
  "type": "module",
5
5
  "description": "An agent-independent prompt, multi-language code-index, cleanup, and verification companion with project agent guidance.",
6
6
  "repository": {
@@ -12,6 +12,7 @@ import { runGit, runGitText } from './process.js';
12
12
  import { listTemplates, resolveTemplate } from './template-catalog.js';
13
13
  import { readGitSnapshot } from './template-source.js';
14
14
  import { readStack } from './stack.js';
15
+ import { inspectSubsystems } from './subsystems.js';
15
16
  import { writeFileAtomic } from './utils.js';
16
17
  import { claudeSkillLinkTarget } from './claude-hooks.js';
17
18
 
@@ -111,6 +112,7 @@ export async function applyTemplate({ projectRoot, templateId, stackPackages = [
111
112
  if (previous === null || name.startsWith('.genesis/')) continue;
112
113
  const { contents, linkTarget } = previous;
113
114
  if (name === 'genesis/blueprint.md' && !parseBlueprintSource(contents.toString('utf8')).description) continue;
115
+ if (name === 'genesis/subsystems.md' && (await inspectSubsystems({ projectRoot: root })).status === 'empty') continue;
114
116
  let value = contents;
115
117
  if (name === 'genesis/stack.md') value = mergeTemplateStack(stackFile.contents.toString('utf8'), contents.toString('utf8'));
116
118
  const location = path.join(stagingRoot, name);