hummbl-bibliography 1.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 (95) hide show
  1. package/.cascade/rules/hummbl-base120.md +107 -0
  2. package/.github/CODEOWNERS +17 -0
  3. package/.github/ISSUE_TEMPLATE/bug_report.md +24 -0
  4. package/.github/ISSUE_TEMPLATE/feature_request.md +10 -0
  5. package/.github/ISSUE_TEMPLATE/new-entry.md +79 -0
  6. package/.github/ISSUE_TEMPLATE/quality-improvement.md +71 -0
  7. package/.github/PULL_REQUEST_TEMPLATE.md +15 -0
  8. package/.github/dependabot.yml +17 -0
  9. package/.github/workflows/ci.yml +98 -0
  10. package/.github/workflows/doi-enrichment.yml +77 -0
  11. package/.github/workflows/security-audit.yml +92 -0
  12. package/.github/workflows/stats-report.yml +59 -0
  13. package/.github/workflows/validate-models.yml +194 -0
  14. package/.github/workflows/validate.yml +152 -0
  15. package/.husky/pre-commit +15 -0
  16. package/.husky/validation-rules.json +11 -0
  17. package/CHANGELOG.md +228 -0
  18. package/CONTRIBUTING.md +110 -0
  19. package/CONTRIBUTORS.md +257 -0
  20. package/DEVELOPMENT.md +110 -0
  21. package/Day_1_Audit_Worksheet.md +64 -0
  22. package/LICENSE +21 -0
  23. package/README.md +213 -0
  24. package/SECURITY.md +16 -0
  25. package/SITREP.md +141 -0
  26. package/bibliography/T10_collaboration.bib +281 -0
  27. package/bibliography/T11_security.bib +311 -0
  28. package/bibliography/T12_complexity.bib +272 -0
  29. package/bibliography/T13_reasoning.bib +231 -0
  30. package/bibliography/T1_canonical.bib +236 -0
  31. package/bibliography/T2_empirical.bib +258 -0
  32. package/bibliography/T3_applied.bib +219 -0
  33. package/bibliography/T4_agentic.bib +281 -0
  34. package/bibliography/T5_engineering.bib +243 -0
  35. package/bibliography/T6_governance.bib +277 -0
  36. package/bibliography/T7_emerging.bib +228 -0
  37. package/bibliography/T8_cognition.bib +260 -0
  38. package/bibliography/T9_economics.bib +275 -0
  39. package/bibliography/hummbl-transformations.json +84 -0
  40. package/dist/unified-bibliography.json +5699 -0
  41. package/docs/CONTRIBUTING.md +240 -0
  42. package/docs/GAP_ANALYSIS.md +142 -0
  43. package/docs/MULTI_AGENT_COORDINATION_PROTOCOL.md +700 -0
  44. package/docs/QUALITY_AUDIT_REPORT.md +576 -0
  45. package/docs/QUALITY_STANDARDS.md +350 -0
  46. package/docs/TRANSFORMATION_GUIDE.md +337 -0
  47. package/docs/metrics/model-accuracy.md +150 -0
  48. package/governance/CAES_CANONICAL.sha256 +1 -0
  49. package/governance/CAES_SPEC.md +107 -0
  50. package/governance/CAES_VERSION +1 -0
  51. package/governance/lexicon/ALLOWLIST_POLICY.md +63 -0
  52. package/governance/lexicon/CANONICALIZATION.md +63 -0
  53. package/governance/lexicon/acronym.schema.json +153 -0
  54. package/governance/lexicon/acronym_allowlist.txt +237 -0
  55. package/governance/lexicon/acronyms.v0.2.json +2555 -0
  56. package/llms.txt +1105 -0
  57. package/mappings/arcana_citations.json +219 -0
  58. package/mappings/bki_evidence.json +384 -0
  59. package/package.json +25 -0
  60. package/reports/.gitkeep +0 -0
  61. package/reports/citation_graph.json +119335 -0
  62. package/scripts/add_nist_tags.py +437 -0
  63. package/scripts/annotate_dois.py +204 -0
  64. package/scripts/check_palace_aliases.py +200 -0
  65. package/scripts/ingest_to_open_brain.py +307 -0
  66. package/scripts/monthly-review.sh +166 -0
  67. package/scripts/setup-hooks.sh +107 -0
  68. package/scripts/test_check_palace_aliases.py +194 -0
  69. package/sources/bki.bib +57 -0
  70. package/sources/theoretical-foundations.bib +589 -0
  71. package/toolkit/README.md +360 -0
  72. package/toolkit/docs/generated/quick-reference.md +179 -0
  73. package/toolkit/package-lock.json +1140 -0
  74. package/toolkit/package.json +66 -0
  75. package/toolkit/scripts/check-memory-palace-aliases.js +230 -0
  76. package/toolkit/scripts/check-memory-palace-aliases.test.js +297 -0
  77. package/toolkit/scripts/generate-docs.js +223 -0
  78. package/toolkit/src/check-duplicates.js +225 -0
  79. package/toolkit/src/check-required-fields.js +138 -0
  80. package/toolkit/src/citation-graph.js +425 -0
  81. package/toolkit/src/extensions/beyondBase120Audit.ts +250 -0
  82. package/toolkit/src/extensions/memoryPalace.ts +438 -0
  83. package/toolkit/src/extract-keywords.js +190 -0
  84. package/toolkit/src/find-missing-dois.js +178 -0
  85. package/toolkit/src/fix-duplicates.js +140 -0
  86. package/toolkit/src/merge-entries.js +29 -0
  87. package/toolkit/src/query.js +281 -0
  88. package/toolkit/src/stats.js +244 -0
  89. package/toolkit/src/test-validation.js +117 -0
  90. package/toolkit/src/utils/modelRegistry.ts +193 -0
  91. package/toolkit/src/utils/monitorModels.ts +150 -0
  92. package/toolkit/src/utils/validateModelCode.ts +196 -0
  93. package/toolkit/src/validate.js +251 -0
  94. package/toolkit/src/watch.js +100 -0
  95. package/toolkit/tsconfig.json +25 -0
