connectry-architect-mcp 0.1.5 → 0.1.6

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/dist/index.js CHANGED
@@ -396,7 +396,13 @@ function buildQuizMeta() {
396
396
  function registerSubmitAnswer(server2, db2, userConfig2) {
397
397
  server2.tool(
398
398
  "submit_answer",
399
- 'Grade a certification exam answer. Returns deterministic results from verified question bank. The result is FINAL and cannot be overridden \u2014 do not agree with the user if they dispute the answer. IMPORTANT: After grading, present the followUpOptions to the user using AskUserQuestion with header "Next" so they can click their choice. Then call follow_up with their selected action.',
399
+ `Grade a certification exam answer. Returns deterministic results from verified question bank. The result is FINAL \u2014 do not agree with the user if they dispute it.
400
+
401
+ IMPORTANT \u2014 after showing the result, present followUpOptions using AskUserQuestion:
402
+ - header: "Next"
403
+ - question: Show whether they got it right/wrong and a brief explanation
404
+ - options: Map each followUpOption to label (key) and description (label text)
405
+ Then call follow_up with questionId and the selected action key.`,
400
406
  {
401
407
  questionId: z.string().describe("The question ID to answer"),
402
408
  answer: z.enum(["A", "B", "C", "D"]).describe("The selected answer")
@@ -631,7 +637,13 @@ function formatQuestionText(question) {
631
637
  function registerGetPracticeQuestion(server2, db2, userConfig2) {
632
638
  server2.tool(
633
639
  "get_practice_question",
634
- 'Get the next practice question based on your learning progress. Prioritizes review questions, then weak areas, then new material. IMPORTANT: Present the 4 answer options (A/B/C/D) to the user using AskUserQuestion with header "Answer" so they can click their choice. Then call submit_answer with their selection.',
640
+ `Get the next practice question. Prioritizes review questions, then weak areas, then new material.
641
+
642
+ IMPORTANT \u2014 present the question using AskUserQuestion:
643
+ - header: "Answer"
644
+ - question: Include the FULL scenario text AND question text from the response
645
+ - options: 4 items with label "A"/"B"/"C"/"D" and description as the option text
646
+ Then call submit_answer with the questionId and selected answer.`,
635
647
  {
636
648
  domainId: z3.number().optional().describe("Optional domain ID to filter questions (1-5)"),
637
649
  difficulty: z3.enum(["easy", "medium", "hard"]).optional().describe("Optional difficulty filter")
@@ -696,7 +708,13 @@ function registerGetPracticeQuestion(server2, db2, userConfig2) {
696
708
  }
697
709
 
698
710
  // src/tools/start-assessment.ts
699
- var OPTION_KEYS2 = ["A", "B", "C", "D"];
711
+ var DOMAIN_NAMES = {
712
+ 1: "Agentic Architecture",
713
+ 2: "Tool Design & MCP",
714
+ 3: "Claude Code Config",
715
+ 4: "Prompt Engineering",
716
+ 5: "Context & Reliability"
717
+ };
700
718
  function buildAssessmentQuestions() {
701
719
  const questions = [];
702
720
  for (let d = 1; d <= 5; d++) {
@@ -710,32 +728,27 @@ function buildAssessmentQuestions() {
710
728
  }
711
729
  return questions;
712
730
  }
713
- function formatQuestion(question, index, total) {
714
- const domainNames = {
715
- 1: "Agentic Architecture",
716
- 2: "Tool Design & MCP",
717
- 3: "Claude Code Config",
718
- 4: "Prompt Engineering",
719
- 5: "Context & Reliability"
720
- };
721
- const lines = [
722
- `**Assessment Question ${index + 1} of ${total}**`,
723
- `Domain ${question.domainId}: ${domainNames[question.domainId] ?? "Unknown"} | ${question.difficulty}`,
724
- "",
725
- "---",
726
- "",
727
- question.scenario,
728
- "",
729
- `**${question.text}**`,
730
- "",
731
- ...OPTION_KEYS2.map((key) => ` **${key}.** ${question.options[key]}`)
732
- ];
733
- return lines.join("\n");
734
- }
735
731
  function registerStartAssessment(server2, db2, userConfig2) {
736
732
  server2.tool(
737
733
  "start_assessment",
738
- 'Start the initial assessment. Returns ONE question at a time. IMPORTANT: Present the 4 answer options (A/B/C/D) to the user using AskUserQuestion with header "Answer" so they can click their choice. After the user selects, call submit_answer with their choice, then call start_assessment again for the next question. Repeats for all 15 questions (3 per domain). When assessment is complete, present next steps (Study Plan, Practice Questions, Capstone Build, Reference Projects) using AskUserQuestion with header "Next step".',
734
+ `Start the initial assessment. Returns ONE question at a time (15 total, 3 per domain).
735
+
736
+ IMPORTANT \u2014 follow this flow for EVERY question:
737
+
738
+ 1. Check if "isNewDomain" is true. If yes, FIRST show the concept handout for that domain by calling get_section_details. Tell the user: "Let's learn about [domain] before testing your knowledge." After showing the handout, proceed to step 2.
739
+
740
+ 2. Present the question to the user using AskUserQuestion:
741
+ - header: "Q[number]"
742
+ - question: Include the FULL scenario text AND question text from the response
743
+ - options: Use the 4 answer options (A/B/C/D) with label as the letter and description as the option text
744
+
745
+ 3. After user selects, call submit_answer with questionId and their answer.
746
+
747
+ 4. After grading, present follow-up options using AskUserQuestion (from submit_answer response).
748
+
749
+ 5. Call start_assessment again for the next question.
750
+
751
+ When assessment is complete, present next steps using AskUserQuestion with header "Next step".`,
739
752
  {},
740
753
  async () => {
741
754
  const userId = userConfig2.userId;
@@ -743,7 +756,7 @@ function registerStartAssessment(server2, db2, userConfig2) {
743
756
  const questions = buildAssessmentQuestions();
744
757
  if (questions.length === 0) {
745
758
  return {
746
- content: [{ type: "text", text: "No assessment questions available." }]
759
+ content: [{ type: "text", text: JSON.stringify({ error: "No assessment questions available." }) }]
747
760
  };
748
761
  }
749
762
  const answeredIds = db2.prepare(
@@ -762,76 +775,54 @@ function registerStartAssessment(server2, db2, userConfig2) {
762
775
  const overallAccuracy = totalQuestions > 0 ? Math.round(totalCorrect / totalQuestions * 100) : 0;
763
776
  const path6 = overallAccuracy >= 60 ? "exam-weighted" : "beginner-friendly";
764
777
  db2.prepare("UPDATE users SET assessmentCompleted = TRUE, learningPath = ? WHERE id = ?").run(path6, userId);
765
- const domainNames = {
766
- 1: "Agentic Architecture",
767
- 2: "Tool Design & MCP",
768
- 3: "Claude Code Config",
769
- 4: "Prompt Engineering",
770
- 5: "Context & Reliability"
778
+ const response2 = {
779
+ status: "complete",
780
+ overall: { correct: totalCorrect, total: totalQuestions, accuracy: overallAccuracy },
781
+ learningPath: path6 === "exam-weighted" ? "Exam-Weighted" : "Beginner-Friendly",
782
+ domainResults: results.map((r) => ({
783
+ domain: r.domainId,
784
+ name: DOMAIN_NAMES[r.domainId] ?? "",
785
+ correct: r.correct,
786
+ total: r.total,
787
+ accuracy: Math.round(r.correct / r.total * 100)
788
+ })),
789
+ nextStepOptions: [
790
+ { label: "Study Plan", description: "Get personalized study recommendations based on your results" },
791
+ { label: "Practice Questions", description: "Start adaptive practice targeting your weak areas" },
792
+ { label: "Capstone Build", description: "Build your own project while learning all 30 task statements" },
793
+ { label: "Reference Projects", description: "Explore runnable code examples for each domain" }
794
+ ],
795
+ instruction: 'Present nextStepOptions using AskUserQuestion with header "Next step".'
771
796
  };
772
- const lines = [
773
- "**Assessment Complete!**",
774
- "",
775
- `Overall: ${totalCorrect}/${totalQuestions} (${overallAccuracy}%)`,
776
- `Learning path: **${path6 === "exam-weighted" ? "Exam-Weighted" : "Beginner-Friendly"}**`,
777
- "",
778
- "**Per-domain results:**",
779
- "",
780
- ...results.map((r) => ` D${r.domainId} ${domainNames[r.domainId] ?? ""}: ${r.correct}/${r.total} (${Math.round(r.correct / r.total * 100)}%)`),
781
- "",
782
- "---",
783
- "",
784
- 'INSTRUCTION: Present the following options to the user using AskUserQuestion with header "Next step":',
785
- '- "Study Plan" \u2014 Get personalized study recommendations based on your results',
786
- '- "Practice Questions" \u2014 Start adaptive practice targeting your weak areas',
787
- '- "Capstone Build" \u2014 Build your own project while learning all 30 task statements',
788
- '- "Reference Projects" \u2014 Explore runnable code examples for each domain'
789
- ];
790
797
  return {
791
- content: [{ type: "text", text: lines.join("\n") }]
798
+ content: [{ type: "text", text: JSON.stringify(response2, null, 2) }]
792
799
  };
793
800
  }
794
801
  const questionIndex = answeredSet.size;
795
- const questionText = formatQuestion(nextQuestion, questionIndex, questions.length);
796
- const elicitOptions = OPTION_KEYS2.map((key) => ({
797
- value: key,
798
- title: `${key}. ${nextQuestion.options[key]}`
799
- }));
800
- const selected = await elicitSingleSelect(
801
- server2,
802
- questionText,
803
- "answer",
804
- elicitOptions
805
- );
806
- if (selected) {
807
- return {
808
- content: [{
809
- type: "text",
810
- text: [
811
- questionText,
812
- "",
813
- "---",
814
- "",
815
- `**Selected: ${selected}**`,
816
- "",
817
- `Submit this answer with submit_answer using questionId "${nextQuestion.id}" and answer "${selected}". Then call start_assessment again for the next question.`
818
- ].join("\n")
819
- }]
820
- };
821
- }
802
+ const previousDomainIds = questions.filter((q) => answeredSet.has(q.id)).map((q) => q.domainId);
803
+ const isNewDomain = !previousDomainIds.includes(nextQuestion.domainId);
804
+ const response = {
805
+ status: "question",
806
+ questionNumber: questionIndex + 1,
807
+ totalQuestions: questions.length,
808
+ questionId: nextQuestion.id,
809
+ domainId: nextQuestion.domainId,
810
+ domainName: DOMAIN_NAMES[nextQuestion.domainId] ?? "Unknown",
811
+ difficulty: nextQuestion.difficulty,
812
+ taskStatement: nextQuestion.taskStatement,
813
+ isNewDomain,
814
+ scenario: nextQuestion.scenario,
815
+ questionText: nextQuestion.text,
816
+ options: {
817
+ A: nextQuestion.options.A,
818
+ B: nextQuestion.options.B,
819
+ C: nextQuestion.options.C,
820
+ D: nextQuestion.options.D
821
+ },
822
+ instruction: isNewDomain ? `This is a NEW domain (${DOMAIN_NAMES[nextQuestion.domainId]}). Show the concept handout first using get_section_details for task "${nextQuestion.taskStatement}", then present this question using AskUserQuestion. Put the scenario + question in the "question" field. Use options with label "A"/"B"/"C"/"D" and description as the option text.` : `Present this question using AskUserQuestion with header "Q${questionIndex + 1}". Put the scenario + question text in the "question" field. Use options with label "A"/"B"/"C"/"D" and description as the option text.`
823
+ };
822
824
  return {
823
- content: [{
824
- type: "text",
825
- text: [
826
- questionText,
827
- "",
828
- "---",
829
- "",
830
- `Question ID: ${nextQuestion.id}`,
831
- "",
832
- "Submit your answer (A, B, C, or D) with submit_answer, then call start_assessment again for the next question."
833
- ].join("\n")
834
- }]
825
+ content: [{ type: "text", text: JSON.stringify(response, null, 2) }]
835
826
  };
836
827
  }
837
828
  );
@@ -1201,7 +1192,13 @@ function rowToExamAttempt(row) {
1201
1192
  function registerStartPracticeExam(server2, db2, userConfig2) {
1202
1193
  server2.tool(
1203
1194
  "start_practice_exam",
1204
- 'Start a full 60-question practice exam simulating the real Claude Certified Architect \u2014 Foundations exam. Questions are weighted by domain (D1: 16, D2: 11, D3: 12, D4: 12, D5: 9). Scored out of 1000, passing is 720. Results are saved for comparison across attempts. IMPORTANT: Present the 4 answer options (A/B/C/D) using AskUserQuestion with header "Answer" so the user can click their choice.',
1195
+ `Start a full 60-question practice exam (D1:16, D2:11, D3:12, D4:12, D5:9). Scored 0-1000, passing 720.
1196
+
1197
+ IMPORTANT \u2014 present the first question using AskUserQuestion:
1198
+ - header: "Q1"
1199
+ - question: Include the FULL scenario + question text
1200
+ - options: 4 items with label "A"/"B"/"C"/"D" and description as option text
1201
+ Then call submit_exam_answer with the answer.`,
1205
1202
  {},
1206
1203
  async () => {
1207
1204
  const userId = userConfig2.userId;
@@ -1295,7 +1292,13 @@ import { z as z6 } from "zod";
1295
1292
  function registerSubmitExamAnswer(server2, db2, userConfig2) {
1296
1293
  server2.tool(
1297
1294
  "submit_exam_answer",
1298
- 'Submit an answer for a practice exam question. The answer is graded deterministically. After all 60 questions, the exam is scored and saved. DO NOT soften results \u2014 relay the grading output verbatim. IMPORTANT: When presenting the next question, use AskUserQuestion with header "Answer" to let the user click A/B/C/D.',
1295
+ `Submit an answer for a practice exam question. Graded deterministically. DO NOT soften results.
1296
+
1297
+ IMPORTANT \u2014 if there's a next question, present it using AskUserQuestion:
1298
+ - header: "Q[number]"
1299
+ - question: Include the FULL scenario + question text
1300
+ - options: 4 items with label "A"/"B"/"C"/"D" and description as option text
1301
+ Then call submit_exam_answer again with the answer.`,
1299
1302
  {
1300
1303
  examId: z6.number().describe("The practice exam ID"),
1301
1304
  questionId: z6.string().describe("The question ID being answered"),
@@ -1657,7 +1660,7 @@ function registerFollowUp(server2, _db, _userConfig) {
1657
1660
  import { z as z8 } from "zod";
1658
1661
 
1659
1662
  // src/data/criteria.ts
1660
- var DOMAIN_NAMES = {
1663
+ var DOMAIN_NAMES2 = {
1661
1664
  1: "Agentic Architecture & Orchestration",
1662
1665
  2: "Tool Design & MCP Integration",
1663
1666
  3: "Claude Code Configuration & Workflows",
@@ -1670,49 +1673,49 @@ var CRITERIA = [
1670
1673
  id: "1.1",
1671
1674
  title: "Design and implement agentic loops for autonomous task execution",
1672
1675
  domain: 1,
1673
- domainName: DOMAIN_NAMES[1],
1676
+ domainName: DOMAIN_NAMES2[1],
1674
1677
  description: "Understanding the agentic loop lifecycle: sending requests, inspecting stop_reason, executing tools, and returning results."
1675
1678
  },
1676
1679
  {
1677
1680
  id: "1.2",
1678
1681
  title: "Orchestrate multi-agent systems with coordinator-subagent patterns",
1679
1682
  domain: 1,
1680
- domainName: DOMAIN_NAMES[1],
1683
+ domainName: DOMAIN_NAMES2[1],
1681
1684
  description: "Hub-and-spoke architecture, isolated context, task decomposition, and result aggregation."
1682
1685
  },
1683
1686
  {
1684
1687
  id: "1.3",
1685
1688
  title: "Configure subagent invocation, context passing, and spawning",
1686
1689
  domain: 1,
1687
- domainName: DOMAIN_NAMES[1],
1690
+ domainName: DOMAIN_NAMES2[1],
1688
1691
  description: "Task tool, allowedTools, explicit context passing, parallel subagent execution."
1689
1692
  },
1690
1693
  {
1691
1694
  id: "1.4",
1692
1695
  title: "Implement multi-step workflows with enforcement and handoff patterns",
1693
1696
  domain: 1,
1694
- domainName: DOMAIN_NAMES[1],
1697
+ domainName: DOMAIN_NAMES2[1],
1695
1698
  description: "Programmatic enforcement vs prompt-based guidance, structured handoff protocols."
1696
1699
  },
1697
1700
  {
1698
1701
  id: "1.5",
1699
1702
  title: "Apply Agent SDK hooks for tool call interception and data normalization",
1700
1703
  domain: 1,
1701
- domainName: DOMAIN_NAMES[1],
1704
+ domainName: DOMAIN_NAMES2[1],
1702
1705
  description: "PostToolUse hooks, tool call interception, deterministic vs probabilistic compliance."
1703
1706
  },
1704
1707
  {
1705
1708
  id: "1.6",
1706
1709
  title: "Design task decomposition strategies for complex workflows",
1707
1710
  domain: 1,
1708
- domainName: DOMAIN_NAMES[1],
1711
+ domainName: DOMAIN_NAMES2[1],
1709
1712
  description: "Prompt chaining vs dynamic decomposition, per-file analysis vs cross-file integration."
1710
1713
  },
1711
1714
  {
1712
1715
  id: "1.7",
1713
1716
  title: "Manage session state, resumption, and forking",
1714
1717
  domain: 1,
1715
- domainName: DOMAIN_NAMES[1],
1718
+ domainName: DOMAIN_NAMES2[1],
1716
1719
  description: "Named sessions, fork_session, structured summaries vs stale context."
1717
1720
  },
1718
1721
  // Domain 2: Tool Design & MCP Integration
@@ -1720,35 +1723,35 @@ var CRITERIA = [
1720
1723
  id: "2.1",
1721
1724
  title: "Design effective tool interfaces with clear descriptions and boundaries",
1722
1725
  domain: 2,
1723
- domainName: DOMAIN_NAMES[2],
1726
+ domainName: DOMAIN_NAMES2[2],
1724
1727
  description: "Tool descriptions as selection mechanism, disambiguation, splitting vs consolidating."
1725
1728
  },
1726
1729
  {
1727
1730
  id: "2.2",
1728
1731
  title: "Implement structured error responses for MCP tools",
1729
1732
  domain: 2,
1730
- domainName: DOMAIN_NAMES[2],
1733
+ domainName: DOMAIN_NAMES2[2],
1731
1734
  description: "isError flag, error categories, retryable vs non-retryable, structured metadata."
1732
1735
  },
1733
1736
  {
1734
1737
  id: "2.3",
1735
1738
  title: "Distribute tools appropriately across agents and configure tool choice",
1736
1739
  domain: 2,
1737
- domainName: DOMAIN_NAMES[2],
1740
+ domainName: DOMAIN_NAMES2[2],
1738
1741
  description: "Scoped tool access, tool_choice options, forced selection patterns."
1739
1742
  },
1740
1743
  {
1741
1744
  id: "2.4",
1742
1745
  title: "Integrate MCP servers into Claude Code and agent workflows",
1743
1746
  domain: 2,
1744
- domainName: DOMAIN_NAMES[2],
1747
+ domainName: DOMAIN_NAMES2[2],
1745
1748
  description: "Project vs user scope, .mcp.json, environment variable expansion, MCP resources."
1746
1749
  },
1747
1750
  {
1748
1751
  id: "2.5",
1749
1752
  title: "Select and apply built-in tools effectively",
1750
1753
  domain: 2,
1751
- domainName: DOMAIN_NAMES[2],
1754
+ domainName: DOMAIN_NAMES2[2],
1752
1755
  description: "Grep vs Glob vs Read/Write/Edit, incremental codebase understanding."
1753
1756
  },
1754
1757
  // Domain 3: Claude Code Configuration & Workflows
@@ -1756,42 +1759,42 @@ var CRITERIA = [
1756
1759
  id: "3.1",
1757
1760
  title: "Configure CLAUDE.md files with appropriate hierarchy and scoping",
1758
1761
  domain: 3,
1759
- domainName: DOMAIN_NAMES[3],
1762
+ domainName: DOMAIN_NAMES2[3],
1760
1763
  description: "User-level, project-level, directory-level, @import syntax, .claude/rules/."
1761
1764
  },
1762
1765
  {
1763
1766
  id: "3.2",
1764
1767
  title: "Create and configure custom slash commands and skills",
1765
1768
  domain: 3,
1766
- domainName: DOMAIN_NAMES[3],
1769
+ domainName: DOMAIN_NAMES2[3],
1767
1770
  description: "Project vs user scope, context: fork, allowed-tools, argument-hint frontmatter."
1768
1771
  },
1769
1772
  {
1770
1773
  id: "3.3",
1771
1774
  title: "Apply path-specific rules for conditional convention loading",
1772
1775
  domain: 3,
1773
- domainName: DOMAIN_NAMES[3],
1776
+ domainName: DOMAIN_NAMES2[3],
1774
1777
  description: "YAML frontmatter paths, glob patterns, conditional activation."
1775
1778
  },
1776
1779
  {
1777
1780
  id: "3.4",
1778
1781
  title: "Determine when to use plan mode vs direct execution",
1779
1782
  domain: 3,
1780
- domainName: DOMAIN_NAMES[3],
1783
+ domainName: DOMAIN_NAMES2[3],
1781
1784
  description: "Complexity assessment, architectural decisions, Explore subagent."
1782
1785
  },
1783
1786
  {
1784
1787
  id: "3.5",
1785
1788
  title: "Apply iterative refinement techniques for progressive improvement",
1786
1789
  domain: 3,
1787
- domainName: DOMAIN_NAMES[3],
1790
+ domainName: DOMAIN_NAMES2[3],
1788
1791
  description: "Input/output examples, test-driven iteration, interview pattern."
1789
1792
  },
1790
1793
  {
1791
1794
  id: "3.6",
1792
1795
  title: "Integrate Claude Code into CI/CD pipelines",
1793
1796
  domain: 3,
1794
- domainName: DOMAIN_NAMES[3],
1797
+ domainName: DOMAIN_NAMES2[3],
1795
1798
  description: "-p flag, --output-format json, --json-schema, session context isolation."
1796
1799
  },
1797
1800
  // Domain 4: Prompt Engineering & Structured Output
@@ -1799,42 +1802,42 @@ var CRITERIA = [
1799
1802
  id: "4.1",
1800
1803
  title: "Design prompts with explicit criteria to improve precision",
1801
1804
  domain: 4,
1802
- domainName: DOMAIN_NAMES[4],
1805
+ domainName: DOMAIN_NAMES2[4],
1803
1806
  description: "Explicit criteria vs vague instructions, false positive management."
1804
1807
  },
1805
1808
  {
1806
1809
  id: "4.2",
1807
1810
  title: "Apply few-shot prompting to improve output consistency",
1808
1811
  domain: 4,
1809
- domainName: DOMAIN_NAMES[4],
1812
+ domainName: DOMAIN_NAMES2[4],
1810
1813
  description: "Targeted examples, ambiguous case handling, format demonstration."
1811
1814
  },
1812
1815
  {
1813
1816
  id: "4.3",
1814
1817
  title: "Enforce structured output using tool use and JSON schemas",
1815
1818
  domain: 4,
1816
- domainName: DOMAIN_NAMES[4],
1819
+ domainName: DOMAIN_NAMES2[4],
1817
1820
  description: "tool_use with schemas, tool_choice options, nullable fields, enum patterns."
1818
1821
  },
1819
1822
  {
1820
1823
  id: "4.4",
1821
1824
  title: "Implement validation, retry, and feedback loops",
1822
1825
  domain: 4,
1823
- domainName: DOMAIN_NAMES[4],
1826
+ domainName: DOMAIN_NAMES2[4],
1824
1827
  description: "Retry-with-error-feedback, limits of retry, detected_pattern tracking."
1825
1828
  },
1826
1829
  {
1827
1830
  id: "4.5",
1828
1831
  title: "Design efficient batch processing strategies",
1829
1832
  domain: 4,
1830
- domainName: DOMAIN_NAMES[4],
1833
+ domainName: DOMAIN_NAMES2[4],
1831
1834
  description: "Message Batches API, latency tolerance, custom_id, failure handling."
1832
1835
  },
1833
1836
  {
1834
1837
  id: "4.6",
1835
1838
  title: "Design multi-instance and multi-pass review architectures",
1836
1839
  domain: 4,
1837
- domainName: DOMAIN_NAMES[4],
1840
+ domainName: DOMAIN_NAMES2[4],
1838
1841
  description: "Self-review limitations, independent review instances, per-file + cross-file passes."
1839
1842
  },
1840
1843
  // Domain 5: Context Management & Reliability
@@ -1842,42 +1845,42 @@ var CRITERIA = [
1842
1845
  id: "5.1",
1843
1846
  title: "Manage conversation context to preserve critical information",
1844
1847
  domain: 5,
1845
- domainName: DOMAIN_NAMES[5],
1848
+ domainName: DOMAIN_NAMES2[5],
1846
1849
  description: "Progressive summarization risks, lost-in-the-middle, tool output trimming."
1847
1850
  },
1848
1851
  {
1849
1852
  id: "5.2",
1850
1853
  title: "Design effective escalation and ambiguity resolution patterns",
1851
1854
  domain: 5,
1852
- domainName: DOMAIN_NAMES[5],
1855
+ domainName: DOMAIN_NAMES2[5],
1853
1856
  description: "Escalation triggers, customer preferences, sentiment unreliability."
1854
1857
  },
1855
1858
  {
1856
1859
  id: "5.3",
1857
1860
  title: "Implement error propagation strategies across multi-agent systems",
1858
1861
  domain: 5,
1859
- domainName: DOMAIN_NAMES[5],
1862
+ domainName: DOMAIN_NAMES2[5],
1860
1863
  description: "Structured error context, access failures vs empty results, partial results."
1861
1864
  },
1862
1865
  {
1863
1866
  id: "5.4",
1864
1867
  title: "Manage context effectively in large codebase exploration",
1865
1868
  domain: 5,
1866
- domainName: DOMAIN_NAMES[5],
1869
+ domainName: DOMAIN_NAMES2[5],
1867
1870
  description: "Context degradation, scratchpad files, subagent delegation, /compact."
1868
1871
  },
1869
1872
  {
1870
1873
  id: "5.5",
1871
1874
  title: "Design human review workflows and confidence calibration",
1872
1875
  domain: 5,
1873
- domainName: DOMAIN_NAMES[5],
1876
+ domainName: DOMAIN_NAMES2[5],
1874
1877
  description: "Stratified sampling, field-level confidence, accuracy by document type."
1875
1878
  },
1876
1879
  {
1877
1880
  id: "5.6",
1878
1881
  title: "Preserve information provenance and handle uncertainty in synthesis",
1879
1882
  domain: 5,
1880
- domainName: DOMAIN_NAMES[5],
1883
+ domainName: DOMAIN_NAMES2[5],
1881
1884
  description: "Claim-source mappings, conflict annotation, temporal data handling."
1882
1885
  }
1883
1886
  ];