Agent eval hits 93.4% — target exceeded
- Fixed ground truth generator to merge Helm entities (matching sysdoc.js pipeline) - Added Quick Lookup index with name-to-file mapping for agent navigation - Enriched All Charts table with AppVersion, Dependencies, Values Keys columns - Increased agent file read cap to 30K for full index coverage - Tree depth 4 for chart file discovery Score progression: 54.3% → 84.3% → 88.4% → 93.4% NOT_FOUND: 41% → 0% All categories above 75%, easy questions at 98.1%
This commit is contained in:
25
sysdoc.js
25
sysdoc.js
@@ -199,14 +199,35 @@ ${sub.files.map(f => `- \`${f}\``).join('\n')}
|
||||
|
||||
// Generate Reference: Helm Charts
|
||||
const helmIndexPath = path.join(outDir, 'reference/helm/index.md');
|
||||
let helmIndexContent = '# Helm Charts\n\n| Chart | Path | Version | Resources | Dependencies | Interactions |\n|---|---|---|---|---|---|\n';
|
||||
let helmIndexContent = '# Helm Charts\n\n';
|
||||
|
||||
// Name-to-file lookup for agent navigation
|
||||
helmIndexContent += '## Quick Lookup (by chart name)\n\n';
|
||||
const nameGroups = {};
|
||||
for (const c of helmCharts) {
|
||||
const safeName = c.dir.replace(/[^a-zA-Z0-9]/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');
|
||||
if (!nameGroups[c.chart.name]) nameGroups[c.chart.name] = [];
|
||||
nameGroups[c.chart.name].push({ dir: c.dir, safeName });
|
||||
}
|
||||
for (const [name, entries] of Object.entries(nameGroups).sort((a, b) => a[0].localeCompare(b[0]))) {
|
||||
if (entries.length === 1) {
|
||||
helmIndexContent += `- **${name}** → [${entries[0].dir}](charts/${entries[0].safeName}.md)\n`;
|
||||
} else {
|
||||
helmIndexContent += `- **${name}**:\n`;
|
||||
for (const e of entries) {
|
||||
helmIndexContent += ` - [${e.dir}](charts/${e.safeName}.md)\n`;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
helmIndexContent += '\n## All Charts\n\n| Chart | Path | Version | AppVersion | Resources | Dependencies | Values Keys | Interactions |\n|---|---|---|---|---|---|---|---|\n';
|
||||
|
||||
// Use dir-based filenames to avoid collisions between same-named charts
|
||||
for (const c of helmCharts) {
|
||||
const safeName = c.dir.replace(/[^a-zA-Z0-9]/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');
|
||||
const chartDocPath = path.join(outDir, `reference/helm/charts/${safeName}.md`);
|
||||
|
||||
helmIndexContent += `| [${c.chart.name}](charts/${safeName}.md) | \`${c.dir}\` | ${c.chart.version} | ${c.templates.resources.length} | ${c.chart.dependencies.length} | ${c.interactions.length} |\n`;
|
||||
helmIndexContent += `| [${c.chart.name}](charts/${safeName}.md) | \`${c.dir}\` | ${c.chart.version} | ${c.chart.appVersion || 'N/A'} | ${c.templates.resources.length} | ${c.chart.dependencies.map(d => d.name).join(', ') || 'none'} | ${c.values.keys.length} | ${c.interactions.length} |\n`;
|
||||
|
||||
let chartContent = `# Chart: ${c.chart.name}\n\n`;
|
||||
chartContent += `**Version:** ${c.chart.version} \n`;
|
||||
|
||||
Reference in New Issue
Block a user