@@ -0,0 +1,194 @@
1
+ name: Validate Mental Model References
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, develop ]
6
+ paths:
7
+ - '**/*.md'
8
+ - '**/*.ts'
9
+ - '**/*.tsx'
10
+ - '**/*.js'
11
+ - '**/*.jsx'
12
+ pull_request:
13
+ branches: [ main, develop ]
14
+ paths:
15
+ - '**/*.md'
16
+ - '**/*.ts'
17
+ - '**/*.tsx'
18
+ - '**/*.js'
19
+ - '**/*.jsx'
20
+
21
+ jobs:
22
+ validate-models:
23
+ runs-on: ubuntu-latest
24
+
25
+ steps:
26
+ - name: Checkout code
27
+ uses: actions/checkout@v4
28
+
29
+ - name: Setup Node.js
30
+ uses: actions/setup-node@v4
31
+ with:
32
+ node-version: '24'
33
+ cache: 'npm'
34
+
35
+ - name: Install dependencies
36
+ run: |
37
+ cd toolkit
38
+ npm ci
39
+
40
+ - name: Type check validation functions
41
+ run: |
42
+ cd toolkit
43
+ npm run type-check
44
+
45
+ - name: Build toolkit
46
+ run: |
47
+ cd toolkit
48
+ npm run build
49
+
50
+ - name: Run model validation script
51
+ run: |
52
+ cd toolkit
53
+ node --input-type=module << 'EOF'
54
+ import { auditText } from './dist/utils/monitorModels.js';
55
+ import { readFileSync, readdirSync, statSync } from 'fs';
56
+ import { join, extname } from 'path';
57
+
58
+ // Find all relevant files.
59
+ // Excluded: toolkit/src and toolkit/dist — those are the validator
60
+ // source files themselves and would cause self-referential false
61
+ // positives (test cases for invalid codes, hallucination term lists).
62
+ const EXCLUDED_DIRS = new Set(['node_modules', 'dist', 'src']);
63
+ const files = [];
64
+ const walk = (dir) => {
65
+ const items = readdirSync(dir);
66
+ items.forEach(item => {
67
+ const fullPath = join(dir, item);
68
+ const stat = statSync(fullPath);
69
+ if (stat.isDirectory() && !item.startsWith('.') && !EXCLUDED_DIRS.has(item)) {
70
+ walk(fullPath);
71
+ } else if (stat.isFile() && ['.md', '.ts', '.tsx', '.js', '.jsx'].includes(extname(item))) {
72
+ files.push(fullPath);
73
+ }
74
+ });
75
+ };
76
+
77
+ // Walk from repo root (one level up from toolkit/) so content
78
+ // files in bibliography/, docs/, mappings/, governance/ are scanned
79
+ walk('..');
80
+
81
+ let totalValid = 0;
82
+ let totalInvalid = 0;
83
+ let totalHallucinations = 0;
84
+ const errors = [];
85
+
86
+ files.forEach(file => {
87
+ try {
88
+ const content = readFileSync(file, 'utf8');
89
+ const audit = auditText(content);
90
+
91
+ totalValid += audit.references.filter(r => r.isValid).length;
92
+ totalInvalid += audit.references.filter(r => !r.isValid).length;
93
+ totalHallucinations += audit.hallucinations.length;
94
+
95
+ if (audit.validationErrors.length > 0 || audit.hallucinations.length > 0) {
96
+ errors.push({
97
+ file,
98
+ errors: audit.validationErrors,
99
+ hallucinations: audit.hallucinations
100
+ });
101
+ }
102
+ } catch (err) {
103
+ console.warn(`Warning: Could not read ${file}: ${err.message}`);
104
+ }
105
+ });
106
+
107
+ console.log(`Model Validation Results:`);
108
+ console.log(`Valid references: ${totalValid}`);
109
+ console.log(`Invalid references: ${totalInvalid}`);
110
+ console.log(`Hallucinations: ${totalHallucinations}`);
111
+
112
+ if (errors.length > 0) {
113
+ console.log(`\nErrors found:`);
114
+ errors.forEach(error => {
115
+ console.log(`File: ${error.file}`);
116
+ error.errors.forEach(err => console.log(` - ${err}`));
117
+ error.hallucinations.forEach(hall => console.log(` - Hallucination: ${hall}`));
118
+ });
119
+
120
+ if (totalInvalid > 0 || totalHallucinations > 0) {
121
+ console.log(`\n❌ Validation failed: Invalid references or hallucinations detected`);
122
+ process.exit(1);
123
+ }
124
+ } else {
125
+ console.log(`\n✅ Validation passed: No invalid references or hallucinations found`);
126
+ }
127
+ EOF
128
+
129
+ - name: Beyond-Base120 Memory Palace audit
130
+ run: |
131
+ cd toolkit
132
+ node --input-type=module << 'EOF'
133
+ import { readFileSync, readdirSync, statSync } from 'fs';
134
+ import { join, extname } from 'path';
135
+ import { auditBeyondBase120, formatBeyondReport } from './dist/extensions/beyondBase120Audit.js';
136
+ import { auditRegistry } from './dist/extensions/memoryPalace.js';
137
+
138
+ // Same exclusion logic as Base120 validation step
139
+ const EXCLUDED_DIRS = new Set(['node_modules', 'dist', 'src']);
140
+ const files = [];
141
+ const walk = (dir) => {
142
+ const items = readdirSync(dir);
143
+ items.forEach(item => {
144
+ const fullPath = join(dir, item);
145
+ const stat = statSync(fullPath);
146
+ if (stat.isDirectory() && !item.startsWith('.') && !EXCLUDED_DIRS.has(item)) {
147
+ walk(fullPath);
148
+ } else if (stat.isFile() && ['.md', '.ts', '.tsx', '.js', '.jsx'].includes(extname(item))) {
149
+ files.push(fullPath);
150
+ }
151
+ });
152
+ };
153
+ walk('..');
154
+
155
+ // Registry health check first — fail fast on duplicate/broken registry
156
+ const registryHealth = auditRegistry();
157
+ if (registryHealth.duplicateSlugs.length > 0 || registryHealth.duplicateNames.length > 0 || registryHealth.missingFields.length > 0) {
158
+ console.log('❌ Memory Palace registry is unhealthy:');
159
+ registryHealth.duplicateSlugs.forEach(s => console.log(` Duplicate slug: ${s}`));
160
+ registryHealth.duplicateNames.forEach(n => console.log(` Duplicate name: ${n}`));
161
+ registryHealth.missingFields.forEach(({ slug, fields }) => console.log(` Missing fields in ${slug}: ${fields.join(', ')}`));
162
+ process.exit(1);
163
+ }
164
+ console.log(`✅ Memory Palace registry healthy — ${registryHealth.totalEntries} entries`);
165
+
166
+ // Aggregate content for audit (concatenate all files)
167
+ let combinedContent = '';
168
+ files.forEach(file => {
169
+ try {
170
+ combinedContent += readFileSync(file, 'utf8') + '\n';
171
+ } catch (err) {
172
+ console.warn(`Warning: Could not read ${file}: ${err.message}`);
173
+ }
174
+ });
175
+
176
+ const report = auditBeyondBase120(combinedContent);
177
+ console.log(formatBeyondReport(report));
178
+
179
+ // Only ERROR findings fail CI (WARN is advisory)
180
+ const errors = report.findings.filter(f => f.severity === 'ERROR');
181
+ if (errors.length > 0) {
182
+ console.log(`\n❌ Beyond-Base120 audit failed: ${errors.length} error(s)`);
183
+ process.exit(1);
184
+ } else {
185
+ console.log(`\n✅ Beyond-Base120 audit passed`);
186
+ }
187
+ EOF
188
+
189
+ - name: Update metrics dashboard
190
+ if: github.ref == 'refs/heads/main'
191
+ run: |
192
+ # This would update the metrics dashboard with CI results
193
+ # For now, just log that we'd update it
194
+ echo "Would update docs/metrics/model-accuracy.md with CI results"
@@ -0,0 +1,152 @@
1
+ name: Validate Bibliography
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, develop ]
6
+ pull_request:
7
+ branches: [ main, develop ]
8
+ paths:
9
+ - 'bibliography/**/*.bib'
10
+ - 'toolkit/**/*.js'
11
+ - '.github/workflows/validate.yml'
12
+
13
+ jobs:
14
+ validate:
15
+ runs-on: ubuntu-latest
16
+
17
+ # Add permissions to allow writing comments on PRs
18
+ permissions:
19
+ contents: read
20
+ pull-requests: write
21
+ issues: write
22
+
23
+ steps:
24
+ - name: Checkout code
25
+ uses: actions/checkout@v4
26
+
27
+ - name: Setup Node.js
28
+ uses: actions/setup-node@v4
29
+ with:
30
+ node-version: '24'
31
+ cache: 'npm'
32
+ cache-dependency-path: toolkit/package-lock.json
33
+
34
+ - name: Install dependencies
35
+ run: |
36
+ cd toolkit
37
+ npm ci
38
+
39
+ - name: Run validation
40
+ id: validate
41
+ run: |
42
+ cd toolkit
43
+ npm run validate:ci
44
+
45
+ - name: Check for duplicates
46
+ run: |
47
+ cd toolkit
48
+ npm run check-dups
49
+
50
+ - name: Install jq
51
+ run: sudo apt-get update && sudo apt-get install -y jq
52
+
53
+ - name: Generate statistics
54
+ id: stats
55
+ run: |
56
+ cd toolkit
57
+ # Ensure clean JSON output by redirecting stderr to /dev/null
58
+ node src/stats.js ../bibliography --json 2>error.log > ../stats-output.json || {
59
+ echo "::error::Failed to generate stats"
60
+ echo "Error output:"
61
+ cat error.log
62
+ exit 1
63
+ }
64
+
65
+ # Verify the JSON is valid
66
+ if ! jq empty ../stats-output.json 2>jq-error.log; then
67
+ echo "::error::Invalid JSON output from stats script"
68
+ echo "JSON validation error:"
69
+ cat jq-error.log
70
+ echo "\nRaw output (first 1000 chars):"
71
+ head -c 1000 ../stats-output.json
72
+ exit 1
73
+ fi
74
+
75
+ - name: Comment PR with results
76
+ if: always() && github.event_name == 'pull_request'
77
+ uses: actions/github-script@v7
78
+ env:
79
+ # Use the GITHUB_TOKEN with the correct permissions
80
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
81
+ with:
82
+ script: |
83
+ // Use require instead of import to avoid any module issues
84
+ const fs = require('fs').promises;
85
+
86
+ try {
87
+ // Check if previous steps succeeded
88
+ const validationStatus = '${{ steps.validate.outcome }}';
89
+ const statsStatus = '${{ steps.stats.outcome }}';
90
+ const hasErrors = validationStatus !== 'success' || statsStatus !== 'success';
91
+
92
+ // Read and parse the stats file
93
+ let stats = null;
94
+ try {
95
+ const statsData = await fs.readFile('stats-output.json', 'utf8');
96
+ stats = JSON.parse(statsData);
97
+ } catch (parseError) {
98
+ console.error('Failed to parse stats JSON:', parseError);
99
+ // Continue with partial info if stats failed
100
+ }
101
+
102
+ // Generate the comment body using string concatenation to avoid YAML issues
103
+ const validationEmoji = hasErrors ? '❌' : '✅';
104
+ const validationStatusText = hasErrors ? 'Failed' : 'Passed';
105
+ const body = '## 📊 Bibliography Validation Results\n\n' +
106
+ `${validationEmoji} **Validation**: ${validationStatusText}\n\n` +
107
+ (stats ? '### Statistics\n' +
108
+ `- **Total Entries**: ${stats.total || 0}\n` +
109
+ `- **Entries with Abstracts**: ${stats.quality?.withAbstract || 0}/${stats.total || 0}\n` +
110
+ `- **Missing Abstracts**: ${(stats.total || 0) - (stats.quality?.withAbstract || 0)}\n\n` +
111
+ '### Transformation Coverage\n' +
112
+ `- P (Perspective): ${stats.transformations?.P || 0}\n` +
113
+ `- IN (Inversion): ${stats.transformations?.IN || 0}\n` +
114
+ `- CO (Composition): ${stats.transformations?.CO || 0}\n` +
115
+ `- DE (Decomposition): ${stats.transformations?.DE || 0}\n` +
116
+ `- RE (Recursion): ${stats.transformations?.RE || 0}\n` +
117
+ `- SY (Synthesis): ${stats.transformations?.SY || 0}\n\n` +
118
+ '### Quality Metrics\n' +
119
+ `- DOI Coverage: ${stats.total ? ((stats.quality?.withDOI || 0) / stats.total * 100).toFixed(1) : 0}% (${stats.quality?.withDOI || 0}/${stats.total || 0})\n` +
120
+ `- ISBN Coverage: ${stats.total ? ((stats.quality?.withISBN || 0) / stats.total * 100).toFixed(1) : 0}% (${stats.quality?.withISBN || 0}/${stats.total || 0})\n` +
121
+ `- Abstract Coverage: ${stats.total ? ((stats.quality?.withAbstract || 0) / stats.total * 100).toFixed(1) : 0}% (${stats.quality?.withAbstract || 0}/${stats.total || 0})\n` +
122
+ `- HUMMBL Keywords: ${stats.total ? ((stats.quality?.withKeywords || 0) / stats.total * 100).toFixed(1) : 0}% (${stats.quality?.withKeywords || 0}/${stats.total || 0})` :
123
+ '### Statistics\n\n⚠️ Unable to generate statistics. Please check the workflow logs.\n');
124
+
125
+ // Post the comment
126
+ await github.rest.issues.createComment({
127
+ issue_number: context.issue.number,
128
+ owner: context.repo.owner,
129
+ repo: context.repo.repo,
130
+ body: body
131
+ });
132
+
133
+ return 'Successfully posted PR comment';
134
+
135
+ } catch (error) {
136
+ console.error('Error in GitHub Script:', error);
137
+
138
+ // Post a fallback error comment
139
+ try {
140
+ await github.rest.issues.createComment({
141
+ issue_number: context.issue.number,
142
+ owner: context.repo.owner,
143
+ repo: context.repo.repo,
144
+ body: '❌ Failed to generate statistics. Please check the workflow logs for details.'
145
+ });
146
+ } catch (commentError) {
147
+ console.error('Failed to post error comment:', commentError);
148
+ }
149
+
150
+ // This will fail the step
151
+ throw error;
152
+ }
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env sh
2
+ . "$(dirname -- "$0")/_/husky.sh"
3
+
4
+ # Run validation in the toolkit directory
5
+ echo "🔍 Running pre-commit validation..."
6
+ cd toolkit && npm run validate
7
+
8
+ # Capture the exit code
9
+ VALIDATION_RESULT=$?
10
+
11
+ # Return to the root directory
12
+ cd ..
13
+
14
+ # Exit with the validation result
15
+ exit $VALIDATION_RESULT
@@ -0,0 +1,11 @@
1
+ {
2
+ "requiredFields": ["title", "author", "year"],
3
+ "optionalFields": ["doi", "url", "abstract", "keywords"],
4
+ "entryTypes": {
5
+ "article": ["journal", "volume", "number", "pages"],
6
+ "book": ["publisher", "isbn"],
7
+ "inproceedings": ["booktitle", "pages"]
8
+ },
9
+ "doiFormat": "^10\\.\\d{4,9}/[-._;()/:A-Z0-9]+$",
10
+ "yearFormat": "^\\d{4}$"
11
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,228 @@
1
+ # Changelog
2
+
3
+ All notable changes to the HUMMBL Bibliography will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.3.0] - 2026-04-09
9
+
10
+ ### Added
11
+
12
+ #### T13: Post-2024 Reasoning Models (new tier)
13
+ - `bibliography/T13_reasoning.bib` — 20 entries covering the o1/o3/R1-class reasoning model landscape
14
+ - Entries: `OpenAI2024o1SystemCard`, `OpenAI2025o3SystemCard`, `OpenAI2024o1Mini`, `OpenAI2024o1Tech`,
15
+ `DeepSeek2025R1`, `Guo2025DeepSeekR1Zero`, `Snell2024ScalingTestTime`, `Kumar2024ScalingInference`,
16
+ `Lightman2023PRM`, `Zelikman2022STAR`, `Madaan2023Selfrefine`, `Wang2023Selfconsistency`,
17
+ `Guo2024Critique`, `Yao2024ToT2`, `Ong2024RouteLLM`, `Anthropic2024Claude3`,
18
+ `Anthropic2025ClaudeModel`, `Gemini2024Team`, `Zheng2024JudgeBench`, `Chen2024AlphaCode2`
19
+ - 13/20 entries have arXiv DOIs (`10.48550/arXiv.*`); 7 are technical reports/blog posts with `% No DOI available`
20
+ - HUMMBL relevance: T13 grounds the "expensive reasoning" (pull engine) half of the push/pull architecture
21
+
22
+ #### NIST AI RMF + EU AI Act Crosswalk Tags
23
+ - 60 entries across T4 (20), T6 (20), T11 (20) tagged with `nist_functions` and `eu_ai_act_articles` fields
24
+ - `scripts/add_nist_tags.py` — crosswalk dict (60 entries) + `inject_tags()` function
25
+ - Enables queries like `node toolkit/src/query.js --nist-function GOVERN --format json`
26
+
27
+ #### ARCANA Citation Map
28
+ - `mappings/arcana_citations.json` — 28 ARCANA philosophical lens objects, each with `primary`, `secondary`, `gaps`
29
+ - Critical gaps documented: Weber, Bourdieu, Burnham, Chomsky, Marx, Nietzsche, Gramsci, McLuhan, Heidegger
30
+
31
+ #### BKI Evidence Audit
32
+ - `mappings/bki_evidence.json` — 4 BKI propositions + Biocognitive OS + Broccolilly Equation + HUMMBL governance failure thesis
33
+ - Coverage grades per proposition; 14 present entries; 9 missing entries documented
34
+ - Critical gap: `Edmondson1999PsychologicalSafety` absent from bibliography
35
+
36
+ #### Open Brain Ingest Script
37
+ - `scripts/ingest_to_open_brain.py` — stdlib-only POST to Open Brain `/ledger/post`
38
+ - `--dry-run` (default), `--post`, `--tier`, `--keyword`, `--limit`, `--verbose` flags
39
+ - Calls `node toolkit/src/query.js --format json` as subprocess; converts entries to `discovery` ledger payloads
40
+
41
+ #### llms.txt Updated (260 entries)
42
+ - Regenerated to include T13; 1,100+ lines
43
+ - Sections: Query API docs, HUMMBL keyword legend, 13 tier sections (T1–T13)
44
+
45
+ #### DOI Audit (40 entries, all pre-T13 tiers)
46
+ - `scripts/annotate_dois.py` — applies `% No DOI available` comments and verified `doi` fields
47
+ - 4 CrossRef-verified DOIs added: `Grasse1959Stigmergy`, `Sabater2005Trust`, `Bansal2019MentalModels`, `Piaget1952Origins`
48
+ - 41 `% No DOI available` annotations added across T1/T2/T4/T5/T6/T8/T9/T10/T11/T12
49
+
50
+ ### Quality Metrics (v1.3.0)
51
+
52
+ - ✅ **260 total entries** (20 × 13 tiers)
53
+ - ✅ 100% entries have abstracts
54
+ - ✅ 100% entries have HUMMBL transformation keywords
55
+ - ✅ 0 validation errors
56
+ - ✅ 0 cross-tier duplicate keys
57
+ - ✅ T7: 100% DOI coverage (20/20)
58
+ - ✅ T13: 65% DOI coverage (13/20, arXiv papers)
59
+ - ✅ Overall: ~55% DOI coverage (~142/260 est.)
60
+ - ✅ 60 entries with NIST AI RMF function tags
61
+ - ✅ 60 entries with EU AI Act article tags
62
+ - ✅ 28/28 ARCANA lenses mapped
63
+ - ✅ 4/4 BKI propositions mapped with coverage grades
64
+
65
+ ---
66
+
67
+ ## [1.2.0] - 2026-04-08
68
+
69
+ ### Added
70
+ - `mappings/` directory with ARCANA citation map and BKI evidence audit (initial commits)
71
+ - `scripts/ingest_to_open_brain.py` — initial version
72
+ - `CONTRIBUTING.md` — DOI convention documentation
73
+ - `toolkit/src/query.js` — programmatic JSON query API
74
+
75
+ ---
76
+
77
+ ## [1.1.0] - 2026-04-08
78
+
79
+ ### Added
80
+
81
+ #### New Tiers (T4–T12)
82
+ - **T4 (Governance & Ethics)**: 20 entries on AI policy, fairness, accountability, and alignment
83
+ - **T5 (Engineering Patterns)**: 20 entries on distributed systems, DevOps, chaos engineering, and observability
84
+ - **T6 (Philosophy of Mind)**: 20 entries on phenomenology, embodied cognition, and consciousness
85
+ - **T7 (Emerging AI Research)**: 20 entries on LLM agents, tool use, RAG, benchmarks, and multi-agent systems — fully DOI-enriched (100%)
86
+ - **T8 (Cognition & Learning)**: 20 entries on learning theory, memory systems, and metacognition
87
+ - **T9 (Economics & Incentives)**: 20 entries on mechanism design, market design, and AI economics
88
+ - **T10 (Collaboration & Teams)**: 20 entries on organizational design, coordination theory, and team dynamics
89
+ - **T11 (Security & Trust)**: 20 entries on adversarial ML, threat modeling, and trust architectures
90
+ - **T12 (Complexity Science)**: 20 entries on complex adaptive systems, emergence, and network theory
91
+
92
+ #### New Entry
93
+ - `Zhuge2024GPTSwarm` — "GPTSwarm: Language Agents as Optimizable Graphs" (NeurIPS 2024, arXiv:2402.16823); replaces duplicate T7 entry
94
+
95
+ #### DOI Enrichment — T7 (10 entries)
96
+ Added `doi = {10.48550/arXiv.XXXX.XXXXX}` to: `Yao2023ReAct`, `Wei2022ChainOfThought`, `Lewis2020RAG`,
97
+ `Schick2023Toolformer`, `Liu2024AgentBench`, `Jimenez2024SWEBench`, `Shinn2023Reflexion`,
98
+ `Schulhoff2024PromptReport`, `Wang2023Voyager`, `Ong2024RouteLLM`.
99
+ T7 is now **100% DOI-covered** (20/20).
100
+
101
+ #### DOI Annotations — T1 and T3
102
+ - Added `% No DOI available` comments to 6 unannotated T1 entries:
103
+ `Newell1972Human`, `Csikszentmihalyi1990Flow`, `VonNeumann1944GameTheory`,
104
+ `Gladwell2000TippingPoint`, `Schon1983ReflectivePractitioner`, `Gibson1979EcologicalApproach`
105
+ - Added `% No DOI available` comments to all 20 T3 entries (all trade business books)
106
+
107
+ ### Fixed
108
+
109
+ - **Cross-tier duplicate**: `Chen2023FrugalGPT` existed in both T7 (`@inproceedings`) and T9 (`@article`).
110
+ T7 instance removed and replaced with `Zhuge2024GPTSwarm`. T9 retains the canonical entry.
111
+ - **Wrong DOI**: `Yao2023TreeOfThoughts` had `doi = {10.48550/arXiv.2305.14325}` (Du2023Debate's DOI).
112
+ Corrected to `doi = {10.48550/arXiv.2305.10601}`.
113
+ - **Wrong URL and DOI**: `Patil2023Gorilla` had URL/DOI pointing to arXiv `2305.10601` (Tree of Thoughts).
114
+ Corrected to `2305.15324` (Gorilla's actual arXiv ID).
115
+
116
+ ### Quality Metrics (v1.1.0)
117
+
118
+ - ✅ 240 total entries (20 × 12 tiers)
119
+ - ✅ 100% entries have abstracts
120
+ - ✅ 100% entries have HUMMBL transformation keywords
121
+ - ✅ 0 validation errors
122
+ - ✅ 0 cross-tier duplicate keys
123
+ - ✅ T7: 100% DOI coverage (20/20)
124
+ - ⚠️ Overall DOI coverage: ~51% (122/240 est.) — T2, T4, T6, T8–T12 audit pending
125
+ - ⚠️ T5 blog posts need `% No DOI available` annotation (4 entries)
126
+
127
+ ---
128
+
129
+ ## [1.0.0] - 2025-01-30
130
+
131
+ ### Added
132
+
133
+ #### Bibliography
134
+ - Initial bibliography with 48 curated entries
135
+ - 17 canonical works (T1) covering foundational theories
136
+ - 16 empirical research papers (T2) with rigorous peer review
137
+ - 15 applied practitioner texts (T3) for industry applications
138
+ - Complete HUMMBL transformation mappings for all entries
139
+ - 100% abstract coverage across all entries
140
+ - 29% DOI coverage, 73% ISBN coverage
141
+
142
+ #### Toolkit
143
+ - `validate.js`: Comprehensive BibTeX validation with error/warning reports
144
+ - `check-duplicates.js`: Cross-file duplicate detection by title, DOI, and ISBN
145
+ - `fix-duplicates.js`: Automated duplicate removal with tier prioritization
146
+ - `find-missing-dois.js`: DOI enrichment via CrossRef API integration
147
+ - `stats.js`: Analytics dashboard with transformation coverage metrics
148
+ - `extract-keywords.js`: HUMMBL transformation keyword extraction and analysis
149
+ - `merge-entries.js`: Interactive entry consolidation tool
150
+ - NPM scripts for all toolkit operations
151
+ - CI mode for automated validation
152
+
153
+ #### Documentation
154
+ - Comprehensive README.md with quick start guide
155
+ - CONTRIBUTING.md with detailed contribution guidelines
156
+ - TRANSFORMATION_GUIDE.md explaining the six HUMMBL transformations
157
+ - QUALITY_STANDARDS.md defining entry requirements and formatting
158
+ - GAP_ANALYSIS.md tracking coverage gaps and priorities
159
+ - Toolkit README.md with tool documentation
160
+
161
+ #### Automation
162
+ - GitHub Actions workflow for PR validation
163
+ - Weekly statistics report generation workflow
164
+ - Manual DOI enrichment workflow
165
+ - Pre-commit hooks using Husky for validation
166
+ - Setup script for Git hook configuration
167
+ - Monthly review script for automated reporting
168
+
169
+ #### Project Infrastructure
170
+ - Issue templates for new entries and quality improvements
171
+ - Three-tier directory structure (T1/T2/T3)
172
+ - HUMMBL transformation mapping schema (JSON)
173
+ - Reports directory for generated statistics
174
+ - MIT License
175
+
176
+ ### Transformation Coverage
177
+
178
+ Current distribution:
179
+ - **SY (Synthesis)**: 20 entries
180
+ - **CO (Composition)**: 18 entries
181
+ - **P (Perspective)**: 17 entries
182
+ - **RE (Recursion)**: 16 entries
183
+ - **IN (Inversion)**: 15 entries
184
+ - **DE (Decomposition)**: 12 entries
185
+
186
+ ### Quality Metrics
187
+
188
+ - ✅ 100% entries have abstracts
189
+ - ✅ 100% entries have HUMMBL transformation keywords
190
+ - ✅ 0 validation errors
191
+ - ✅ 0 duplicate entries
192
+ - ⚠️ 29% DOI coverage (target: 40-50%)
193
+ - ⚠️ 73% ISBN coverage (target: 85-90%)
194
+
195
+ ### Known Issues
196
+
197
+ - DOI coverage below target (planned improvement in Q1 2025)
198
+ - Decomposition (DE) transformation underrepresented (4-6 entries needed)
199
+ - Inversion (IN) transformation slightly below target (1-3 entries needed)
200
+
201
+ ## [Unreleased]
202
+
203
+ ### Planned for v1.2.0 (Q3 2026)
204
+
205
+ - Complete `% No DOI available` annotation for T2, T4, T6, T8–T12
206
+ - DOI enrichment for T5 academic entries (Grasse1959, Rao1995, Sabater2005)
207
+ - T5 blog post annotation cleanup (4 entries)
208
+ - Evaluate T13 for post-2024 reasoning model papers (DeepSeek-R1, o3, etc.)
209
+ - Implement watch mode for continuous validation
210
+ - Enhanced statistics visualization
211
+
212
+ ### Future Considerations
213
+
214
+ - Integration with Zotero/Mendeley
215
+ - Citation relationship analysis
216
+ - Automated entry suggestions based on gaps
217
+ - Community contribution portal
218
+ - Multi-language support
219
+ - API for programmatic access
220
+
221
+ ---
222
+
223
+ **Note**: This changelog follows semantic versioning. Given the nature of a bibliography:
224
+ - **MAJOR** versions indicate significant structural changes or complete reorganizations
225
+ - **MINOR** versions indicate new entries, new tools, or significant enhancements
226
+ - **PATCH** versions indicate fixes to existing entries or minor improvements
227
+
228
+ For detailed commit history, see: https://github.com/hummbl-dev/hummbl-bibliography/commits/main