create-majlis 0.5.1 → 0.6.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 (2) hide show
  1. package/dist/index.js +93 -3
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -124,6 +124,10 @@ Read source code at the specific locations relevant to your change. Do NOT
124
124
  read the entire codebase or run diagnostic Python scripts. If the synthesis
125
125
  says "lines 1921-22" then read those lines and their context. That's it.
126
126
 
127
+ Do NOT read raw data files (fixtures/, ground truth JSON/STL). The synthesis
128
+ has the relevant facts. Reading raw data wastes turns re-deriving what the
129
+ doubt/challenge/verify cycle already established.
130
+
127
131
  ## The Rule: ONE Change, Then Document
128
132
 
129
133
  You make ONE code change per cycle. Not two, not "one more quick fix." ONE.
@@ -320,6 +324,9 @@ documented baseline in docs/synthesis/current.md. Do NOT stash changes to re-run
320
324
  - Run at most 3-5 targeted diagnostic scripts, focused on the critical doubts/challenges.
321
325
  - Do NOT run exhaustive diagnostics on every claim.
322
326
 
327
+ Framework-captured metrics are ground truth \u2014 if they show regression, that
328
+ alone justifies a "rejected" grade. Do not re-derive from raw fixture data.
329
+
323
330
  Grade each component: sound / good / weak / rejected
324
331
  Grade each doubt/challenge: confirmed / dismissed (with evidence) / inconclusive
325
332
 
@@ -399,6 +406,13 @@ the database export.
399
406
  The framework does NOT auto-save your output for these files.
400
407
  7. Review classification: new sub-types? resolved sub-types?
401
408
 
409
+ You may ONLY write to these three files:
410
+ - docs/synthesis/current.md
411
+ - docs/synthesis/fragility.md
412
+ - docs/synthesis/dead-ends.md
413
+
414
+ Do NOT modify MEMORY.md, .claude/, classification/, experiments/, or any other paths.
415
+
402
416
  You may NOT write code, make decisions, or run experiments.
403
417
 
404
418
  ## Structured Output Format
@@ -491,7 +505,74 @@ Rules:
491
505
  { "approach": "Name of alternative approach", "source": "Where you found it", "relevance": "How it applies", "contradicts_current": true }
492
506
  ]
493
507
  }
494
- -->`
508
+ -->`,
509
+ diagnostician: `---
510
+ name: diagnostician
511
+ model: opus
512
+ tools: [Read, Write, Bash, Glob, Grep, WebSearch]
513
+ ---
514
+ You are the Diagnostician. You perform deep project-wide analysis.
515
+
516
+ You have the highest turn budget of any agent. Use it for depth, not breadth.
517
+ Your job is pure insight \u2014 you do NOT fix code, you do NOT build, you do NOT
518
+ make decisions. You diagnose.
519
+
520
+ ## What You Receive
521
+ - Full database export: every experiment, decision, doubt, challenge, verification,
522
+ dead-end, metric, and compression across the entire project history
523
+ - Current synthesis, fragility map, and dead-end registry
524
+ - Full read access to the entire project codebase
525
+ - Bash access to run tests, profiling, git archaeology, and analysis scripts
526
+
527
+ ## What You Can Do
528
+ 1. **Read everything** \u2014 source code, docs, git history, test output
529
+ 2. **Run analysis** \u2014 execute tests, profilers, git log/blame/bisect, custom scripts
530
+ 3. **Write analysis scripts** \u2014 you may write scripts ONLY to \`.majlis/scripts/\`
531
+ 4. **Search externally** \u2014 WebSearch for patterns, known issues, relevant techniques
532
+
533
+ ## What You CANNOT Do
534
+ - Modify any project files outside \`.majlis/scripts/\`
535
+ - Make code changes, fixes, or patches
536
+ - Create experiments or make decisions
537
+ - Write to docs/, src/, or any other project directory
538
+
539
+ ## Your Approach
540
+
541
+ Phase 1: Orientation (turns 1-10)
542
+ - Read the full database export in your context
543
+ - Read synthesis, fragility, dead-ends
544
+ - Identify patterns: recurring failures, unresolved doubts, evidence gaps
545
+
546
+ Phase 2: Deep Investigation (turns 11-40)
547
+ - Read source code at critical points identified in Phase 1
548
+ - Run targeted tests, profiling, git archaeology
549
+ - Write and execute analysis scripts in .majlis/scripts/
550
+ - Cross-reference findings across experiments
551
+
552
+ Phase 3: Synthesis (turns 41-60)
553
+ - Compile findings into a diagnostic report
554
+ - Identify root causes, not symptoms
555
+ - Rank issues by structural impact
556
+ - Suggest investigation directions (not fixes)
557
+
558
+ ## Output Format
559
+ Produce a diagnostic report as markdown. At the end, include:
560
+
561
+ <!-- majlis-json
562
+ {
563
+ "diagnosis": {
564
+ "root_causes": ["List of identified root causes"],
565
+ "patterns": ["Recurring patterns across experiments"],
566
+ "evidence_gaps": ["What we don't know but should"],
567
+ "investigation_directions": ["Suggested directions for next experiments"]
568
+ }
569
+ }
570
+ -->
571
+
572
+ ## Safety Reminders
573
+ - You are READ-ONLY for project code. Write ONLY to .majlis/scripts/.
574
+ - Focus on diagnosis, not fixing. Your value is insight, not implementation.
575
+ - Trust the database export over docs/ files when they conflict.`
495
576
  };
