@esoteric-logic/praxis-harness 2.16.0 → 3.0.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.
Files changed (53) hide show
  1. package/README.md +60 -0
  2. package/base/skills/px-prompt/SKILL.md +917 -107
  3. package/bin/praxis.js +73 -1
  4. package/bin/prompt-compile.js +129 -26
  5. package/bin/prompt-knowledge.js +152 -0
  6. package/lib/assemblers.js +25 -6
  7. package/lib/loader.js +172 -13
  8. package/package.json +3 -2
  9. package/prompts/blocks/behaviors/first-action-rule.md +21 -0
  10. package/prompts/blocks/behaviors/no-flattery.md +1 -2
  11. package/prompts/blocks/behaviors/phase-aware-reasoning.md +41 -0
  12. package/prompts/blocks/behaviors/radical-candor.md +23 -0
  13. package/prompts/blocks/context/mcp-servers.md +1 -1
  14. package/prompts/blocks/domains/federal-cost-analysis.md +33 -0
  15. package/prompts/blocks/domains/govcon-capture.md +89 -0
  16. package/prompts/blocks/domains/govcon-proposal.md +153 -0
  17. package/prompts/blocks/domains/pamasi-framework.md +58 -0
  18. package/prompts/blocks/domains/proposal-writing-rules.md +59 -0
  19. package/prompts/blocks/domains/red-team-review.md +45 -0
  20. package/prompts/blocks/formats/perplexity-generation.md +37 -0
  21. package/prompts/blocks/formats/scorecard-output.md +51 -0
  22. package/prompts/blocks/identity/federal-deal-sa.md +81 -0
  23. package/prompts/blocks/skills/mermaid-diagrams.md +39 -0
  24. package/prompts/{projects → personal}/praxis/CLAUDE.md +2 -3
  25. package/prompts/personal/praxis/project-instructions-claude-desktop.md +30 -0
  26. package/prompts/{projects/praxis/space-instructions.md → personal/praxis/space-instructions-perplexity.md} +2 -1
  27. package/prompts/profiles/_base.yaml +1 -0
  28. package/prompts/profiles/maximus-sa.yaml +27 -0
  29. package/prompts/projects/_template/prompt-config.yaml +4 -0
  30. package/prompts/templates/knowledge/architecture-constraints.md +19 -0
  31. package/prompts/templates/knowledge/corporate-reference.md +25 -0
  32. package/prompts/templates/knowledge/deal-context.md +27 -0
  33. package/prompts/work/elect/client-config.yaml +9 -0
  34. package/prompts/work/elect/deals/azure-architecture/CLAUDE.md +61 -0
  35. package/prompts/work/elect/deals/azure-architecture/prompt-config.yaml +16 -0
  36. package/prompts/work/elect/deals/azure-architecture/space-instructions-perplexity.md +39 -0
  37. package/prompts/work/elect/deals/azure-architecture/system-prompt.md +72 -0
  38. package/prompts/work/maximus/client-config.yaml +81 -0
  39. package/prompts/{projects/maximus/system-prompt.md → work/maximus/deals/dha-tricare/CLAUDE.md} +279 -314
  40. package/prompts/work/maximus/deals/dha-tricare/knowledge/deal-context.md +21 -0
  41. package/prompts/work/maximus/deals/dha-tricare/knowledge/maximus-corporate.md +30 -0
  42. package/prompts/work/maximus/deals/dha-tricare/project-instructions-claude-desktop.md +58 -0
  43. package/prompts/work/maximus/deals/dha-tricare/prompt-config.yaml +41 -0
  44. package/prompts/work/maximus/deals/dha-tricare/references/dha-tricare-intel.md +104 -0
  45. package/prompts/work/maximus/deals/dha-tricare/space-instructions-perplexity.md +42 -0
  46. package/prompts/work/maximus/references/maximus-corporate.md +39 -0
  47. package/prompts/projects/maximus/prompt-config.yaml +0 -13
  48. package/prompts/projects/maximus/space-instructions.md +0 -67
  49. package/prompts/projects/praxis/project-instructions.md +0 -24
  50. /package/prompts/{projects → personal}/praxis/prompt-config.yaml +0 -0
  51. /package/prompts/{projects → work}/maximus/references/maturity-questions.md +0 -0
  52. /package/prompts/{projects → work}/maximus/references/phase-maturity-matrix.md +0 -0
  53. /package/prompts/{projects → work}/maximus/references/proposal-writing-standards.md +0 -0
@@ -11,35 +11,91 @@ Single entry point for the prompt engine. Detects what needs to happen based on
11
11
 
12
12
  ## Invocation
13
13
  - `/px-prompt <project-name>` — create, generate, or regenerate a project's prompts
14
+ - `/px-prompt --deal <deal-name> [--type recompete|new-start|task-order|idiq]` — Maximus capture deal (0 questions)
15
+ - `/px-prompt --advance <deal-name>` — advance deal to next capture phase, update scoring expectations
16
+ - `/px-prompt --edit <project-name> "<change>"` — targeted edit, auto-regenerate platform outputs
14
17
  - `/px-prompt --sync` — recompile all projects, report diffs and budgets
18
+ - `/px-prompt --dashboard` — project index with status, budgets, and staleness
19
+ - `/px-prompt --refresh <project-name>` — re-run Perplexity research, diff and update
20
+ - `/px-prompt --deploy <project-name>` — copy outputs to clipboard with deployment URLs
21
+ - `/px-prompt --scan <project-name>` — full audit of project quality and budgets
15
22
  - `/px-prompt --list` — list all projects and their status
16
23
 
17
24
  ---
18
25
 
26
+ ## Initial Menu Behavior
27
+
28
+ **NEVER hardcode individual project names in the initial options menu.**
29
+ When the user runs `/px-prompt` without arguments, show ONLY these generic options:
30
+ 1. Create new project
31
+ 2. Sync all projects
32
+ 3. Work on existing project → THEN dynamically list projects from `node bin/prompt-compile.js --list`
33
+
34
+ Do NOT show "Work on praxis" or "Work on maximus" or any project name — the engine is project-agnostic. Discover projects dynamically at runtime.
35
+
36
+ ---
37
+
38
+ ## Output File Naming Convention
39
+
40
+ Platform outputs use suffixed filenames so users can distinguish them at a glance:
41
+
42
+ | Platform | Output Filename | Budget |
43
+ |----------|----------------|--------|
44
+ | Source (Claude Projects) | `system-prompt.md` | 5,000 chars |
45
+ | Claude Desktop / Projects | `project-instructions-claude-desktop.md` | 2,500 chars |
46
+ | Perplexity Spaces | `space-instructions-perplexity.md` | 4,000 chars |
47
+ | Claude Code | `CLAUDE.md` | 250 lines |
48
+
49
+ All output files live in `prompts/projects/<project-name>/`.
50
+ Reference/knowledge files live in `prompts/projects/<project-name>/references/`.
51
+
52
+ ---
53
+
19
54
  ## Routing Logic
20
55
 
21
56
  When invoked with a project name, detect the right action:
22
57
 
