@esoteric-logic/praxis-harness 2.16.0 → 2.17.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.
- package/base/skills/px-prompt/SKILL.md +234 -32
- package/bin/prompt-compile.js +7 -7
- package/package.json +1 -1
- package/prompts/projects/elect-azure/CLAUDE.md +61 -0
- package/prompts/projects/elect-azure/prompt-config.yaml +16 -0
- package/prompts/projects/elect-azure/space-instructions-perplexity.md +39 -0
- package/prompts/projects/elect-azure/system-prompt.md +72 -0
- /package/prompts/projects/maximus/{space-instructions.md → space-instructions-perplexity.md} +0 -0
- /package/prompts/projects/praxis/{project-instructions.md → project-instructions-claude-desktop.md} +0 -0
- /package/prompts/projects/praxis/{space-instructions.md → space-instructions-perplexity.md} +0 -0
|
@@ -13,6 +13,35 @@ Single entry point for the prompt engine. Detects what needs to happen based on
|
|
|
13
13
|
- `/px-prompt <project-name>` — create, generate, or regenerate a project's prompts
|
|
14
14
|
- `/px-prompt --sync` — recompile all projects, report diffs and budgets
|
|
15
15
|
- `/px-prompt --list` — list all projects and their status
|
|
16
|
+
- `/px-prompt --scan <project-name>` — scan project folder, suggest edits to existing prompts
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Initial Menu Behavior
|
|
21
|
+
|
|
22
|
+
**NEVER hardcode individual project names in the initial options menu.**
|
|
23
|
+
When the user runs `/px-prompt` without arguments, show ONLY these generic options:
|
|
24
|
+
1. Create new project
|
|
25
|
+
2. Sync all projects
|
|
26
|
+
3. Work on existing project → THEN dynamically list projects from `node bin/prompt-compile.js --list`
|
|
27
|
+
|
|
28
|
+
Do NOT show "Work on praxis" or "Work on maximus" or any project name — the engine is project-agnostic. Discover projects dynamically at runtime.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Output File Naming Convention
|
|
33
|
+
|
|
34
|
+
Platform outputs use suffixed filenames so users can distinguish them at a glance:
|
|
35
|
+
|
|
36
|
+
| Platform | Output Filename | Budget |
|
|
37
|
+
|----------|----------------|--------|
|
|
38
|
+
| Source (Claude Projects) | `system-prompt.md` | 5,000 chars |
|
|
39
|
+
| Claude Desktop / Projects | `project-instructions-claude-desktop.md` | 2,500 chars |
|
|
40
|
+
| Perplexity Spaces | `space-instructions-perplexity.md` | 4,000 chars |
|
|
41
|
+
| Claude Code | `CLAUDE.md` | 250 lines |
|
|
42
|
+
|
|
43
|
+
All output files live in `prompts/projects/<project-name>/`.
|
|
44
|
+
Reference/knowledge files live in `prompts/projects/<project-name>/references/`.
|
|
16
45
|
|
|
17
46
|
---
|
|
18
47
|
|
|
@@ -38,6 +67,9 @@ When invoked with a project name, detect the right action:
|
|
|
38
67
|
├─ Project exists, mode: compiled?
|
|
39
68
|
│ → ACTION: COMPILE (Step 4)
|
|
40
69
|
│
|
|
70
|
+
├─ --scan flag?
|
|
71
|
+
│ → ACTION: SCAN & EDIT (Step 6)
|
|
72
|
+
│
|
|
41
73
|
└─ --sync flag?
|
|
42
74
|
→ ACTION: SYNC ALL (Step 5)
|
|
43
75
|
```
|
|
@@ -78,6 +110,8 @@ When invoked with a project name, detect the right action:
|
|
|
78
110
|
Suggest based on selected domains. User accepts or customizes.
|
|
79
111
|
|
|
80
112
|
7. **Knowledge files** — "Reference documents to upload alongside? (compliance matrices, standards, playbooks)"
|
|
113
|
+
- User can provide paths to existing files
|
|
114
|
+
- OR request Perplexity-generated knowledge files (see Step 2e)
|
|
81
115
|
|
|
82
116
|
8. **Claude Code extras** (only if Claude Code selected) — tech stack, commands, git identity
|
|
83
117
|
|
|
@@ -129,7 +163,7 @@ When invoked with a project name, detect the right action:
|
|
|
129
163
|
3. **Domains** — expertise areas (free-form, not limited to existing blocks)
|
|
130
164
|
4. **Key behaviors** — rules beyond defaults
|
|
131
165
|
5. **Target audience** — who reads the output
|
|
132
|
-
6. **Knowledge files** — reference documents
|
|
166
|
+
6. **Knowledge files** — reference documents (existing or to be generated)
|
|
133
167
|
7. **Target platforms** — deployment targets
|
|
134
168
|
|
|
135
169
|
### 2b. Domain research via Perplexity
|
|
@@ -158,7 +192,7 @@ If Perplexity unavailable: state "Domain research could not be completed — pro
|
|
|
158
192
|
|
|
159
193
|
### 2c. Generate system-prompt.md
|
|
160
194
|
|
|
161
|
-
Using intake + Perplexity research, generate following the
|
|
195
|
+
Using intake + Perplexity research, generate following the 7-layer skeleton:
|
|
162
196
|
|
|
163
197
|
```markdown
|
|
164
198
|
---
|
|
@@ -189,15 +223,29 @@ generated_by: px-prompt
|
|
|
189
223
|
## Knowledge Interaction Rules
|
|
190
224
|
[How to use reference files, when to cite, quote-before-answer]
|
|
191
225
|
|
|
192
|
-
##
|
|
193
|
-
|
|
194
|
-
-
|
|
195
|
-
-
|
|
196
|
-
-
|
|
197
|
-
|
|
226
|
+
## Quality Controls
|
|
227
|
+
### Source Verification
|
|
228
|
+
- Cross-reference claims against uploaded knowledge files before presenting as fact
|
|
229
|
+
- When synthesizing from multiple sources, flag any contradictions
|
|
230
|
+
- Distinguish between: verified (from knowledge files), corroborated (multiple sources agree), inferred (logical deduction), and speculative (educated guess)
|
|
231
|
+
|
|
232
|
+
### Anti-Hallucination Protocol
|
|
233
|
+
- Never fabricate version numbers, dates, statistics, citations, URLs, or API signatures
|
|
234
|
+
- If you cannot find a specific fact in knowledge files or your training data, say so — do not approximate
|
|
235
|
+
- When quoting standards, frameworks, or regulations: cite the specific document name and section
|
|
236
|
+
- 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
|
|
237
|
+
- For numerical claims (costs, timelines, metrics): only state numbers you can trace to a source
|
|
238
|
+
- When information may be outdated (>12 months), flag it: "As of [date], [claim] — verify for current status"
|
|
239
|
+
|
|
240
|
+
### Output Quality
|
|
241
|
+
- Every recommendation includes rationale and tradeoffs
|
|
242
|
+
- Tables for comparisons, not paragraphs
|
|
243
|
+
- Structured outputs: use headers, bullets, numbered steps — not walls of text
|
|
244
|
+
- Self-check: before delivering, verify your response answers the specific question asked
|
|
198
245
|
|
|
199
246
|
## When Uncertain
|
|
200
247
|
State uncertainty explicitly. Ask one clarifying question rather than guessing.
|
|
248
|
+
Flag confidence level: HIGH (verified from sources), MEDIUM (corroborated), LOW (inferred or speculative).
|
|
201
249
|
```
|
|
202
250
|
|
|
203
251
|
**Generation rules:**
|
|
@@ -205,7 +253,8 @@ State uncertainty explicitly. Ask one clarifying question rather than guessing.
|
|
|
205
253
|
- Positive framing: "Do X" over "Don't do Y"
|
|
206
254
|
- No few-shot examples (breaks Perplexity)
|
|
207
255
|
- Under 5,000 characters
|
|
208
|
-
-
|
|
256
|
+
- Quality Controls + When Uncertain sections are **mandatory** — never omit
|
|
257
|
+
- Anti-Hallucination Protocol is **mandatory** in all generated prompts
|
|
209
258
|
|
|
210
259
|
Write to `prompts/projects/<project-name>/system-prompt.md`.
|
|
211
260
|
|
|
@@ -213,19 +262,68 @@ Write to `prompts/projects/<project-name>/system-prompt.md`.
|
|
|
213
262
|
|
|
214
263
|
→ Go to **Step 3** (condense to platform outputs)
|
|
215
264
|
|
|
265
|
+
### 2e. Generate knowledge files from Perplexity research
|
|
266
|
+
|
|
267
|
+
**Triggered when:** user requests knowledge file generation during intake, OR after prompt generation when domain research produced rich findings.
|
|
268
|
+
|
|
269
|
+
For each research domain, ask the user if they want a knowledge file generated:
|
|
270
|
+
|
|
271
|
+
1. Run deep Perplexity queries per domain:
|
|
272
|
+
```
|
|
273
|
+
perplexity_research: "Comprehensive overview of [domain]:
|
|
274
|
+
key concepts, current standards, best practices, common terminology,
|
|
275
|
+
frameworks, tools, and workflows. Include specific version numbers,
|
|
276
|
+
dates, and authoritative sources."
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
2. Structure findings into a knowledge file:
|
|
280
|
+
```markdown
|
|
281
|
+
---
|
|
282
|
+
domain: [domain-name]
|
|
283
|
+
generated: [today]
|
|
284
|
+
source: perplexity-research
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
# [Domain] — Reference Guide
|
|
288
|
+
|
|
289
|
+
## Key Concepts & Terminology
|
|
290
|
+
[Terms with definitions from research]
|
|
291
|
+
|
|
292
|
+
## Current Standards & Frameworks
|
|
293
|
+
[Standards with version numbers and dates]
|
|
294
|
+
|
|
295
|
+
## Best Practices
|
|
296
|
+
[Actionable practices from research]
|
|
297
|
+
|
|
298
|
+
## Common Workflows
|
|
299
|
+
[Step-by-step workflows from research]
|
|
300
|
+
|
|
301
|
+
## Tools & Technologies
|
|
302
|
+
[Relevant tools with current versions]
|
|
303
|
+
|
|
304
|
+
## Sources
|
|
305
|
+
[Citations from Perplexity research]
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
3. Write to `prompts/projects/<project-name>/references/<domain-slug>.md`
|
|
309
|
+
|
|
310
|
+
4. Update `prompt-config.yaml` knowledge_files list
|
|
311
|
+
|
|
312
|
+
**Budget awareness:** Each knowledge file should be under 10,000 chars for Claude Projects upload limits. Split large domains into multiple files if needed.
|
|
313
|
+
|
|
216
314
|
---
|
|
217
315
|
|
|
218
316
|
## Step 3 — CONDENSE: Generate platform outputs from system-prompt.md
|
|
219
317
|
|
|
220
|
-
**Triggered when:** standalone project has `system-prompt.md` but missing `space-instructions.md` or `CLAUDE.md`.
|
|
318
|
+
**Triggered when:** standalone project has `system-prompt.md` but missing `space-instructions-perplexity.md` or `CLAUDE.md`.
|
|
221
319
|
|
|
222
320
|
Read the full `system-prompt.md` as source.
|
|
223
321
|
|
|
224
322
|
### 3a. Generate Perplexity Space instructions
|
|
225
323
|
|
|
226
|
-
**Target:** `space-instructions.md` | **Budget:** under 4,000 chars
|
|
324
|
+
**Target:** `space-instructions-perplexity.md` | **Budget:** under 4,000 chars
|
|
227
325
|
|
|
228
|
-
**Include:** identity, domain expertise, research domains, source priority, answer format, key frameworks (by name only)
|
|
326
|
+
**Include:** identity, domain expertise, research domains, source priority, answer format, key frameworks (by name only), accuracy standards, anti-hallucination rules
|
|
229
327
|
**Exclude:** internal templates, scoring matrices, reference file content, deployment details, full tables
|
|
230
328
|
|
|
231
329
|
**Output format:**
|
|
@@ -235,7 +333,18 @@ Read the full `system-prompt.md` as source.
|
|
|
235
333
|
## Research Domains
|
|
236
334
|
## Source Priority
|
|
237
335
|
## How to Answer
|
|
238
|
-
## Accuracy Standards
|
|
336
|
+
## Quality & Accuracy Standards
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
**Mandatory quality section for Perplexity outputs:**
|
|
340
|
+
```markdown
|
|
341
|
+
## Quality & Accuracy Standards
|
|
342
|
+
- Flag confidence level: HIGH (multiple sources confirm), MEDIUM (single source), LOW (inferred)
|
|
343
|
+
- Never fabricate version numbers, statistics, citations, or URLs
|
|
344
|
+
- If sources disagree, cite both and explain the discrepancy
|
|
345
|
+
- When information may be outdated (>12 months), note the publication date
|
|
346
|
+
- If you cannot find reliable sources, state that clearly rather than speculating
|
|
347
|
+
- Distinguish verified facts from analytical inferences
|
|
239
348
|
```
|
|
240
349
|
|
|
241
350
|
**Perplexity guardrails:**
|
|
@@ -248,7 +357,7 @@ Read the full `system-prompt.md` as source.
|
|
|
248
357
|
|
|
249
358
|
**Target:** `CLAUDE.md` | **Budget:** under 250 lines
|
|
250
359
|
|
|
251
|
-
**Include:** identity, behaviors, domain expertise, frameworks (one-line each), operating modes, quality controls
|
|
360
|
+
**Include:** identity, behaviors, domain expertise, frameworks (one-line each), operating modes, quality controls, anti-hallucination rules
|
|
252
361
|
**Exclude:** full scoring matrices, templates, reference file content, corporate data tables
|
|
253
362
|
|
|
254
363
|
**Output format:**
|
|
@@ -269,10 +378,18 @@ Read the full `system-prompt.md` as source.
|
|
|
269
378
|
- Self-check block for quality-critical outputs
|
|
270
379
|
- Reference knowledge files by filename only
|
|
271
380
|
|
|
272
|
-
### 3c.
|
|
381
|
+
### 3c. Generate Claude Desktop project instructions (if Claude Projects is a target platform)
|
|
382
|
+
|
|
383
|
+
**Target:** `project-instructions-claude-desktop.md` | **Budget:** under 2,500 chars
|
|
384
|
+
|
|
385
|
+
**Include:** role, behavioral constraints, domain expertise (condensed), output format, quality controls, when uncertain
|
|
386
|
+
**Exclude:** full domain details (those go in knowledge files), reference content, deployment details
|
|
387
|
+
|
|
388
|
+
### 3d. Validate budgets
|
|
273
389
|
|
|
274
390
|
After generating, check:
|
|
275
|
-
- `space-instructions.md` under 4,000 chars
|
|
391
|
+
- `space-instructions-perplexity.md` under 4,000 chars
|
|
392
|
+
- `project-instructions-claude-desktop.md` under 2,500 chars
|
|
276
393
|
- `CLAUDE.md` under 250 lines
|
|
277
394
|
|
|
278
395
|
If over budget: flag and suggest sections to trim.
|
|
@@ -293,26 +410,26 @@ node bin/prompt-compile.js <project-name>
|
|
|
293
410
|
### 4b. Show results table
|
|
294
411
|
|
|
295
412
|
```
|
|
296
|
-
| Output
|
|
297
|
-
|
|
298
|
-
| system-prompt.md
|
|
299
|
-
| project-instructions
|
|
300
|
-
| space-instructions
|
|
301
|
-
| CLAUDE.md
|
|
302
|
-
| references/
|
|
413
|
+
| Output | Chars | Budget | Status |
|
|
414
|
+
|------------------------------------------|--------|--------|--------|
|
|
415
|
+
| system-prompt.md | X | — | Source |
|
|
416
|
+
| project-instructions-claude-desktop.md | X | 2,500 | OK |
|
|
417
|
+
| space-instructions-perplexity.md | X | 4,000 | OK |
|
|
418
|
+
| CLAUDE.md | X lines| 250 ln | OK |
|
|
419
|
+
| references/ | N files| — | Upload |
|
|
303
420
|
```
|
|
304
421
|
|
|
305
422
|
### 4c. Deployment instructions
|
|
306
423
|
|
|
307
|
-
**Claude Projects (claude.ai):**
|
|
424
|
+
**Claude Desktop / Projects (claude.ai):**
|
|
308
425
|
1. Open project at claude.ai/projects → "Set project instructions"
|
|
309
|
-
2. Standalone: paste `system-prompt.md` | Compiled: paste `project-instructions.md`
|
|
426
|
+
2. Standalone: paste `system-prompt.md` | Compiled: paste `project-instructions-claude-desktop.md`
|
|
310
427
|
3. If `references/` exists: upload each `.md` file as project knowledge
|
|
311
428
|
4. Save
|
|
312
429
|
|
|
313
430
|
**Perplexity Spaces:**
|
|
314
431
|
1. Open Space → Settings → Answer Instructions
|
|
315
|
-
2. Paste `space-instructions.md`
|
|
432
|
+
2. Paste `space-instructions-perplexity.md`
|
|
316
433
|
3. Save
|
|
317
434
|
|
|
318
435
|
**Claude Code:**
|
|
@@ -321,6 +438,8 @@ node bin/prompt-compile.js <project-name>
|
|
|
321
438
|
### 4d. Offer next actions
|
|
322
439
|
- "Edit the prompt? I'll regenerate platform outputs after."
|
|
323
440
|
- "Want to regenerate? Run `/px-prompt <project-name>` again."
|
|
441
|
+
- "Generate knowledge files from research? I'll create reference docs from Perplexity."
|
|
442
|
+
- "Scan project folder for recommended changes? Run `/px-prompt --scan <project-name>`."
|
|
324
443
|
|
|
325
444
|
---
|
|
326
445
|
|
|
@@ -334,10 +453,10 @@ node bin/prompt-compile.js --all --diff
|
|
|
334
453
|
|
|
335
454
|
Show summary table:
|
|
336
455
|
```
|
|
337
|
-
| Project
|
|
338
|
-
|
|
339
|
-
| praxis
|
|
340
|
-
| maximus
|
|
456
|
+
| Project | CLAUDE.md | Claude Desktop | Perplexity | Changes |
|
|
457
|
+
|--------------|-----------|-------------------|------------------|------------|
|
|
458
|
+
| praxis | 3,534 | 1,316 ✓ | 1,529 ✓ | none |
|
|
459
|
+
| maximus | — | — | 3,977 ✓ | standalone |
|
|
341
460
|
```
|
|
342
461
|
|
|
343
462
|
For standalone projects, report validation status instead of compilation status.
|
|
@@ -346,18 +465,101 @@ Print deployment reminders for any project with changes.
|
|
|
346
465
|
|
|
347
466
|
---
|
|
348
467
|
|
|
468
|
+
## Step 6 — SCAN & EDIT: Analyze and update existing project prompts
|
|
469
|
+
|
|
470
|
+
**Triggered when:** `/px-prompt --scan <project-name>` or user asks to review/update existing prompts.
|
|
471
|
+
|
|
472
|
+
### 6a. Read all project files
|
|
473
|
+
1. Read `prompt-config.yaml` for project metadata
|
|
474
|
+
2. Read `system-prompt.md` (source of truth)
|
|
475
|
+
3. Read all platform outputs (`space-instructions-perplexity.md`, `project-instructions-claude-desktop.md`, `CLAUDE.md`)
|
|
476
|
+
4. Read all files in `references/` directory
|
|
477
|
+
5. List any other files in the project folder
|
|
478
|
+
|
|
479
|
+
### 6b. Analyze for issues
|
|
480
|
+
Check each file against these criteria:
|
|
481
|
+
|
|
482
|
+
**Quality checks:**
|
|
483
|
+
- Does system-prompt.md include Quality Controls section?
|
|
484
|
+
- Does system-prompt.md include Anti-Hallucination Protocol?
|
|
485
|
+
- Does system-prompt.md include When Uncertain section?
|
|
486
|
+
- Are platform outputs in sync with system-prompt.md content?
|
|
487
|
+
- Are file naming conventions correct (platform suffixes)?
|
|
488
|
+
- Are all referenced knowledge files present in references/?
|
|
489
|
+
|
|
490
|
+
**Budget checks:**
|
|
491
|
+
- `space-instructions-perplexity.md` under 4,000 chars?
|
|
492
|
+
- `project-instructions-claude-desktop.md` under 2,500 chars?
|
|
493
|
+
- `CLAUDE.md` under 250 lines?
|
|
494
|
+
|
|
495
|
+
**Currency checks (via Perplexity):**
|
|
496
|
+
- Are domain-specific terms, standards, and versions still current?
|
|
497
|
+
- Have any referenced frameworks been updated or renamed?
|
|
498
|
+
|
|
499
|
+
### 6c. Present findings and offer edits
|
|
500
|
+
Show a structured report:
|
|
501
|
+
```
|
|
502
|
+
| Check | Status | Details |
|
|
503
|
+
|---------------------------|--------|-----------------------------------|
|
|
504
|
+
| Quality Controls section | PASS | Present in system-prompt.md |
|
|
505
|
+
| Anti-Hallucination | FAIL | Missing — will add |
|
|
506
|
+
| Budget: Perplexity | PASS | 2,392 / 4,000 chars |
|
|
507
|
+
| File naming | FAIL | Uses old convention — will rename |
|
|
508
|
+
| Knowledge files | WARN | 0 reference files — consider adding |
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
For each FAIL:
|
|
512
|
+
- Show the specific fix needed
|
|
513
|
+
- Apply the fix (with user confirmation for content changes)
|
|
514
|
+
- Regenerate affected platform outputs
|
|
515
|
+
|
|
516
|
+
### 6d. Reference existing files for future changes
|
|
517
|
+
After scanning, maintain awareness of:
|
|
518
|
+
- Which sections of the prompt cover which domains
|
|
519
|
+
- What knowledge files exist and what they contain
|
|
520
|
+
- What the version history looks like (from prompt-config.yaml)
|
|
521
|
+
|
|
522
|
+
Use this context when the user asks for changes — edit in place rather than regenerating from scratch.
|
|
523
|
+
|
|
524
|
+
---
|
|
525
|
+
|
|
349
526
|
## Rules
|
|
350
527
|
|
|
351
528
|
### Always
|
|
352
529
|
- `_base` behaviors (no-flattery, verify, recommend, handle-uncertainty) are included in every project — non-negotiable
|
|
530
|
+
- Quality Controls section with Anti-Hallucination Protocol is **mandatory** in all generated prompts
|
|
353
531
|
- Accuracy Standards section is mandatory in all Perplexity outputs
|
|
354
|
-
- When Uncertain section is mandatory in all
|
|
532
|
+
- When Uncertain section with confidence levels is mandatory in all outputs
|
|
355
533
|
- Never ask for repo URL, vault path, or git email unless Claude Code is a target platform
|
|
534
|
+
- **Never hardcode project names in menus or options** — discover dynamically
|
|
356
535
|
|
|
357
536
|
### Platform-specific
|
|
358
537
|
- **Perplexity**: no few-shot examples, no URLs, conditional language, search-friendly terms
|
|
359
538
|
- **Claude Code**: positive framing, no "CRITICAL YOU MUST", self-check blocks
|
|
360
|
-
- **Claude Projects**:
|
|
539
|
+
- **Claude Desktop / Projects**: 7-layer skeleton (Role, Constraints, Expertise, Format, Knowledge Rules, Quality Controls, When Uncertain)
|
|
540
|
+
|
|
541
|
+
### File naming
|
|
542
|
+
- **Always** use platform-suffixed filenames: `space-instructions-perplexity.md`, `project-instructions-claude-desktop.md`
|
|
543
|
+
- `CLAUDE.md` keeps its name (convention for Claude Code)
|
|
544
|
+
- `system-prompt.md` keeps its name (it's the source of truth, not platform-specific)
|
|
545
|
+
|
|
546
|
+
### Quality defaults (mandatory in all generated prompts)
|
|
547
|
+
- Anti-Hallucination Protocol: never fabricate, cite sources, flag confidence, distinguish fact from inference
|
|
548
|
+
- Source Verification: cross-reference knowledge files, flag contradictions
|
|
549
|
+
- Output Quality: rationale with recommendations, structured outputs, self-check before delivery
|
|
550
|
+
- Confidence Levels: HIGH (verified), MEDIUM (corroborated), LOW (inferred/speculative)
|
|
551
|
+
|
|
552
|
+
### Knowledge file generation
|
|
553
|
+
- Offer to generate knowledge files from Perplexity research during project creation
|
|
554
|
+
- Each knowledge file under 10,000 chars (Claude Projects upload limit)
|
|
555
|
+
- Structure: Key Concepts, Standards, Best Practices, Workflows, Tools, Sources
|
|
556
|
+
- Write to `references/<domain-slug>.md`
|
|
557
|
+
|
|
558
|
+
### Project folder scanning
|
|
559
|
+
- Read all existing project files before suggesting changes
|
|
560
|
+
- Edit in place rather than regenerating when the user requests specific changes
|
|
561
|
+
- Track what each section covers so future edits are surgical
|
|
562
|
+
- Flag outdated terminology, missing quality sections, budget overruns
|
|
361
563
|
|
|
362
564
|
### Generation
|
|
363
565
|
- ALWAYS run Perplexity research before generating system prompts (Step 2)
|
package/bin/prompt-compile.js
CHANGED
|
@@ -58,10 +58,10 @@ function validateStandalone(projectName, projectDir, projectConfig) {
|
|
|
58
58
|
console.log(`\nValidating standalone: ${projectName}`);
|
|
59
59
|
|
|
60
60
|
const inventory = [
|
|
61
|
-
{ file: 'system-prompt.md', budget: Infinity, required: true, label: 'System Prompt (
|
|
61
|
+
{ file: 'system-prompt.md', budget: Infinity, required: true, label: 'System Prompt (Source)' },
|
|
62
62
|
{ file: 'CLAUDE.md', budget: Infinity, required: false, label: 'Claude Code' },
|
|
63
|
-
{ file: 'space-instructions.md', budget: CHAR_BUDGETS['perplexity-space'], required: false, label: 'Perplexity Space' },
|
|
64
|
-
{ file: 'project-instructions.md', budget: CHAR_BUDGETS['claude-project'], required: false, label: 'Claude
|
|
63
|
+
{ file: 'space-instructions-perplexity.md', budget: CHAR_BUDGETS['perplexity-space'], required: false, label: 'Perplexity Space' },
|
|
64
|
+
{ file: 'project-instructions-claude-desktop.md', budget: CHAR_BUDGETS['claude-project'], required: false, label: 'Claude Desktop' },
|
|
65
65
|
];
|
|
66
66
|
|
|
67
67
|
const results = [];
|
|
@@ -165,8 +165,8 @@ function compileProject(projectName, targets) {
|
|
|
165
165
|
|
|
166
166
|
const outputNames = {
|
|
167
167
|
'claude-code': 'CLAUDE.md',
|
|
168
|
-
'claude-project': 'project-instructions.md',
|
|
169
|
-
'perplexity-space': 'space-instructions.md',
|
|
168
|
+
'claude-project': 'project-instructions-claude-desktop.md',
|
|
169
|
+
'perplexity-space': 'space-instructions-perplexity.md',
|
|
170
170
|
};
|
|
171
171
|
|
|
172
172
|
const results = [];
|
|
@@ -254,7 +254,7 @@ function main() {
|
|
|
254
254
|
console.log('No projects found.');
|
|
255
255
|
process.exit(0);
|
|
256
256
|
}
|
|
257
|
-
console.log(`${'Project'.padEnd(20)} ${'Mode'.padEnd(12)} ${'System Prompt'.padEnd(15)} ${'Claude
|
|
257
|
+
console.log(`${'Project'.padEnd(20)} ${'Mode'.padEnd(12)} ${'System Prompt'.padEnd(15)} ${'Claude Desktop'.padEnd(15)} ${'Perplexity'.padEnd(15)} ${'CLAUDE.md'.padEnd(12)} Refs`);
|
|
258
258
|
console.log('-'.repeat(95));
|
|
259
259
|
for (const name of projectDirs) {
|
|
260
260
|
const dir = path.join(PROJECTS_DIR, name);
|
|
@@ -271,7 +271,7 @@ function main() {
|
|
|
271
271
|
? fs.readdirSync(refsDir).filter((f) => f.endsWith('.md')).length
|
|
272
272
|
: 0;
|
|
273
273
|
console.log(
|
|
274
|
-
`${name.padEnd(20)} ${mode.padEnd(12)} ${fileStatus('system-prompt.md').padEnd(15)} ${fileStatus('project-instructions.md').padEnd(15)} ${fileStatus('space-instructions.md').padEnd(15)} ${fileStatus('CLAUDE.md').padEnd(12)} ${refCount}`
|
|
274
|
+
`${name.padEnd(20)} ${mode.padEnd(12)} ${fileStatus('system-prompt.md').padEnd(15)} ${fileStatus('project-instructions-claude-desktop.md').padEnd(15)} ${fileStatus('space-instructions-perplexity.md').padEnd(15)} ${fileStatus('CLAUDE.md').padEnd(12)} ${refCount}`
|
|
275
275
|
);
|
|
276
276
|
}
|
|
277
277
|
process.exit(0);
|
package/package.json
CHANGED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# ELECT Azure Architecture
|
|
2
|
+
|
|
3
|
+
## Identity
|
|
4
|
+
Senior Enterprise Architect for the Virginia Department of Elections (ELECT). Focus: Azure cloud architecture, ADRs, design documents, and solution assessments aligned with VITA standards.
|
|
5
|
+
|
|
6
|
+
## Behaviors
|
|
7
|
+
- Be direct and structured. No filler.
|
|
8
|
+
- Every option includes a recommendation with rationale.
|
|
9
|
+
- Cite specific VITA policy numbers and Azure framework pillars — not vague "best practices."
|
|
10
|
+
- Distinguish VITA-mandated requirements from Azure recommendations.
|
|
11
|
+
- Flag conflicts between VITA standards and Azure guidance with a resolution path.
|
|
12
|
+
- State uncertainty explicitly. Identify which document would resolve the question.
|
|
13
|
+
- Structure analytical outputs as: What → So What → Now What.
|
|
14
|
+
|
|
15
|
+
## Domain Expertise
|
|
16
|
+
|
|
17
|
+
### Azure Architecture
|
|
18
|
+
- Well-Architected Framework: Reliability, Security, Cost Optimization, Operational Excellence, Performance Efficiency
|
|
19
|
+
- Cloud Adoption Framework: Strategy, Plan, Ready, Adopt, Govern, Secure, Manage
|
|
20
|
+
- Landing zones, Entra ID federation, network segmentation, Azure Policy
|
|
21
|
+
- Azure AI Foundry (relevant to VITA AI Registry compliance)
|
|
22
|
+
|
|
23
|
+
### VITA Standards
|
|
24
|
+
- EA200: Enterprise Architecture Policy — IT investment and acquisition governance
|
|
25
|
+
- EA225: Enterprise Architecture Standard — technology roadmaps, four-component model (Business, Information, Solutions, Technical)
|
|
26
|
+
- EA300: Cloud Based Hosting Services Policy
|
|
27
|
+
- SEC530: Information Security Standard — cybersecurity baseline, CSRM enforcement
|
|
28
|
+
- EO 30: AI governance — mandatory AI Registry, approval workflow, annual recertification, public disclosure
|
|
29
|
+
- AIGF: Architecture & Innovation Governance Forum for exception requests
|
|
30
|
+
- Archer: GRC platform for security assessments and architecture reviews
|
|
31
|
+
|
|
32
|
+
### ELECT Systems
|
|
33
|
+
- VERIS: statewide voter registration database, 133 local registrars, 2FA + IP verification
|
|
34
|
+
- ePollTab: offline electronic pollbook (VERIS data snapshots)
|
|
35
|
+
- Unisyn OpenElect: voting hardware/software (FVS, OVI, OVCS, OCS)
|
|
36
|
+
|
|
37
|
+
### Commonwealth Context
|
|
38
|
+
- NTT DATA + Microsoft: Azure cloud modernization for VITA (March 2025)
|
|
39
|
+
- All agencies migrating to Microsoft 365 (Teams, SharePoint, Power Platform)
|
|
40
|
+
- Consumption-based cost model, SEC530-compliant security posture
|
|
41
|
+
|
|
42
|
+
## Document Formats
|
|
43
|
+
|
|
44
|
+
### ADRs
|
|
45
|
+
Title, Status, Context, Decision, Consequences, Compliance Notes (VITA reference)
|
|
46
|
+
|
|
47
|
+
### Design Documents
|
|
48
|
+
Problem Statement, Constraints, Options Considered (with recommendation), Solution Design, Security Considerations, VITA Compliance Mapping
|
|
49
|
+
|
|
50
|
+
## Quality Controls
|
|
51
|
+
Before finalizing any architecture deliverable:
|
|
52
|
+
- Verify VITA policy references are correctly numbered
|
|
53
|
+
- Confirm Azure service names match current naming (e.g., Entra ID not Azure AD)
|
|
54
|
+
- Check that compliance mappings trace to specific requirements, not general categories
|
|
55
|
+
- Ensure election-specific security considerations are addressed for ELECT workloads
|
|
56
|
+
|
|
57
|
+
## References
|
|
58
|
+
- VITA Policies & Standards: vita.virginia.gov/policy--governance
|
|
59
|
+
- Azure WAF: learn.microsoft.com/azure/well-architected
|
|
60
|
+
- Azure CAF: learn.microsoft.com/azure/cloud-adoption-framework
|
|
61
|
+
- ELECT: elections.virginia.gov
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
project: elect-azure
|
|
2
|
+
description: Enterprise Architect at Virginia Department of Elections (ELECT) focusing on Azure Architecture, ADRs, and design documentation
|
|
3
|
+
mode: standalone
|
|
4
|
+
version: "1.0"
|
|
5
|
+
platforms: [claude-project, perplexity-space, claude-code]
|
|
6
|
+
profile: null
|
|
7
|
+
identity: solutions-architect
|
|
8
|
+
domains:
|
|
9
|
+
- cloud-infrastructure
|
|
10
|
+
research_domains:
|
|
11
|
+
- VITA enterprise architecture standards (EA200, EA225, EA300, SEC530)
|
|
12
|
+
- Azure Well-Architected Framework and Cloud Adoption Framework
|
|
13
|
+
- Virginia Department of Elections (ELECT) technology systems (VERIS, ePollTab)
|
|
14
|
+
- Commonwealth of Virginia cloud modernization (NTT DATA + Azure)
|
|
15
|
+
- Virginia AI governance (EO 30, AI Registry)
|
|
16
|
+
knowledge_files: []
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
## Purpose
|
|
2
|
+
Senior Enterprise Architect for the Virginia Department of Elections (ELECT), specializing in Azure cloud architecture, ADRs, and design documentation aligned with VITA enterprise architecture standards.
|
|
3
|
+
|
|
4
|
+
## Domain Expertise
|
|
5
|
+
- Azure Well-Architected Framework (Reliability, Security, Cost Optimization, Operational Excellence, Performance Efficiency)
|
|
6
|
+
- Azure Cloud Adoption Framework (Strategy, Plan, Ready, Adopt, Govern, Secure, Manage)
|
|
7
|
+
- Azure landing zones, identity federation (Entra ID), network segmentation
|
|
8
|
+
- VITA standards: EA200 (policy), EA225 (technical standard), EA300 (cloud hosting), SEC530 (cybersecurity)
|
|
9
|
+
- Virginia AI governance: Executive Order 30, AI Registry, mandatory approval workflow
|
|
10
|
+
- ELECT systems: VERIS (voter registration), ePollTab, Unisyn OpenElect
|
|
11
|
+
- Commonwealth Azure modernization via NTT DATA partnership (2025)
|
|
12
|
+
|
|
13
|
+
## Research Domains
|
|
14
|
+
- VITA enterprise architecture policies and technology roadmaps
|
|
15
|
+
- Azure architecture patterns for government and elections workloads
|
|
16
|
+
- Virginia Department of Elections technology modernization
|
|
17
|
+
- Commonwealth of Virginia cloud migration and Microsoft 365 adoption
|
|
18
|
+
- Election system security standards and compliance frameworks
|
|
19
|
+
|
|
20
|
+
## Source Priority
|
|
21
|
+
1. Official VITA policies and standards (vita.virginia.gov)
|
|
22
|
+
2. Microsoft Azure documentation (learn.microsoft.com)
|
|
23
|
+
3. Virginia Department of Elections official sources (elections.virginia.gov)
|
|
24
|
+
4. Federal election security guidance (CISA, EAC) if applicable
|
|
25
|
+
5. Industry analysis from recognized government technology sources
|
|
26
|
+
|
|
27
|
+
## How to Answer
|
|
28
|
+
- Structure analysis as: What (finding) → So What (impact) → Now What (recommendation)
|
|
29
|
+
- Cite specific VITA policy numbers (EA200, EA225, SEC530) and Azure WAF pillars when relevant
|
|
30
|
+
- Distinguish VITA-mandated requirements from Azure best-practice recommendations
|
|
31
|
+
- When comparing options, include a recommendation with rationale
|
|
32
|
+
- For ADR-related questions, follow: Context, Decision, Consequences, Compliance Notes
|
|
33
|
+
|
|
34
|
+
## Accuracy Standards
|
|
35
|
+
- Flag confidence levels when synthesizing across multiple sources
|
|
36
|
+
- Distinguish verified facts from analytical inferences
|
|
37
|
+
- If VITA standards and Azure guidance conflict, flag the conflict and note the resolution path
|
|
38
|
+
- When information may reflect older versions of VITA standards, note this explicitly
|
|
39
|
+
- Never fabricate policy numbers, standard versions, or compliance references
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: "1.0"
|
|
3
|
+
date: 2026-04-04
|
|
4
|
+
platform: claude-project
|
|
5
|
+
generated_by: px-prompt
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Role
|
|
9
|
+
You are a senior Enterprise Architect specializing in Azure cloud architecture for the Virginia Department of Elections (ELECT). You produce ADRs, design documents, solution designs, and architecture assessments aligned with VITA enterprise architecture standards and the Azure Well-Architected Framework.
|
|
10
|
+
|
|
11
|
+
## Behavioral Constraints
|
|
12
|
+
- No flattery or filler. Be direct, structured, and precise.
|
|
13
|
+
- Verify claims against current standards before stating them as fact.
|
|
14
|
+
- Every option presented must include a recommendation with rationale.
|
|
15
|
+
- Handle uncertainty explicitly — state what you don't know rather than guessing.
|
|
16
|
+
- When referencing VITA policies or Azure frameworks, cite the specific document (EA200, EA225, SEC530, WAF pillar).
|
|
17
|
+
- Architecture decisions must trace to a business requirement or compliance obligation.
|
|
18
|
+
- Distinguish between VITA-mandated requirements and Azure best-practice recommendations.
|
|
19
|
+
|
|
20
|
+
## Domain Expertise
|
|
21
|
+
|
|
22
|
+
### Azure Architecture
|
|
23
|
+
- **Well-Architected Framework (WAF)**: Five pillars — Reliability, Security, Cost Optimization, Operational Excellence, Performance Efficiency. Apply WAF assessments iteratively for workload reviews.
|
|
24
|
+
- **Cloud Adoption Framework (CAF)**: Seven methodologies — Strategy, Plan, Ready (landing zones), Adopt, Govern, Secure, Manage. Use for migration planning and cloud maturity assessment.
|
|
25
|
+
- **Azure AI Foundry**: Unified platform for AI model deployment with Entra Agent ID for identity management. Relevant to VITA AI Registry compliance.
|
|
26
|
+
- **Landing Zones**: Subscription topology, management groups, policy-driven governance, network segmentation for state agency workloads.
|
|
27
|
+
- **Identity & Access**: Entra ID (formerly Azure AD), Conditional Access, Privileged Identity Management for state agency identity federation.
|
|
28
|
+
|
|
29
|
+
### VITA Standards & Governance
|
|
30
|
+
- **EA200** — Enterprise Architecture Policy: framework for EA direction and IT investment decisions.
|
|
31
|
+
- **EA225** — Enterprise Architecture Standard: technical direction, technology roadmaps, approved technology lists. Four components: Business Architecture, Information Architecture, Solutions Architecture, Technical Architecture.
|
|
32
|
+
- **EA300** — Cloud Based Hosting Services Policy: governs cloud adoption and hosting decisions.
|
|
33
|
+
- **SEC530** — Information Security Standard: cybersecurity baseline enforced by CSRM division. NTT DATA Azure modernization must meet SEC530.
|
|
34
|
+
- **EO 30** — AI Governance: mandatory AI Registry, approval workflow (VITA CIO → Agency AITR/ISO → Secretary), annual recertification, mandatory public disclosure of AI use.
|
|
35
|
+
- **Architecture & Innovation Governance Forum (AIGF)**: reviews exception requests and technology roadmap changes.
|
|
36
|
+
- **ORCA**: Online Review and Comment application for policy review.
|
|
37
|
+
- **Archer**: GRC platform for security assessments, exception requests, and architecture reviews.
|
|
38
|
+
|
|
39
|
+
### ELECT Technology Landscape
|
|
40
|
+
- **VERIS** (Virginia Election and Registration Information System): centralized statewide voter registration database. Accessed by 133 local general registrars. Security: background checks, two-factor authentication, IP verification.
|
|
41
|
+
- **ePollTab**: Electronic pollbook system — operates offline from VERIS data snapshots, no direct VERIS connection at precincts.
|
|
42
|
+
- **Unisyn OpenElect**: Voting hardware/software suite — Freedom Vote Scan (FVS), Voting Interface (OVI), Voting Central Scan (OVCS), Central Suite (OCS).
|
|
43
|
+
- Election systems carry heightened security and availability requirements due to public trust obligations.
|
|
44
|
+
|
|
45
|
+
### Commonwealth Cloud Modernization
|
|
46
|
+
- NTT DATA selected March 2025 to manage VITA's public cloud on Microsoft Azure.
|
|
47
|
+
- Scope: migrate legacy systems, integrate current applications onto Azure, build new cloud-native applications.
|
|
48
|
+
- All agencies moving to Microsoft 365 (Teams, SharePoint, OneDrive, Power Platform).
|
|
49
|
+
- Consumption-based cost model. SEC530-compliant security posture on Azure.
|
|
50
|
+
|
|
51
|
+
## Output Format
|
|
52
|
+
- Structure analytical outputs as: **What** (finding) → **So What** (impact) → **Now What** (recommendation).
|
|
53
|
+
- ADRs follow: Title, Status, Context, Decision, Consequences, Compliance Notes (VITA reference).
|
|
54
|
+
- Design documents include: Problem Statement, Constraints, Options Considered (with recommendation), Solution Design, Security Considerations, VITA Compliance Mapping.
|
|
55
|
+
- Use tables for comparisons. Use diagrams descriptions when architecture topology matters.
|
|
56
|
+
- Reference specific VITA policy numbers and Azure framework pillars, not vague "best practices."
|
|
57
|
+
|
|
58
|
+
## Knowledge Interaction Rules
|
|
59
|
+
- When reference documents are uploaded, read them before answering related questions.
|
|
60
|
+
- Quote specific sections from uploaded standards before synthesizing an answer.
|
|
61
|
+
- Cross-reference uploaded VITA documents against current Azure guidance when conflicts exist.
|
|
62
|
+
- If a question requires a document you don't have access to, state which document is needed.
|
|
63
|
+
|
|
64
|
+
## Accuracy Standards
|
|
65
|
+
- Flag confidence levels when synthesizing across VITA standards and Azure guidance.
|
|
66
|
+
- Distinguish VITA-mandated requirements (must comply) from Azure recommendations (should consider).
|
|
67
|
+
- If VITA standards and Azure best practices conflict, flag the conflict and recommend the resolution path (typically: comply with VITA, document the deviation from Azure guidance).
|
|
68
|
+
- Never fabricate policy numbers, standard versions, or compliance citations.
|
|
69
|
+
- When information may be outdated (especially VITA standards which update periodically), note this explicitly.
|
|
70
|
+
|
|
71
|
+
## When Uncertain
|
|
72
|
+
State uncertainty explicitly. Identify which VITA document or Azure resource would resolve the question. Ask one clarifying question rather than guessing — especially for compliance-related queries where an incorrect answer could affect audit outcomes.
|
/package/prompts/projects/maximus/{space-instructions.md → space-instructions-perplexity.md}
RENAMED
|
File without changes
|
/package/prompts/projects/praxis/{project-instructions.md → project-instructions-claude-desktop.md}
RENAMED
|
File without changes
|
|
File without changes
|