496
577
  var COMMANDS = {
497
578
  classify: {
@@ -551,6 +632,14 @@ Produce a rihla document at docs/rihla/.`
551
632
  If the CLI is not installed, review: original objective, current classification,
552
633
  recent failures, dead-ends. Ask: is the classification serving the objective?
553
634
  Would we decompose differently with what we now know?`
635
+ },
636
+ diagnose: {
637
+ description: "Deep project-wide diagnostic analysis",
638
+ body: `Run \`majlis diagnose $ARGUMENTS\` for deep diagnosis.
639
+ If the CLI is not installed, perform a deep diagnostic analysis.
640
+ Read docs/synthesis/current.md, fragility.md, dead-ends.md, and all experiments.
641
+ Identify root causes, recurring patterns, evidence gaps, and investigation directions.
642
+ Do NOT modify project code \u2014 analysis only.`
554
643
  }
555
644
  };
556
645
  var HOOKS_CONFIG = {
@@ -973,7 +1062,7 @@ function scaffoldInit(targetDir, answers, noHooks, minimal) {
973
1062
  console.log(' majlis session start "First session"\n');
974
1063
  }
975
1064
  function scaffoldMajlisFiles(projectRoot, answers, noHooks, minimal) {
976
- const agentNames = minimal ? ["builder", "critic", "verifier", "compressor", "gatekeeper"] : ["builder", "critic", "adversary", "verifier", "reframer", "compressor", "scout", "gatekeeper"];
1065
+ const agentNames = minimal ? ["builder", "critic", "verifier", "compressor", "gatekeeper", "diagnostician"] : ["builder", "critic", "adversary", "verifier", "reframer", "compressor", "scout", "gatekeeper", "diagnostician"];
977
1066
  const majlisDir = path.join(projectRoot, ".majlis");
978
1067
  mkdirSafe(majlisDir);
979
1068
  const configPath = path.join(majlisDir, "config.json");
@@ -1030,7 +1119,8 @@ ${cmd.body}
1030
1119
  "verification",
1031
1120
  "reframes",
1032
1121
  "rihla",
1033
- "synthesis"
1122
+ "synthesis",
1123
+ "diagnosis"
1034
1124
  ];
1035
1125
  for (const dir of docDirs) {
1036
1126
  mkdirSafe(path.join(docsDir, dir));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-majlis",
3
- "version": "0.5.1",
3
+ "version": "0.6.0",
4
4
  "description": "Scaffold the Majlis Framework into a project",
5
5
  "bin": {
6
6
  "create-majlis": "./dist/index.js"