23
58
  ```
24
- /px-prompt <project-name>
59
+ /px-prompt <args>
60
+
61
+ ├─ --deal <deal-name> [--type ...]?
62
+ │ → ACTION: DEAL (Step 7) — 0 questions, Perplexity researches, auto-scaffold
63
+
64
+ ├─ --advance <deal-name>?
65
+ │ → ACTION: ADVANCE PHASE (Step 12) — move deal to next capture phase
66
+
67
+ ├─ --edit <project-name> "<change>"?
68
+ │ → ACTION: TARGETED EDIT (Step 8) — edit one section, regenerate outputs
69
+
70
+ ├─ --dashboard?
71
+ │ → ACTION: DASHBOARD (Step 9) — project index with staleness
72
+
73
+ ├─ --refresh <project-name>?
74
+ │ → ACTION: REFRESH (Step 10) — re-run Perplexity research, diff, update
25
75
 
26
- ├─ Project doesn't exist?
76
+ ├─ --deploy <project-name>?
77
+ │ → ACTION: DEPLOY (Step 11) — clipboard + URLs
78
+
79
+ ├─ --scan <project-name>?
80
+ │ → ACTION: SCAN & AUDIT (Step 6)
81
+
82
+ ├─ --sync?
83
+ │ → ACTION: SYNC ALL (Step 5)
84
+
85
+ ├─ <project-name> — project doesn't exist?
27
86
  │ → ACTION: CREATE (Step 1)
28
87
 
29
- ├─ Project exists, mode: standalone, system-prompt.md missing?
30
- │ → ACTION: GENERATE FROM SCRATCH (Step 2)
88
+ ├─ <project-name> exists, standalone, system-prompt.md missing?
89
+ │ → ACTION: GENERATE (Step 2)
31
90
 
32
- ├─ Project exists, mode: standalone, system-prompt.md exists, platform outputs missing?
91
+ ├─ <project-name> exists, standalone, platform outputs missing?
33
92
  │ → ACTION: CONDENSE (Step 3)
34
93
 
35
- ├─ Project exists, mode: standalone, all files present?
36
- │ → ACTION: VALIDATE + offer to regenerate (Step 4)
37
-
38
- ├─ Project exists, mode: compiled?
39
- │ → ACTION: COMPILE (Step 4)
94
+ ├─ <project-name> exists, all files present?
95
+ │ → ACTION: VALIDATE (Step 4)
40
96
 
41
- └─ --sync flag?
42
- → ACTION: SYNC ALL (Step 5)
97
+ └─ <project-name> — exists, compiled?
98
+ → ACTION: COMPILE (Step 4)
43
99
  ```
44
100
 
45
101
  ---
@@ -48,73 +104,86 @@ When invoked with a project name, detect the right action:
48
104
 
49
105
  **Triggered when:** project folder doesn't exist.
50
106
 
51
- ### 1a. Core intake (always ask)
107
+ ### 1a. Single-question intake
52
108
 
53
- 1. **Description** "Describe this project in one sentence."
109
+ Ask ONE question: **"Describe this project in 1-2 sentences."**
54
110
 
55
- 2. **Role** "Who is the AI in this project?"
56
- - Show available identity blocks: `node bin/prompt-blocks.js --category identity`
57
- - User can pick one OR describe a custom role
111
+ That's it. Infer everything else using the inference engine below.
58
112
 
59
- 3. **Target platforms**"Which platforms will you deploy to?"
60
- - Multi-select: Claude Projects, Perplexity Spaces, Claude Code
61
- - Default: Claude Projects + Perplexity Spaces
113
+ ### 1b. Inference enginederive config from description
62
114
 
63
- 4. **Complexity** Based on the description, recommend a mode:
64
- - Simple/standard project → **compiled** (block-based, continue to 1b)
65
- - Complex multi-role agent → **standalone** with AI generation (continue to 1c)
66
- - User already has a prompt → **standalone** paste-in (scaffold folder, skip to Step 3)
115
+ Run these rules against the description to auto-populate the project config:
67
116
 
68
- ### 1b. Compiled project setup
117
+ **Role inference** (keywords identity block):
118
+ - "architect", "design", "infrastructure", "cloud", "azure", "aws" → `solutions-architect`
119
+ - "engineer", "developer", "code", "build", "implement" → `senior-engineer`
120
+ - "research", "analysis", "investigate", "study" → `research-partner`
121
+ - "capture", "proposal", "federal", "deal", "RFP", "maximus" → `federal-deal-sa` (use `maximus-sa` profile)
122
+ - No match → `solutions-architect` (default)
69
123
 
70
- 5. **Domain expertise** Show available domain blocks:
71
- ```bash
72
- node bin/prompt-blocks.js --category domains
73
- ```
74
- User picks from list or describes custom domains.
75
- For custom domains: create a new block file at `prompts/blocks/domains/<id>.md`.
124
+ **Domain inference** (keywords domain blocks):
125
+ - "cloud", "azure", "aws", "terraform", "infrastructure" → `cloud-infrastructure`
126
+ - "federal", "govcon", "government", "compliance", "FedRAMP" → `govcon`
127
+ - "web", "react", "frontend", "UI", "design" → `web-development`
128
+ - "capture", "proposal", "RFP", "deal" `govcon-capture`, `govcon-proposal`
129
+ - No existing block match standalone mode (AI generates custom domain content from research)
130
+
131
+ **Platform inference:**
132
+ - Default: Claude Projects + Perplexity Spaces
133
+ - Add Claude Code if description contains: "code", "repo", "implement", "build", "develop", "engineering", "CLI"
134
+ - Perplexity-only if description contains: "research only", "analysis only", "investigation"
135
+
136
+ **Mode inference:**
137
+ - If description triggers `maximus-sa` profile → compiled with `maximus-sa`
138
+ - If ≥2 existing domain blocks match → compiled with matched blocks
139
+ - If description suggests multi-role, custom workflow, or complex agent → standalone
140
+ - If no domain blocks match → standalone with AI generation (Perplexity fills the gap)
141
+ - Default for unknown domains → standalone
76
142
 
77
- 6. **Research domains** (if Perplexity selected) — "What topics should Perplexity prioritize?"
78
- Suggest based on selected domains. User accepts or customizes.
143
+ **Research domain inference:**
144
+ - Derive from description keywords + matched domain names
145
+ - For standalone: use the full description as research seed
146
+ - Always generate at least 2 research queries
147
+
148
+ ### 1c. Show confirmation card
149
+
150
+ Instead of asking more questions, show what was inferred:
151
+
152
+ ```
153
+ Project: <project-name>
154
+
155
+ Role: <inferred identity block or "custom via research">
156
+ Domains: <matched blocks or "custom — AI-generated from research">
157
+ Platforms: <inferred list>
158
+ Mode: <compiled | standalone>
159
+ Profile: <matched profile or "none — custom blocks">
160
+ Research: <inferred research topics>
161
+ Knowledge: auto-generate from research
162
+
163
+ [Proceed] [Edit]
164
+ ```
79
165
 
80
- 7. **Knowledge files** "Reference documents to upload alongside? (compliance matrices, standards, playbooks)"
166
+ - **Proceed** run full pipeline (scaffold research generate → condense → results)
167
+ - **Edit** → ask ONE targeted follow-up on the specific field to change
81
168
 
82
- 8. **Claude Code extras** (only if Claude Code selected) — tech stack, commands, git identity
169
+ ### 1d. Build project and run pipeline
83
170
 
84
- 9. **Build project folder:**
171
+ After confirmation:
172
+
173
+ 1. **Scaffold folder:**
85
174
  ```bash
86
175
  mkdir -p prompts/projects/<project-name>/references
87
176
  ```
88
177
 
89
- Write `prompt-config.yaml`:
90
- ```yaml
91
- project: <project-name>
92
- description: <from intake>
93
- mode: compiled
94
- version: "1.0"
95
- platforms: [claude-project, perplexity-space]
96
- profile: null
97
- blocks:
98
- identity: [<matched-block>]
99
- domains: [<selected-blocks>]
100
- behaviors: []
101
- formats: []
102
- context: [<auto-selected by platform>]
103
- research_domains: [<from intake>]
104
- knowledge_files: [<from intake>]
105
- ```
106
-
107
- **Auto-add context blocks by platform:**
108
- - Perplexity → `official-docs-first`, `flag-confidence`
109
- - Claude Code → `vault-integration`, `mcp-servers`, `praxis-workflow`
110
-
111
- 10. **Compile:** `node bin/prompt-compile.js <project-name>`
178
+ 2. **Write `prompt-config.yaml`** with inferred values
112
179
 
113
- 11. Go to **Step 4** (results + deployment)
180
+ 3. **If compiled mode:** `node bin/prompt-compile.js <project-name>` Step 4
114
181
 
115
- ### 1c. Standalone project with AI generation
182
+ 4. **If standalone mode:** Step 2 (Perplexity research + generation)
116
183
 
