Initial curated projectbrain source from 8a7b1e0651dbdab97d744cbd2e653ab3970ac6c5
This commit is contained in:
commit
5aa3e8d685
700 files changed
+132801
No files matched your search
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env node
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
|
||||
const root = process.cwd();
|
||||
const read = (file) => fs.readFileSync(path.join(root, file), "utf8");
|
||||
const exists = (file) => fs.existsSync(path.join(root, file));
|
||||
const failures = [];
|
||||
const requireFile = (file, reason) => { if (!exists(file)) failures.push(`${file}: ${reason}`); };
|
||||
const requireIncludes = (file, needle, reason) => {
|
||||
if (!exists(file) || !read(file).includes(needle)) failures.push(`${file}: ${reason}`);
|
||||
};
|
||||
|
||||
requireFile("src/features/source-library/pages/SourceLibrary.tsx", "Source Library page must exist.");
|
||||
requireFile("src/shared/lib/projectSourceCommands.ts", "Source intake commands must exist.");
|
||||
requireFile("src/shared/lib/projectOperatingStep.ts", "Shared project operating-step helper must exist.");
|
||||
requireIncludes("src/app/routes.tsx", 'path="/projects/:projectId/source-library"', "Source Library route must be registered.");
|
||||
requireIncludes("src/shared/lib/navigation.tsx", "Source Library", "Navigation should expose Source Library.");
|
||||
requireIncludes("src/shared/lib/model.ts", "ProjectSourceItem", "Project model must preserve original source material.");
|
||||
requireIncludes("src/shared/lib/model.ts", "ProjectSourceAsset", "Project model must preserve extracted media/document assets.");
|
||||
requireIncludes("src/shared/lib/safeData.ts", "sourceLibrary: asArray", "Runtime normalization should keep sourceLibrary arrays safe.");
|
||||
requireIncludes("src/shared/lib/safeData.ts", "mediaAssets: asArray", "Runtime normalization should keep mediaAssets arrays safe.");
|
||||
requireIncludes("src/shared/contexts/ProjectContext.tsx", "addProjectSource", "ProjectContext should create source-library items.");
|
||||
requireIncludes("src/shared/contexts/ProjectContext.tsx", "promoteSourceToReview", "ProjectContext should promote sources to Review Queue.");
|
||||
requireIncludes("src/shared/lib/projectSourceCommands.ts", "const inferAssets", "Source intake should extract media/document asset candidates.");
|
||||
requireIncludes("src/shared/lib/projectSourceCommands.ts", "mediaAssets: [...assets", "Extracted source assets should persist with project media.");
|
||||
requireIncludes("src/features/operations/pages/CaptureCenter.tsx", "Source Library", "Capture Center should link to Source Library.");
|
||||
requireIncludes("src/features/operations/pages/DocumentationHub.tsx", "Source-backed documentation intake", "Documentation Hub should make the source/docs link visible.");
|
||||
requireIncludes("src/shared/lib/projectOperatingStep.ts", "Nieuwe opdracht geven", "The shared next-step layer should allow direct assignments without mandatory extra sources.");
|
||||
requireIncludes("src/shared/components/ProjectFlowRail.tsx", "source-library", "Project flow rail should include the source-library step.");
|
||||
|
||||
if (failures.length) {
|
||||
console.error("ProjectBrain source library readiness: FAIL");
|
||||
failures.forEach((failure) => console.error(`- ${failure}`));
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log("ProjectBrain source library readiness: PASS");
|
||||
Reference in new issue
Block a user