diff --git a/donald-company-workspace/canonical.json b/donald-company-workspace/canonical.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/donald-company-workspace/canonical.json @@ -0,0 +1 @@ +{} diff --git a/donald-company-workspace/prompts/careers_page.txt b/donald-company-workspace/prompts/careers_page.txt new file mode 100644 index 0000000..e01c50e --- /dev/null +++ b/donald-company-workspace/prompts/careers_page.txt @@ -0,0 +1,13 @@ +INPUT_JSON: @canonical.json + +TASK: Generate a careers page (Markdown) targeted at senior ML engineers, simulation experts, and control systems engineers. + +REQUIREMENTS: +- Include: mission statement, top 5 reasons to join, 3 sample role descriptions with responsibilities and KPIs, early team culture bullets, visa/remote policy, perks relevant to senior hires. +- Tone: ambitious, technical, respectful. +- Output in Markdown. +- Preserve facts from canonical.json; if missing, mark [MISSING_DATA: ...]. + +MODEL_SETTINGS: temperature=0.1, max_tokens=900 + +RETURN: Markdown careers page. \ No newline at end of file diff --git a/donald-company-workspace/prompts/investor_memo.txt b/donald-company-workspace/prompts/investor_memo.txt new file mode 100644 index 0000000..4fc2428 --- /dev/null +++ b/donald-company-workspace/prompts/investor_memo.txt @@ -0,0 +1,12 @@ +INPUT_JSON: @canonical.json + +TASK: Produce an 850–1000 word investor memo for VCs focused on enterprise AI and industrial automation. + +CONSTRAINTS: +- Tone: crisp, evidence-based, founder-friendly. +- Structure: 1) One-line thesis, 2) Market & TAM, 3) Product & tech defensibility (explain WDBX briefly), 4) Business model & revenue mechanics, 5) Pilot traction & 90-day plan (use the priority_checklist_90_days exactly), 6) Top 5 risks & mitigations, 7) Ask (funding amount and use of proceeds). +- Preserve all numeric claims and the 90-day checklist exactly as in the input JSON. +- If any pilot metric is missing, return exactly the text: [MISSING_DATA: ] and do not invent numbers. + +MODEL_SETTINGS: temperature=0.1, max_tokens=1000, top_p=0.95 +RETURN: Plain text investor memo. \ No newline at end of file diff --git a/donald-company-workspace/prompts/job_posting.txt b/donald-company-workspace/prompts/job_posting.txt new file mode 100644 index 0000000..c81cfe5 --- /dev/null +++ b/donald-company-workspace/prompts/job_posting.txt @@ -0,0 +1,12 @@ +INPUT_JSON: @canonical.json + +TASK: Create a senior ML engineer job posting (500–700 words) with requirements, responsibilities, interview stages, and sample KPIs. + +CONSTRAINTS: +- Include skills: simulation/FEA familiarity, time-series sensor analytics, model interpretability, PLC/robotics integration preferred. +- Include remote/hybrid options and compensation band guidance: "competitive; equity available". +- If any required detail is missing, mark [MISSING_DATA: ...]. + +MODEL_SETTINGS: temperature=0.1, max_tokens=700 + +RETURN: Plain text job posting. \ No newline at end of file diff --git a/donald-company-workspace/prompts/rewrite_instruction.txt b/donald-company-workspace/prompts/rewrite_instruction.txt new file mode 100644 index 0000000..27f23af --- /dev/null +++ b/donald-company-workspace/prompts/rewrite_instruction.txt @@ -0,0 +1,12 @@ +INPUT_JSON: @canonical.json + +TASK: Rewrite the provided draft to improve clarity, ensure tone matches the target audience, and strictly preserve all numeric claims and facts from INPUT_JSON. Replace any invented or unknown metrics with [MISSING_DATA: ]. + +REQUIREMENTS: +- Do not change any numbers found in INPUT_JSON. +- If a required detail is not present in INPUT_JSON, insert [MISSING_DATA: ...] verbatim. +- Keep structure and headings; tighten phrasing for concision. + +MODEL_SETTINGS: temperature=0.0, max_tokens=800 + +RETURN: Revised text only. \ No newline at end of file diff --git a/donald-company-workspace/prompts/slide_deck.txt b/donald-company-workspace/prompts/slide_deck.txt new file mode 100644 index 0000000..2e16152 --- /dev/null +++ b/donald-company-workspace/prompts/slide_deck.txt @@ -0,0 +1,9 @@ +INPUT_JSON: @canonical.json + +TASK: Produce a slide deck outline (10 slides). Each slide: title, 3–6 bullets, one-sentence speaker note. + +CONSTRAINTS: Focus on persuading Series A VC: traction, team, tech defensibility, unit economics, roadmap, and ask. + +MODEL_SETTINGS: temperature=0.1, max_tokens=800 + +RETURN: Markdown outline with 10 slides. \ No newline at end of file diff --git a/donald-company-workspace/prompts/technical_blog.txt b/donald-company-workspace/prompts/technical_blog.txt new file mode 100644 index 0000000..a3d611d --- /dev/null +++ b/donald-company-workspace/prompts/technical_blog.txt @@ -0,0 +1,13 @@ +INPUT_JSON: @canonical.json + +TASK: Write a 1200-word technical blog post titled "WDBX & Abi: Causal Backtrace for Manufacturing." + +REQUIREMENTS: +- Explain WDBX conceptually, how it integrates with LCM and digital twins. +- Provide example workflow design→simulation→pilot→feedback and 3 engineering challenges + mitigation strategies. +- Use headings and short code-style pseudocode where helpful. +- If any claim lacks data, mark [MISSING_DATA: ...]. + +MODEL_SETTINGS: temperature=0.1, max_tokens=1400 + +RETURN: Markdown technical blog post. \ No newline at end of file diff --git a/donald-company-workspace/scripts/verify_numbers.js b/donald-company-workspace/scripts/verify_numbers.js new file mode 100644 index 0000000..23bd635 --- /dev/null +++ b/donald-company-workspace/scripts/verify_numbers.js @@ -0,0 +1,27 @@ +// Node script: verify that numbers in canonical.json appear in generated outputs +const fs = require('fs'); +const path = require('path'); + +function read(file) { + const p = path.resolve(file); + return fs.readFileSync(p, 'utf8'); +} + +try { + const canonical = JSON.parse(read('donald-company-workspace/canonical.json')); + const outputs = read('donald-company-workspace/outputs/investor_memo.txt'); + + const searchNums = (obj, set = new Set()) => { + if (typeof obj === 'number') set.add(String(obj)); + else if (Array.isArray(obj)) obj.forEach(x => searchNums(x, set)); + else if (obj && typeof obj === 'object') Object.values(obj).forEach(x => searchNums(x, set)); + return set; + }; + + const nums = [...searchNums(canonical)]; + const missing = nums.filter(n => !outputs.includes(n)); + console.log('Numbers missing in investor memo:', missing); +} catch (err) { + console.error('Verification failed:', err.message); + process.exitCode = 1; +}