117
- Go to **Step 2** (generate from scratch)
184
+ **Auto-add context blocks by platform (compiled mode):**
185
+ - Perplexity → `official-docs-first`, `flag-confidence`
186
+ - Claude Code → `vault-integration`, `mcp-servers`, `praxis-workflow`
118
187
 
119
188
  ---
120
189
 
@@ -122,15 +191,13 @@ When invoked with a project name, detect the right action:
122
191
 
123
192
  **Triggered when:** standalone project exists but `system-prompt.md` is empty/missing, OR user explicitly requests generation.
124
193
 
125
- ### 2a. Intake (if not already gathered in Step 1)
194
+ ### 2a. Use inference from Step 1
126
195
 
127
- 1. **Description** 2-3 sentences about the project
128
- 2. **Role** primary AI responsibility
129
- 3. **Domains** — expertise areas (free-form, not limited to existing blocks)
130
- 4. **Key behaviors** rules beyond defaults
131
- 5. **Target audience** who reads the output
132
- 6. **Knowledge files** — reference documents
133
- 7. **Target platforms** — deployment targets
196
+ All intake was gathered in Step 1 (description inference engine confirmation card).
197
+ Do NOT ask additional questions here. Use the confirmed config from Step 1c.
198
+
199
+ The description provides: role, domains, audience, platforms.
200
+ Behaviors default from `_base`. Knowledge files auto-generate from research.
134
201
 
135
202
  ### 2b. Domain research via Perplexity
136
203
 
@@ -158,7 +225,7 @@ If Perplexity unavailable: state "Domain research could not be completed — pro
158
225
 
159
226
  ### 2c. Generate system-prompt.md
160
227
 
161
- Using intake + Perplexity research, generate following the 5-layer skeleton:
228
+ Using intake + Perplexity research, generate following the 7-layer skeleton:
162
229
 
163
230
  ```markdown
164
231
  ---
@@ -189,15 +256,41 @@ generated_by: px-prompt
189
256
  ## Knowledge Interaction Rules
190
257
  [How to use reference files, when to cite, quote-before-answer]
191
258
 
192
- ## Accuracy Standards
193
- - Flag confidence levels when synthesizing across sources
194
- - Distinguish verified facts from analytical inferences
195
- - If sources disagree, cite both and explain the discrepancy
196
- - Never fabricate version numbers, citations, or references
197
- - When information may be outdated, note this explicitly
259
+ ## Reasoning Approach
260
+ Think step-by-step through complex problems. Break work into clear phases:
261
+ 1. **Understand** Restate the question to confirm what's being asked
262
+ 2. **Research** Check knowledge files and sources before forming an answer
263
+ 3. **Analyze** Evaluate options, weigh tradeoffs, identify risks
264
+ 4. **Recommend** Present a clear recommendation with rationale
265
+ 5. **Verify** — Self-check: does the answer address the actual question? Are claims sourced?
266
+
267
+ For multi-step tasks, complete each step fully before moving to the next. Do not skip ahead or assume intermediate results. Show your reasoning when the logic matters — hide it when the answer is straightforward.
268
+
269
+ ## Quality Controls
270
+ ### Source Verification
271
+ - Cross-reference claims against uploaded knowledge files before presenting as fact
272
+ - When synthesizing from multiple sources, flag any contradictions
273
+ - Distinguish between: verified (from knowledge files), corroborated (multiple sources agree), inferred (logical deduction), and speculative (educated guess)
274
+
275
+ ### Anti-Hallucination Protocol
276
+ - Never fabricate version numbers, dates, statistics, citations, URLs, or API signatures
277
+ - If you cannot find a specific fact in knowledge files or your training data, say so — do not approximate
278
+ - When quoting standards, frameworks, or regulations: cite the specific document name and section
279
+ - If a user asks about something not covered in knowledge files, explicitly state "this is not covered in the provided references" before offering general knowledge
280
+ - For numerical claims (costs, timelines, metrics): only state numbers you can trace to a source
281
+ - When information may be outdated (>12 months), flag it: "As of [date], [claim] — verify for current status"
282
+
283
+ ### Output Quality
284
+ - Every recommendation includes rationale and tradeoffs
285
+ - Tables for comparisons, not paragraphs
286
+ - Structured outputs: use headers, bullets, numbered steps — not walls of text
287
+ - Lead with the answer, then the reasoning — not the other way around
288
+ - Every deliverable has a clear structure: BLUF (bottom line), body (evidence/analysis), next steps (actions)
289
+ - Self-check before delivering: Does this answer the specific question? Are all claims sourced? Is the structure scannable?
198
290
 
199
291
  ## When Uncertain
200
292
  State uncertainty explicitly. Ask one clarifying question rather than guessing.
293
+ Flag confidence level: HIGH (verified from sources), MEDIUM (corroborated), LOW (inferred or speculative).
201
294
  ```
202
295
 
203
296
  **Generation rules:**
@@ -205,7 +298,8 @@ State uncertainty explicitly. Ask one clarifying question rather than guessing.
205
298
  - Positive framing: "Do X" over "Don't do Y"
206
299
  - No few-shot examples (breaks Perplexity)
207
300
  - Under 5,000 characters
208
- - Include Accuracy Standards + When Uncertain (mandatory)
301
+ - Quality Controls + When Uncertain sections are **mandatory** — never omit
302
+ - Anti-Hallucination Protocol is **mandatory** in all generated prompts
209
303
 
210
304
  Write to `prompts/projects/<project-name>/system-prompt.md`.
211
305
 
@@ -213,19 +307,69 @@ Write to `prompts/projects/<project-name>/system-prompt.md`.
213
307
 
214
308
  → Go to **Step 3** (condense to platform outputs)
215
309
 
310
+ ### 2e. Generate knowledge files from Perplexity research
311
+
312
+ **Always runs by default** after prompt generation. Do not ask — just generate.
313
+ If the user declined in the confirmation card, skip this step.
314
+
315
+ For each research domain:
316
+
317
+ 1. Run deep Perplexity queries per domain:
318
+ ```
319
+ perplexity_research: "Comprehensive overview of [domain]:
320
+ key concepts, current standards, best practices, common terminology,
321
+ frameworks, tools, and workflows. Include specific version numbers,
322
+ dates, and authoritative sources."
323
+ ```
324
+
325
+ 2. Structure findings into a knowledge file:
326
+ ```markdown
327
+ ---
328
+ domain: [domain-name]
329
+ generated: [today]
330
+ source: perplexity-research
331
+ ---
332
+
333
+ # [Domain] — Reference Guide
334
+
335
+ ## Key Concepts & Terminology
336
+ [Terms with definitions from research]
337
+
338
+ ## Current Standards & Frameworks
339
+ [Standards with version numbers and dates]
340
+
341
+ ## Best Practices
342
+ [Actionable practices from research]
343
+
344
+ ## Common Workflows
345
+ [Step-by-step workflows from research]
346
+
347
+ ## Tools & Technologies
348
+ [Relevant tools with current versions]
349
+
350
+ ## Sources
351
+ [Citations from Perplexity research]
352
+ ```
353
+
354
+ 3. Write to `prompts/projects/<project-name>/references/<domain-slug>.md`
355
+
356
+ 4. Update `prompt-config.yaml` knowledge_files list
357
+
358
+ **Budget awareness:** Each knowledge file should be under 10,000 chars for Claude Projects upload limits. Split large domains into multiple files if needed.
359
+
216
360
  ---
217
361
 
218
362
  ## Step 3 — CONDENSE: Generate platform outputs from system-prompt.md
219
363
 
220
- **Triggered when:** standalone project has `system-prompt.md` but missing `space-instructions.md` or `CLAUDE.md`.
364
+ **Triggered when:** standalone project has `system-prompt.md` but missing `space-instructions-perplexity.md` or `CLAUDE.md`.
221
365
 
222
366
  Read the full `system-prompt.md` as source.
223
367
 
224
368
  ### 3a. Generate Perplexity Space instructions
225
369
 
226
- **Target:** `space-instructions.md` | **Budget:** under 4,000 chars
370
+ **Target:** `space-instructions-perplexity.md` | **Budget:** under 4,000 chars
227
371
 
