genesis-compiler 1.10.1 → 1.10.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
|
@@ -92,7 +92,11 @@ An empty bootstrap subsystem map yields to the starter's authored map, keeping
|
|
|
92
92
|
the imported Program connected to its source. A nonempty destination map remains
|
|
93
93
|
authored project context; incompatible declarations fail validation before copying.
|
|
94
94
|
Template Stack components/packages are combined with existing selections;
|
|
95
|
-
existing complete operation sections take precedence.
|
|
95
|
+
existing complete operation sections take precedence. When the starter's Stack
|
|
96
|
+
predates a section its selected components now propose, Genesis adopts the
|
|
97
|
+
current proposal, as `genesis migrate` would, so a new project never starts with
|
|
98
|
+
pending proposals. A section whose proposals compete still fails validation
|
|
99
|
+
before copying. No dependency command,
|
|
96
100
|
database command, agent, or Git commit runs during import. The result reports
|
|
97
101
|
the resolved source repository, branch and commit; no provenance ledger is
|
|
98
102
|
written to the project. Review the ordinary diff and commit it, or save it through the host.
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@ import { GENESIS_BOOTSTRAP_PATHS, inspectProject } from './project-inspection.js
|
|
|
11
11
|
import { runGit, runGitText } from './process.js';
|
|
12
12
|
import { listTemplates, resolveTemplate } from './template-catalog.js';
|
|
13
13
|
import { readGitSnapshot } from './template-source.js';
|
|
14
|
-
import { readStack } from './stack.js';
|
|
14
|
+
import { materializeProjectStackContracts, readStack } from './stack.js';
|
|
15
15
|
import { inspectSubsystems } from './subsystems.js';
|
|
16
16
|
import { writeFileAtomic } from './utils.js';
|
|
17
17
|
import { claudeSkillLinkTarget } from './claude-hooks.js';
|
|
@@ -124,6 +124,10 @@ export async function applyTemplate({ projectRoot, templateId, stackPackages = [
|
|
|
124
124
|
await symlink(linkTarget, location, 'dir');
|
|
125
125
|
} else await writeFile(location, value);
|
|
126
126
|
}
|
|
127
|
+
// A new project starts complete: adopt the current proposals of the starter's
|
|
128
|
+
// components for any section its Stack predates, as `genesis migrate` would.
|
|
129
|
+
const { pendingSections } = await readStack(stagingRoot, { allowUnresolvedSections: true, stackPackages });
|
|
130
|
+
if (pendingSections.length > 0) await materializeProjectStackContracts({ projectRoot: stagingRoot, stackPackages });
|
|
127
131
|
await initializeProject({ projectRoot: stagingRoot, stackPackages });
|
|
128
132
|
await buildProjectIndex({ projectRoot: stagingRoot, stackPackages });
|
|
129
133
|
const prepared = await inspectProject({ projectRoot: stagingRoot, stackPackages });
|