228
- **Include:** identity, domain expertise, research domains, source priority, answer format, key frameworks (by name only)
372
+ **Include:** identity, domain expertise, research domains, source priority, answer format, key frameworks (by name only), reasoning approach, accuracy standards, anti-hallucination rules
229
373
  **Exclude:** internal templates, scoring matrices, reference file content, deployment details, full tables
230
374
 
231
375
  **Output format:**
@@ -235,7 +379,27 @@ Read the full `system-prompt.md` as source.
235
379
  ## Research Domains
236
380
  ## Source Priority
237
381
  ## How to Answer
238
- ## Accuracy Standards
382
+ ## Reasoning Approach
383
+ ## Quality & Accuracy Standards
384
+ ```
385
+
386
+ **Mandatory reasoning section for Perplexity outputs:**
387
+ ```markdown
388
+ ## Reasoning Approach
389
+ Think step-by-step: Understand the question → search sources → analyze findings → recommend with rationale → verify claims are sourced. Lead with the answer, then the evidence. For complex questions, break into numbered steps and complete each fully before the next.
390
+ ```
391
+
392
+ **Mandatory quality section for Perplexity outputs:**
393
+ ```markdown
394
+ ## Quality & Accuracy Standards
395
+ - Flag confidence level: HIGH (multiple sources confirm), MEDIUM (single source), LOW (inferred)
396
+ - Never fabricate version numbers, statistics, citations, or URLs
397
+ - If sources disagree, cite both and explain the discrepancy
398
+ - When information may be outdated (>12 months), note the publication date
399
+ - If you cannot find reliable sources, state that clearly rather than speculating
400
+ - Distinguish verified facts from analytical inferences
401
+ - Lead with the bottom line, then supporting evidence
402
+ - Structure every response: answer first, reasoning second, sources third
239
403
  ```
240
404
 
241
405
  **Perplexity guardrails:**
@@ -248,7 +412,7 @@ Read the full `system-prompt.md` as source.
248
412
 
249
413
  **Target:** `CLAUDE.md` | **Budget:** under 250 lines
250
414
 
251
- **Include:** identity, behaviors, domain expertise, frameworks (one-line each), operating modes, quality controls
415
+ **Include:** identity, behaviors, domain expertise, frameworks (one-line each), operating modes, quality controls, anti-hallucination rules
252
416
  **Exclude:** full scoring matrices, templates, reference file content, corporate data tables
253
417
 
254
418
  **Output format:**
@@ -269,10 +433,18 @@ Read the full `system-prompt.md` as source.
269
433
  - Self-check block for quality-critical outputs
270
434
  - Reference knowledge files by filename only
271
435
 
272
- ### 3c. Validate budgets
436
+ ### 3c. Generate Claude Desktop project instructions (if Claude Projects is a target platform)
437
+
438
+ **Target:** `project-instructions-claude-desktop.md` | **Budget:** under 2,500 chars
439
+
440
+ **Include:** role, behavioral constraints, domain expertise (condensed), output format, quality controls, when uncertain
441
+ **Exclude:** full domain details (those go in knowledge files), reference content, deployment details
442
+
443
+ ### 3d. Validate budgets
273
444
 
274
445
  After generating, check:
275
- - `space-instructions.md` under 4,000 chars
446
+ - `space-instructions-perplexity.md` under 4,000 chars
447
+ - `project-instructions-claude-desktop.md` under 2,500 chars
276
448
  - `CLAUDE.md` under 250 lines
277
449
 
278
450
  If over budget: flag and suggest sections to trim.
@@ -293,26 +465,26 @@ node bin/prompt-compile.js <project-name>
293
465
  ### 4b. Show results table
294
466
 
295
467
  ```
296
- | Output | Chars | Budget | Status |
297
- |----------------------|--------|--------|--------|
298
- | system-prompt.md | X | — | Source |
299
- | project-instructions | X | 2,500 | OK |
300
- | space-instructions | X | 4,000 | OK |
301
- | CLAUDE.md | X lines| 250 ln | OK |
302
- | references/ | N files| — | Upload |
468
+ | Output | Chars | Budget | Status |
469
+ |------------------------------------------|--------|--------|--------|
470
+ | system-prompt.md | X | — | Source |
471
+ | project-instructions-claude-desktop.md | X | 2,500 | OK |
472
+ | space-instructions-perplexity.md | X | 4,000 | OK |
473
+ | CLAUDE.md | X lines| 250 ln | OK |
474
+ | references/ | N files| — | Upload |
303
475
  ```
304
476
 
305
477
  ### 4c. Deployment instructions
306
478
 
307
- **Claude Projects (claude.ai):**
479
+ **Claude Desktop / Projects (claude.ai):**
308
480
  1. Open project at claude.ai/projects → "Set project instructions"
309
- 2. Standalone: paste `system-prompt.md` | Compiled: paste `project-instructions.md`
481
+ 2. Standalone: paste `system-prompt.md` | Compiled: paste `project-instructions-claude-desktop.md`
310
482
  3. If `references/` exists: upload each `.md` file as project knowledge
311
483
  4. Save
312
484
 
313
485
  **Perplexity Spaces:**
314
486
  1. Open Space → Settings → Answer Instructions
315
- 2. Paste `space-instructions.md`
487
+ 2. Paste `space-instructions-perplexity.md`
316
488
  3. Save
317
489
 
318
490
  **Claude Code:**
@@ -321,6 +493,8 @@ node bin/prompt-compile.js <project-name>
321
493
  ### 4d. Offer next actions
322
494
  - "Edit the prompt? I'll regenerate platform outputs after."
323
495
  - "Want to regenerate? Run `/px-prompt <project-name>` again."
496
+ - "Generate knowledge files from research? I'll create reference docs from Perplexity."
497
+ - "Scan project folder for recommended changes? Run `/px-prompt --scan <project-name>`."
324
498
 
325
499
  ---
326
500
 
@@ -334,10 +508,10 @@ node bin/prompt-compile.js --all --diff
334
508
 
335
509
  Show summary table:
336
510
  ```
337
- | Project | CLAUDE.md | Project Instr. | Space Instr. | Changes |
338
- |---------|-----------|----------------|--------------|---------|
339
- | praxis | 3,534 | 1,316 ✓ | 1,529 ✓ | none |
340
- | maximus | — | — | 3,977 ✓ | standalone |
511
+ | Project | CLAUDE.md | Claude Desktop | Perplexity | Changes |
512
+ |--------------|-----------|-------------------|------------------|------------|
513
+ | praxis | 3,534 | 1,316 ✓ | 1,529 ✓ | none |
514
+ | maximus | — | — | 3,977 ✓ | standalone |
341
515
  ```
342
516
 
343
517
  For standalone projects, report validation status instead of compilation status.
@@ -346,18 +520,654 @@ Print deployment reminders for any project with changes.
346
520
 
347
521
  ---
348
522
 
523
+ ## Step 6 — SCAN & EDIT: Analyze and update existing project prompts
524
+
525
+ **Triggered when:** `/px-prompt --scan <project-name>` or user asks to review/update existing prompts.
526
+
527
+ ### 6a. Read all project files
528
+ 1. Read `prompt-config.yaml` for project metadata
529
+ 2. Read `system-prompt.md` (source of truth)
530
+ 3. Read all platform outputs (`space-instructions-perplexity.md`, `project-instructions-claude-desktop.md`, `CLAUDE.md`)
531
+ 4. Read all files in `references/` directory
532
+ 5. List any other files in the project folder
533
+
534
+ ### 6b. Analyze for issues
535
+ Check each file against these criteria:
536
+
537
+ **Quality checks:**
538
+ - Does system-prompt.md include Quality Controls section?
539
+ - Does system-prompt.md include Anti-Hallucination Protocol?
540
+ - Does system-prompt.md include When Uncertain section?
541
+ - Are platform outputs in sync with system-prompt.md content?
542
+ - Are file naming conventions correct (platform suffixes)?
543
+ - Are all referenced knowledge files present in references/?
544
+
545
+ **Budget checks:**
546
+ - `space-instructions-perplexity.md` under 4,000 chars?
547
+ - `project-instructions-claude-desktop.md` under 2,500 chars?
548
+ - `CLAUDE.md` under 250 lines?
549
+
550
+ **Currency checks (via Perplexity):**
551
+ - Are domain-specific terms, standards, and versions still current?
552
+ - Have any referenced frameworks been updated or renamed?
553
+
554
+ ### 6c. Present findings and offer edits
555
+ Show a structured report:
556
+ ```
557
+ | Check | Status | Details |
558
+ |---------------------------|--------|-----------------------------------|
559
+ | Quality Controls section | PASS | Present in system-prompt.md |
560
+ | Anti-Hallucination | FAIL | Missing — will add |
561
+ | Budget: Perplexity | PASS | 2,392 / 4,000 chars |
562
+ | File naming | FAIL | Uses old convention — will rename |
563
+ | Knowledge files | WARN | 0 reference files — consider adding |
564
+ ```
565
+
566
+ For each FAIL:
567
+ - Show the specific fix needed
568
+ - Apply the fix (with user confirmation for content changes)
569
+ - Regenerate affected platform outputs
570
+
571
+ ### 6d. Reference existing files for future changes
572
+ After scanning, maintain awareness of:
573
+ - Which sections of the prompt cover which domains
574
+ - What knowledge files exist and what they contain
575
+ - What the version history looks like (from prompt-config.yaml)
576
+
577
+ Use this context when the user asks for changes — edit in place rather than regenerating from scratch.
578
+
579
+ ---
580
+
581
+ ## Step 7 — DEAL: Fast-path for Maximus capture deals
582
+
583
+ **Triggered when:** `/px-prompt --deal <deal-name>`
584
+
585
+ This is the fastest path for the most common task: creating a new Maximus capture deal.
586
+ **Zero questions asked** — Perplexity researches the deal from the name alone.
587
+
588
+ ### 7a. Deal name + optional type
589
+
590
+ The deal name IS the research query. Optional `--type` sets the deal template.
591
+
592
+ ```
593
+ /px-prompt --deal irs-masterfile
594
+ /px-prompt --deal irs-masterfile --type recompete
595
+ /px-prompt --deal benefeds --type idiq
596
+ /px-prompt --deal dha-tricare --type new-start
597
+ ```
598
+
599
+ If no `--type` given, Perplexity research determines the type automatically (incumbent found = recompete, no incumbent = new-start, IDIQ/BPA language = task-order).
600
+
601
+ If the user provides additional context alongside the name (e.g., `/px-prompt --deal irs-masterfile "IRS Individual Masterfile modernization, current incumbent Accenture"`), use it to seed the research. Otherwise, research from the name alone.
602
+
603
+ ### Deal Type Templates
604
+
605
+ Each deal type activates different emphasis in the compiled output and research priorities:
606
+
607
+ **Recompete** (`--type recompete`)
608
+ - Incumbent defense: Remind → Reveal → Reimagine activated
609
+ - Ghost theme matrix pre-seeded for incumbent weaknesses
610
+ - Research priority: incumbent CPARS, protest history, pain points
611
+ - Transition emphasis: continuity of operations, Day-1 readiness, retained mission knowledge
612
+ - Scoring weight: Past Performance and Customer Relationship weighted higher
613
+ - Phase start: Mid Capture (incumbent already has intel advantage)
614
+
615
+ **New Start** (`--type new-start`)
616
+ - Discovery-first: OSINT-heavy, agency mission deep dive
617
+ - No incumbent to ghost — focus on innovation and fresh approach
618
+ - Research priority: agency strategic plan, IG/GAO findings, budget trends, technology landscape
619
+ - Solution emphasis: differentiated approach, not transition continuity
620
+ - Scoring weight: Technical Approach and Solution Readiness weighted higher
621
+ - Phase start: Shaping
622
+
623
+ **Task Order** (`--type task-order`)
624
+ - Vehicle-constrained: must map to existing IDIQ/BPA/GWACs scope
625
+ - Fast timeline: typically 30-60 day turnaround
626
+ - Research priority: task order history on the vehicle, rates, ceiling remaining
627
+ - Emphasis: price competitiveness, rapid staffing, past performance on same vehicle
628
+ - Scoring weight: Price and Past Performance weighted higher
629
+ - Phase start: Mid Capture (vehicle already won)
630
+
631
+ **IDIQ/BPA Pursuit** (`--type idiq`)
632
+ - Long-game: win the vehicle, compete TOs later
633
+ - Research priority: vehicle scope, evaluation criteria, small business targets
634
+ - Emphasis: broad capabilities, teaming strategy, rate structure
635
+ - Scoring weight: Technical Approach and Management Plan weighted higher
636
+ - Phase start: Shaping
637
+
638
+ The deal type is stored in `prompt-config.yaml` as `deal_type` and influences:
639
+ 1. Which Perplexity queries run (research priority above)
640
+ 2. The initial capture phase set in the deal config
641
+ 3. Which sections of the scorecard are weighted in gate reviews
642
+ 4. The Perplexity Space research domains (type-specific sources)
643
+
644
+ ### 7b. Research the deal via Perplexity (mandatory)
645
+
646
+ Run these queries in parallel to build the deal intelligence:
647
+
648
+ **Query 1 — Contract & procurement data:**
649
+ ```
650
+ perplexity_research: "<deal-name> federal contract. Search SAM.gov,
651
+ USASpending.gov, FPDS.gov, GovWin. Find: agency, program office,
652
+ contract type, vehicle, NAICS, set-aside, estimated value,
653
+ period of performance, current status, solicitation number."
654
+ ```
655
+
656
+ **Query 2 — Incumbent & competitive landscape:**
657
+ ```
658
+ perplexity_research: "<deal-name> incumbent contractor. Who currently
659
+ holds this contract? Contract value, CPARS ratings if available,
660
+ key subcontractors, known competitors pursuing recompete.
661
+ Search GovConWire, Washington Technology, Bloomberg Government,
662
+ 10-K filings, protest history on GAO.gov."
663
+ ```
664
+
665
+ **Query 3 — Agency mission & pain points:**
666
+ ```
667
+ perplexity_ask: "What is the mission context for <deal-name>?
668
+ Agency strategic plan priorities, relevant IG/GAO findings,
669
+ congressional testimony, budget trends, technology modernization
670
+ initiatives. What problems is the agency trying to solve?"
671
+ ```
672
+
673
+ **Query 4 — Maximus positioning:**
674
+ ```
675
+ perplexity_search: "Maximus Inc <agency from Q1> past performance
676
+ contracts site:usaspending.gov OR site:sam.gov"
677
+ ```
678
+
679
+ **Source priority for deal research:**
680
+ 1. SAM.gov — active solicitations, contract awards, vendor registrations
681
+ 2. USASpending.gov — contract values, spending history, awardees
682
+ 3. FPDS.gov — detailed procurement records, contract modifications
683
+ 4. GovWin IQ — opportunity tracking, competitive intelligence (if accessible)
684
+ 5. Bloomberg Government (BGOV) — contract analytics, market intelligence
685
+ 6. GovConWire / Washington Technology — industry news, award announcements
686
+ 7. GAO.gov — protest decisions, audit findings
687
+ 8. Agency strategic plans & budget justifications — mission context
688
+ 9. SEC 10-K filings — competitor revenue, backlog, strategy statements
689
+
690
+ If Perplexity cannot find data for a field, mark it `[RESEARCH NEEDED]` — not TBD.
691
+
692
+ ### 7c. Build deal context from research
693
+
694
+ Structure Perplexity findings into a deal intelligence file:
695
+
696
+ ```markdown
697
+ ---
698
+ deal: <deal-name>
699
+ generated: <today>
700
+ source: perplexity-research
701
+ confidence: <HIGH if SAM.gov/FPDS data found, MEDIUM if news only, LOW if inferred>
702
+ ---
703
+
704
+ # Deal Intelligence: <deal-name>
705
+
706
+ ## Opportunity Profile
707
+ | Field | Value | Source |
708
+ |-------|-------|--------|
709
+ | Agency | <from research> | <source> |
710
+ | Program | <from research> | <source> |
711
+ | Solicitation # | <if found> | SAM.gov |
712
+ | Contract Type | <from research> | <source> |
713
+ | Vehicle | <from research> | <source> |
714
+ | NAICS | <from research> | <source> |
715
+ | Set-Aside | <from research> | <source> |
716
+ | Estimated Value | <from research> | <source> |
717
+ | POP | <from research> | <source> |
718
+ | Status | <from research> | <source> |
719
+
720
+ ## Incumbent & Competition
721
+ | Competitor | Role | Contract Value | CPARS | Strengths | Weaknesses |
722
+ |-----------|------|---------------|-------|-----------|------------|
723
+ | <incumbent> | Incumbent | <value> | <rating> | <from research> | <from research> |
724
+ | <competitor 2> | Challenger | — | — | <from research> | <from research> |
725
+
726
+ ## Agency Mission Context
727
+ <Pain points, strategic priorities, IG/GAO findings from Query 3>
728
+
729
+ ## Maximus Positioning
730
+ <Existing contracts at this agency, relevant past performance, platform fit from Query 4>
731
+
732
+ ## Research Gaps
733
+ <Fields marked [RESEARCH NEEDED] — what couldn't be found and where to look manually>
734
+
735
+ ## Sources
736
+ <Citations from all Perplexity queries>
737
+ ```
738
+
739
+ Write to `prompts/projects/<deal-name>/references/<deal-name>-intel.md`
740
+
741
+ ### 7d. Auto-scaffold with maximus-sa
742
+
743
+ 1. `mkdir -p prompts/projects/<deal-name>/references`
744
+ 2. Write `prompt-config.yaml`:
745
+ - Profile: `maximus-sa`
746
+ - `deal_type`: from `--type` flag or auto-detected from research (incumbent found → recompete, none → new-start)
747
+ - `capture_phase`: initial phase based on deal type (see template table above)
748
+ - `knowledge_packs`: deal-context + corporate-reference, vars populated from research
749
+ - `overrides.perplexity_space_append.research_domains`: **deal-specific** research domains (see 7f)
750
+ 3. Write deal intel to `references/<deal-name>-intel.md`
751
+ 4. Compile: `node bin/prompt-compile.js <deal-name>`
752
+ 5. Render knowledge packs: `node bin/prompt-knowledge.js <deal-name>`
753
+
754
+ ### 7e. Show confirmation card with research findings
755
+
756
+ ```
757
+ DEAL: irs-masterfile
758
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
759
+ Agency: IRS (from USASpending)
760
+ Program: Individual Masterfile Modernization
761
+ Incumbent: Accenture Federal Services (from FPDS)
762
+ Value: $2.1B ceiling (from SAM.gov)
763
+ Type: recompete (auto-detected — incumbent found)
764
+ Phase: Mid Capture
765
+ NAICS: 541512
766
+ Vehicle: GSA Alliant 2
767
+ Status: Active — recompete expected FY2026
768
+ Confidence: HIGH (SAM.gov + FPDS data)
769
+
770
+ Maximus PP: 2 contracts at IRS (from USASpending)
771
+ Gaps: Key personnel [RESEARCH NEEDED]
772
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
773
+ Files created:
774
+ ✓ CLAUDE.md (31,646 chars)
775
+ ✓ space-instructions-perplexity.md (3,976 chars) — deal-specific research domains
776
+ ✓ references/irs-masterfile-intel.md
777
+ ✓ knowledge/deal-context.md
778
+ ✓ knowledge/maximus-corporate.md
779
+
780
+ [Deploy] [Advance phase] [Edit intel] [Re-research]
781
+ ```
782
+
783
+ ### 7f. Per-deal Perplexity Space instructions
784
+
785
+ The compiled `space-instructions-perplexity.md` includes the standard Maximus SA persona, but the **Research Domains** section is customized per deal using `perplexity_space_append.research_domains` in the project config.
786
+
787
+ **Auto-generate research domains from deal type + agency:**
788
+
789
+ For **recompete** deals:
790
+ ```yaml
791
+ research_domains: |
792
+ - <agency> <program> contract history, modifications, and performance (USASpending, FPDS)
793
+ - <incumbent> federal performance, CPARS, protest history, recent awards
794
+ - <agency> strategic plan, IG reports, GAO findings, budget justifications
795
+ - <agency> technology modernization initiatives, cloud migration, IT spend
796
+ - Maximus past performance and existing relationships at <agency>
797
+ - Competitive landscape: who else is pursuing <program> recompete
798
+ ```
799
+
800
+ For **new-start** deals:
801
+ ```yaml
802
+ research_domains: |
803
+ - <agency> mission priorities, strategic plan, leadership agenda
804
+ - <agency> IG/GAO findings related to <program area>
805
+ - <program area> technology landscape, vendor market, innovation trends
806
+ - Congressional testimony and budget trends for <agency>
807
+ - Maximus capabilities and past performance in <program area>
808
+ - Similar programs at other agencies — lessons learned, best practices
809
+ ```
810
+
811
+ For **task-order** deals:
812
+ ```yaml
813
+ research_domains: |
814
+ - <vehicle> task order history, award patterns, ceiling status
815
+ - <agency> recent task orders on <vehicle>, evaluation preferences
816
+ - Competitor rates and staffing patterns on <vehicle>
817
+ - <program> scope, deliverables, and performance standards
818
+ - Maximus existing task orders on <vehicle>
819
+ ```
820
+
821
+ This means each deal's Perplexity Space is tuned to research THAT deal's specific intelligence needs.
822
+
823
+ **Total: 0 questions → deal name only → Perplexity fills everything → compiled project + deal-specific intel + per-deal research space + all outputs.**
824
+
825
+ ---
826
+
827
+ ## Step 8 — EDIT: Targeted edit with auto-regeneration
828
+
829
+ **Triggered when:** `/px-prompt --edit <project-name> "<change description>"`
830
+
831
+ ### 8a. Read current state
832
+
833
+ 1. Read `prompt-config.yaml` to determine mode (compiled vs standalone)
834
+ 2. Read the source file:
835
+ - Compiled: read the relevant block files based on what the change targets
836
+ - Standalone: read `system-prompt.md`
837
+ 3. Read all platform outputs for comparison
838
+
839
+ ### 8b. Apply the targeted edit
840
+
841
+ Based on the change description, identify which section(s) to modify:
842
+
843
+ **For standalone projects:**
844
+ 1. Edit `system-prompt.md` — apply the change to the specific section
845
+ 2. Auto-regenerate all platform outputs (Step 3)
846
+ 3. Show diff of what changed in each file
847
+
848
+ **For compiled projects:**
849
+ 1. Identify which block file contains the content to change
850
+ 2. Edit the block file (both FULL and CONDENSED variants)
851
+ 3. Re-compile: `node bin/prompt-compile.js <project-name> --diff`
852
+ 4. Show diff of what changed
853
+
854
+ ### 8c. Report
855
+
856
+ ```
857
+ EDIT APPLIED
858
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
859
+ Changed: <file(s) modified>
860
+ Regenerated: <platform outputs updated>
861
+ Budget: perplexity ✓ | claude-desktop ✓ | CLAUDE.md ✓
862
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
863
+ ```
864
+
865
+ **Examples:**
866
+ - `/px-prompt --edit elect-azure "Add VITA SEC530 cybersecurity standard to domain expertise"`
867
+ - `/px-prompt --edit maximus "Update CEO to new name"`
868
+ - `/px-prompt --edit praxis "Add Python to tech stack"`
869
+
870
+ ---
871
+
872
+ ## Step 9 — DASHBOARD: Project index with status
873
+
874
+ **Triggered when:** `/px-prompt --dashboard`
875
+
876
+ ### 9a. Gather data
877
+
878
+ ```bash
879
+ node bin/prompt-compile.js --dashboard
880
+ ```
881
+
882
+ ### 9b. Show dashboard
883
+
884
+ ```
885
+ PROMPT ENGINE DASHBOARD
886
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
887
+ Project Mode Perplexity Claude Proj CLAUDE.md Refs Updated Stale?
888
+ ─────────────────────────────────────────────────────────────────────────────────────────
889
+ maximus compiled 3,976 ✓ 4,261 ⚠ 30,665 ✓ 4 2026-04-04 No
890
+ elect-azure standalone 2,392 ✓ — 3,098 ✓ 0 2026-04-04 No
891
+ praxis compiled 1,626 ✓ 1,404 ✓ 3,417 ✓ 0 2026-04-04 No
892
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
893
+
894
+ Staleness: projects not updated in >30 days marked stale.
895
+ Budgets: ✓ under budget, ⚠ over soft budget, ✗ over hard budget.
896
+ ```
897
+
898
+ ### 9c. Offer actions for flagged projects
899
+
900
+ For stale projects: "Run `/px-prompt --refresh <name>` to update research."
901
+ For over-budget: "Run `/px-prompt --edit <name>` to trim."
902
+ For missing outputs: "Run `/px-prompt <name>` to generate."
903
+
904
+ ---
905
+
906
+ ## Step 10 — REFRESH: Re-run Perplexity research and update
907
+
908
+ **Triggered when:** `/px-prompt --refresh <project-name>`
909
+
910
+ ### 10a. Read current project
911
+
912
+ 1. Read `prompt-config.yaml` for research domains and mode
913
+ 2. Read current `system-prompt.md` (standalone) or relevant block files (compiled)
914
+ 3. Note the current domain expertise content
915
+
916
+ ### 10b. Re-run Perplexity research
917
+
918
+ For each research domain (from config or inferred from prompt content):
919
+
920
+ ```
921
+ perplexity_ask: "What are the current best practices and standards for [domain]
922
+ in 2025-2026? Focus on changes since [last updated date].
923
+ Key terminology updates, new frameworks, deprecated standards."
924
+ ```
925
+
926
+ ### 10c. Diff and propose updates
927
+
928
+ Compare research findings against current prompt content:
929
+
930
+ ```
931
+ REFRESH REPORT: <project-name>
932
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
933
+ Domain: cloud-infrastructure
934
+ Current: "Azure Well-Architected Framework (5 pillars)"
935
+ Updated: "Azure Well-Architected Framework (6 pillars — Sustainability added 2025)"
936
+ → SUGGEST: Update Domain Expertise section
937
+
938
+ Domain: govcon
939
+ Current: "CMMC 2.0"
940
+ Updated: "CMMC 2.0 — Final Rule effective Dec 2024, Level 2 assessments active"
941
+ → SUGGEST: Add CMMC enforcement timeline
942
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
943
+ ```
944
+
945
+ ### 10d. Apply updates
946
+
947
+ For each suggested update, show the change and apply:
948
+ - Standalone: edit `system-prompt.md`, regenerate platform outputs
949
+ - Compiled: edit relevant block file(s), recompile
950
+ - Knowledge files: regenerate from fresh research
951
+
952
+ Update the `version` field in `prompt-config.yaml` and `last_updated` timestamp.
953
+
954
+ ---
955
+
956
+ ## Step 11 — DEPLOY: Copy outputs with deployment URLs
957
+
958
+ **Triggered when:** `/px-prompt --deploy <project-name>`
959
+
960
+ ### 11a. Read project config
961
+
962
+ Determine which platforms are targets from `prompt-config.yaml`.
963
+
964
+ ### 11b. Deploy sequence (per platform)
965
+
966
+ **For Claude Projects / Desktop:**
967
+ 1. Read `system-prompt.md` (standalone) or `project-instructions-claude-desktop.md` (compiled)
968
+ 2. Copy content to clipboard: `cat <file> | pbcopy`
969
+ 3. Print: "Copied to clipboard. Paste at: claude.ai/projects → Set project instructions"
970
+ 4. List knowledge files to upload: all `.md` files from `references/` AND `knowledge/`
971
+ 5. Print upload instructions: "Upload these as project knowledge files (drag & drop):"
972
+
973
+ **For Perplexity Spaces:**
974
+ 1. Read `space-instructions-perplexity.md`
975
+ 2. Copy content to clipboard: `cat <file> | pbcopy`
976
+ 3. Print: "Copied to clipboard. Paste at: perplexity.ai → Space Settings → Answer Instructions"
977
+ 4. List knowledge files to upload as Space sources: all `.md` files from `references/` AND `knowledge/`
978
+ 5. Print: "Upload these as Space sources (Add Sources → Files):"
979
+ 6. **Same knowledge files work for both Claude Projects and Perplexity Spaces** — upload the same set to both
980
+
981
+ **For Claude Code:**
982
+ 1. If project has a `repo_root` in vars: `cp CLAUDE.md <repo_root>/CLAUDE.md`
983
+ 2. Print: "CLAUDE.md copied to repo root."
984
+ 3. If no repo_root: "Copy CLAUDE.md to your project repo root manually."
985
+
986
+ ### 11c. Deploy one platform at a time
987
+
988
+ Since clipboard can only hold one thing, deploy sequentially:
989
+
990
+ ```
991
+ DEPLOY: dha-tricare
992
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
993
+
994
+ [1/3] Claude Projects
995
+ → Copied system-prompt.md to clipboard (5,824 chars)
996
+ → Paste at: claude.ai/projects → Set project instructions
997
+
998
+ Upload these as project knowledge files:
999
+ references/dha-tricare-intel.md (deal intelligence)
1000
+ knowledge/deal-context.md (deal context)
1001
+ knowledge/maximus-corporate.md (corporate reference)
1002
+ Press Enter when done...
1003
+
1004
+ [2/3] Perplexity Spaces
1005
+ → Copied space-instructions-perplexity.md to clipboard (3,965 chars)
1006
+ → Paste at: perplexity.ai → Space Settings → Answer Instructions
1007
+
1008
+ Upload these as Space sources (Add Sources → Files):
1009
+ references/dha-tricare-intel.md (deal intelligence)
1010
+ knowledge/deal-context.md (deal context)
1011
+ knowledge/maximus-corporate.md (corporate reference)
1012
+ Press Enter when done...
1013
+
1014
+ [3/3] Claude Code
1015
+ → CLAUDE.md → /path/to/repo/CLAUDE.md
1016
+ Done.
1017
+
1018
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1019
+ DEPLOYED to 3 platforms.
1020
+ Knowledge files uploaded to BOTH Claude Projects and Perplexity Spaces.
1021
+ ```
1022
+
1023
+ ---
1024
+
1025
+ ## Step 12 — ADVANCE: Move deal to next capture phase
1026
+
1027
+ **Triggered when:** `/px-prompt --advance <deal-name>`
1028
+
1029
+ Deals progress through the PAMASI lifecycle. This command advances the deal to the next phase, updates scoring expectations, runs phase-appropriate research, and flags what's missing.
1030
+
1031
+ ### 12a. Read current deal state
1032
+
1033
+ 1. Read `prompt-config.yaml` — get `capture_phase` and `deal_type`
1034
+ 2. Read `references/<deal-name>-intel.md` — current intelligence
1035
+ 3. Read latest compiled outputs — current scoring context
1036
+
1037
+ ### 12b. Determine next phase
1038
+
1039
+ | Current Phase | Next Phase | Gate Criteria |
1040
+ |--------------|------------|---------------|
1041
+ | Shaping | Mid Capture | PAMASI at P→A. Sections I + XI GREEN. |
1042
+ | Mid Capture | Pre-Proposal | PAMASI at A→M→S. All 11 GREEN at mid-capture level. |
1043
+ | Pre-Proposal | Pre-Submission | PAMASI at S→I. All 11 GREEN at proposal level. Red Team complete. |
1044
+ | Pre-Submission | Orals | Zero deficiencies. All findings resolved. Compliance verified. |
1045
+ | Orals | Post-Submit | Q&A matrix complete. Presentations rehearsed. |
1046
+
1047
+ ### 12c. Run phase-transition Perplexity research
1048
+
1049
+ Each phase transition triggers different research:
1050
+
1051
+ **Shaping → Mid Capture:**
1052
+ ```
1053
+ perplexity_research: "<deal-name> latest developments. New solicitation
1054
+ activity on SAM.gov, draft RFP, industry day announcements, Q&A responses,
1055
+ amendment history. Search SAM.gov, GovConWire, agency procurement forecasts."
1056
+ ```
1057
+
1058
+ **Mid Capture → Pre-Proposal:**
1059
+ ```
1060
+ perplexity_research: "<deal-name> RFP release. Final solicitation,
1061
+ evaluation criteria, Section L/M structure, proposal due date,
1062
+ Q&A deadline, amendment status. Search SAM.gov, beta.sam.gov."
1063
+ ```
1064
+
1065
+ **Pre-Proposal → Pre-Submission:**
1066
+ ```
1067
+ perplexity_research: "<deal-name> competitor activity. Who submitted
1068
+ questions? Protest signals? Teaming announcements? Rate benchmarks
1069
+ for <NAICS>. Search GovConWire, Bloomberg Government, GAO.gov."
1070
+ ```
1071
+
1072
+ **Pre-Submission → Orals:**
1073
+ ```
1074
+ perplexity_ask: "For <agency> <program>, what are the most common
1075
+ oral presentation evaluation criteria and question patterns?
1076
+ Recent oral presentations at <agency> — format, duration, topics."
1077
+ ```
1078
+
1079
+ ### 12d. Update deal config and outputs
1080
+
1081
+ 1. Update `capture_phase` in `prompt-config.yaml`
1082
+ 2. Update deal intel with new research findings
1083
+ 3. Recompile: `node bin/prompt-compile.js <deal-name> --diff`
1084
+ 4. Update Perplexity Space research domains for the new phase
1085
+ 5. Regenerate knowledge packs if deal context changed
1086
+
1087
+ ### 12e. Show phase transition report
1088
+
1089
+ ```
1090
+ PHASE ADVANCE: irs-masterfile
1091
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1092
+ Previous: Shaping
1093
+ Current: Mid Capture
1094
+ PAMASI: P → A (Approach stage)
1095
+ Deal Type: recompete
1096
+
1097
+ Gate Check (Shaping → Mid Capture):
1098
+ I Customer & Mission ✓ GREEN
1099
+ XI Competitive ✓ GREEN
1100
+ II Architecture ○ Not yet scored (expected at Mid Capture)
1101
+
1102
+ New Intel:
1103
+ • Draft RFP posted on SAM.gov (2026-03-15)
1104
+ • Industry day scheduled for April 20
1105
+ • Amendment 1 added CMMC L2 requirement
1106
+
1107
+ Updated Files:
1108
+ ✓ prompt-config.yaml (phase: Mid Capture)
1109
+ ✓ references/irs-masterfile-intel.md (new findings appended)
1110
+ ✓ space-instructions-perplexity.md (research domains updated)
1111
+
1112
+ Next Gate: Pre-Proposal — requires all 11 GREEN at mid-capture level
1113
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1114
+ ```
1115
+
1116
+ ### 12f. Flag missing items for next gate
1117
+
1118
+ After advancing, check what's needed for the NEXT gate and flag gaps:
1119
+
1120
+ ```
1121
+ NEXT GATE CHECKLIST: Pre-Proposal
1122
+ □ Solution architecture (Section II) — not started
1123
+ □ Staffing model (Section X) — not started
1124
+ □ Risk register (Section VII) — not started
1125
+ □ Win themes with FBP proof (Section XI) — 1 of 3 complete
1126
+ □ Competitive ghost matrix — not started
1127
+
1128
+ 5 items needed before Pre-Proposal gate.
1129
+ Run /px-prompt --advance irs-masterfile when ready.
1130
+ ```
1131
+
1132
+ ---
1133
+
349
1134
  ## Rules
350
1135
 
351
1136
  ### Always
352
1137
  - `_base` behaviors (no-flattery, verify, recommend, handle-uncertainty) are included in every project — non-negotiable
1138
+ - Quality Controls section with Anti-Hallucination Protocol is **mandatory** in all generated prompts
353
1139
  - Accuracy Standards section is mandatory in all Perplexity outputs
354
- - When Uncertain section is mandatory in all Claude Project outputs
1140
+ - When Uncertain section with confidence levels is mandatory in all outputs
355
1141
  - Never ask for repo URL, vault path, or git email unless Claude Code is a target platform
1142
+ - **Never hardcode project names in menus or options** — discover dynamically
356
1143
 
357
1144
  ### Platform-specific
358
1145
  - **Perplexity**: no few-shot examples, no URLs, conditional language, search-friendly terms
359
1146
  - **Claude Code**: positive framing, no "CRITICAL YOU MUST", self-check blocks
360
- - **Claude Projects**: 5-layer skeleton (Role, Constraints, Format, Knowledge Rules, Failure Handling)
1147
+ - **Claude Desktop / Projects**: 7-layer skeleton (Role, Constraints, Expertise, Format, Knowledge Rules, Quality Controls, When Uncertain)
1148
+
1149
+ ### File naming
1150
+ - **Always** use platform-suffixed filenames: `space-instructions-perplexity.md`, `project-instructions-claude-desktop.md`
1151
+ - `CLAUDE.md` keeps its name (convention for Claude Code)
1152
+ - `system-prompt.md` keeps its name (it's the source of truth, not platform-specific)
1153
+
1154
+ ### Quality defaults (mandatory in all generated prompts)
1155
+ - Anti-Hallucination Protocol: never fabricate, cite sources, flag confidence, distinguish fact from inference
1156
+ - Source Verification: cross-reference knowledge files, flag contradictions
1157
+ - Output Quality: rationale with recommendations, structured outputs, self-check before delivery
1158
+ - Confidence Levels: HIGH (verified), MEDIUM (corroborated), LOW (inferred/speculative)
1159
+
1160
+ ### Knowledge file generation
1161
+ - Always generate knowledge files from Perplexity research by default — don't ask
1162
+ - Each knowledge file under 10,000 chars (Claude Projects upload limit)
1163
+ - Structure: Key Concepts, Standards, Best Practices, Workflows, Tools, Sources
1164
+ - Write to `references/<domain-slug>.md`
1165
+
1166
+ ### Project folder scanning
1167
+ - Read all existing project files before suggesting changes
1168
+ - Edit in place rather than regenerating when the user requests specific changes
1169
+ - Track what each section covers so future edits are surgical
1170
+ - Flag outdated terminology, missing quality sections, budget overruns
361
1171
 
362
1172
  ### Generation
363
1173
  - ALWAYS run Perplexity research before generating system prompts (Step 2)
@@ -365,9 +1175,9 @@ Print deployment reminders for any project with changes.
365
1175
  - Generated prompts are starting points — tell user to review and refine
366
1176
  - If Perplexity unavailable: proceed with training data, flag for review
367
1177
 
368
- ### Block matching (compiled mode)
369
- - Role identity block: "architect" `solutions-architect`, "engineer" `senior-engineer`, "researcher" `research-partner`
370
- - Domain keywords domain blocks: "cloud/azure/aws"`cloud-infrastructure`, "federal/govcon" `govcon`, "web/react" `web-development`
371
- - If no match: create custom block on the fly
372
- - Auto-add `official-docs-first` + `flag-confidence` for Perplexity targets
373
- - Auto-add `vault-integration` + `mcp-servers` + `praxis-workflow` for Claude Code targets
1178
+ ### Inference and block matching
1179
+ - See Step 1b for full inference rules (role, domain, platform, mode, research domains)
1180
+ - If no domain blocks matchstandalone mode with AI generation, not compiled with empty blocks
1181
+ - Auto-add `official-docs-first` + `flag-confidence` for Perplexity targets (compiled mode)
1182
+ - Auto-add `vault-integration` + `mcp-servers` + `praxis-workflow` for Claude Code targets (compiled mode)
1183
+ - **Maximum 1 question** for new projects (description). Show confirmation card, not a questionnaire.