Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
380 changes: 380 additions & 0 deletions tests/extension_configs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,380 @@
"""Config bundles exercising engine knobs the shipped template leaves at
their defaults: membership, mermaid diagrams, last_verified staleness,
index pinning + sync drift, reverse-dependency fields, ADRs, subsystem
sharding, and coverage reports. Feature-named test data, not templates;
values originate from retired variant configs (see git history)."""


def index_entry_extra(fields):
return f"(updated {fields.get('updated', '?')})"


# knobs: infra
INFRA = {'page_dirs': ['components',
'topology',
'concepts',
'runbooks',
'incidents',
'synthesis',
'queries',
'sources'],
'non_page_allowed': ['CLAUDE.md',
'index.md',
'log.md',
'lint.py',
'wikilint',
'taxonomy.md',
'raw',
'workflows',
'.git',
'.gitignore',
'.githooks',
'.claude'],
'skills_dir': '.claude/skills',
'skills_prefix': 'wiki-',
'raw_dir': 'raw',
'inbox_dir': 'raw/inbox',
'inbox_warn_count': 10,
'inbox_warn_age_days': 14,
'claude_md_max_lines': 200,
'taxonomy_file': 'taxonomy.md',
'contested_max_days': 30,
'reverse_fields': ['depends_on'],
'membership': {'member_type': 'component',
'active_statuses': ['active'],
'container_type': 'topology',
'container_field': 'includes'},
'required_fields': ['type', 'created', 'updated', 'description', 'tags'],
'type_required': {'component': ['component_kind', 'status', 'last_verified'],
'topology': ['scope', 'includes'],
'concept': [],
'runbook': [],
'incident': [],
'synthesis': [],
'source': [],
'query': []},
'enum_fields': {'confidence': ['low', 'contested']},
'type_enum_fields': {'component': {'component_kind': ['host',
'vm',
'container',
'service',
'device',
'subnet',
'peer',
'volume'],
'status': ['active',
'planned',
'deprecated',
'retired']},
'topology': {'scope': ['physical',
'l2',
'l3',
'service',
'trust',
'data-flow']}},
'path_fields': ['sources', 'includes'],
'edge_fields': ['depends_on'],
'staleness': [{'field': 'last_verified',
'types': ['component'],
'max_days': 60,
'severity': 'warning'}],
'sync_drift': None,
'criticality_field': None,
'mermaid_required_types': ['topology'],
'mermaid_node_warn': None,
'mermaid_node_error': None,
'adr_dirs': [],
'index_mode': 'flat',
'index_sections': [('Components', ['component']),
('Topology', ['topology']),
('Runbooks', ['runbook']),
('Incidents', ['incident']),
('Concepts', ['concept']),
('Synthesis', ['synthesis']),
('Sources', ['source']),
('Queries', ['query'])],
'owner_review_max_days': None,
'coverage': False}

# knobs: pinned repo
PINNED_REPO = {'page_dirs': ['modules',
'services',
'apis',
'data-models',
'architecture',
'adrs',
'concepts',
'runbooks',
'postmortems',
'synthesis',
'queries'],
'non_page_allowed': ['CLAUDE.md',
'index.md',
'log.md',
'lint.py',
'wikilint',
'taxonomy.md',
'raw',
'workflows',
'.git',
'.gitignore',
'.githooks',
'.claude'],
'skills_dir': '.claude/skills',
'skills_prefix': 'wiki-',
'raw_dir': 'raw',
'inbox_dir': 'raw/inbox',
'inbox_warn_count': 10,
'inbox_warn_age_days': 14,
'claude_md_max_lines': 200,
'taxonomy_file': 'taxonomy.md',
'contested_max_days': 30,
'reverse_fields': ['depends_on',
'defined_in',
'modules',
'exposes',
'consumes',
'producers',
'consumers'],
'membership': {'member_type': 'module',
'active_statuses': ['active'],
'container_type': 'architecture',
'container_field': 'includes'},
'required_fields': ['type', 'created', 'updated', 'description', 'tags'],
'type_required': {'module': ['source_path',
'language',
'status',
'last_verified_commit',
'last_verified'],
'service': ['source_path',
'deployment',
'last_verified_commit',
'last_verified'],
'api': ['api_kind',
'defined_in',
'stability',
'last_verified_commit'],
'data-model': ['model_kind',
'defined_in',
'storage',
'last_verified_commit'],
'architecture': ['scope', 'includes'],
'adr': ['adr_number', 'status', 'date'],
'concept': [],
'runbook': [],
'postmortem': [],
'synthesis': [],
'source': [],
'query': []},
'enum_fields': {'confidence': ['low', 'contested']},
'type_enum_fields': {'module': {'status': ['active',
'experimental',
'deprecated',
'removed']},
'api': {'api_kind': ['http',
'grpc',
'cli',
'library',
'event'],
'stability': ['stable',
'beta',
'experimental',
'deprecated']},
'data-model': {'model_kind': ['db-table',
'type',
'schema',
'message']},
'architecture': {'scope': ['system',
'service',
'module',
'data-flow',
'deployment',
'request-flow']},
'adr': {'status': ['proposed',
'accepted',
'superseded',
'rejected']}},
'path_fields': ['sources',
'includes',
'defined_in',
'modules',
'exposes',
'consumes',
'producers',
'consumers',
'supersedes',
'superseded_by'],
'edge_fields': ['depends_on'],
'staleness': [],
'sync_drift': ('last_verified_commit',
['module', 'service', 'api', 'data-model']),
'criticality_field': None,
'mermaid_required_types': ['architecture'],
'mermaid_node_warn': None,
'mermaid_node_error': None,
'adr_dirs': ['adrs'],
'index_mode': 'flat',
'index_sections': [('Services', ['service']),
('Modules', ['module']),
('APIs', ['api']),
('Data Models', ['data-model']),
('Architecture', ['architecture']),
('ADRs', ['adr']),
('Runbooks', ['runbook']),
('Postmortems', ['postmortem']),
('Concepts', ['concept']),
('Synthesis', ['synthesis']),
('Queries', ['query'])],
'owner_review_max_days': None,
'coverage': False}

# knobs: sharded repo
SHARDED_REPO = {'page_dirs': ['subsystems',
'adrs',
'architecture',
'concepts',
'runbooks',
'postmortems',
'synthesis',
'queries'],
'non_page_allowed': ['CLAUDE.md',
'index.md',
'log.md',
'coverage.md',
'glossary.md',
'lint.py',
'wikilint',
'taxonomy.md',
'raw',
'workflows',
'.git',
'.gitignore',
'.githooks',
'.claude'],
'skills_dir': '.claude/skills',
'skills_prefix': 'wiki-',
'raw_dir': 'raw',
'inbox_dir': 'raw/inbox',
'inbox_warn_count': 10,
'inbox_warn_age_days': 14,
'claude_md_max_lines': 200,
'taxonomy_file': 'taxonomy.md',
'contested_max_days': 30,
'reverse_fields': ['depends_on',
'defined_in',
'modules',
'exposes',
'consumes',
'producers',
'consumers'],
'membership': None,
'required_fields': ['type',
'created',
'updated',
'description',
'tags',
'subsystem'],
'type_required': {'subsystem': ['owners', 'mission', 'last_owner_review'],
'owners': [],
'module': ['source_path',
'language',
'status',
'criticality',
'last_verified_commit',
'last_verified',
'verification_method'],
'service': ['source_path',
'deployment',
'last_verified_commit',
'last_verified'],
'api': ['api_kind',
'defined_in',
'stability',
'last_verified_commit'],
'data-model': ['model_kind',
'defined_in',
'storage',
'last_verified_commit'],
'architecture': ['scope', 'includes'],
'adr': ['adr_number', 'status', 'date'],
'concept': [],
'runbook': [],
'postmortem': [],
'synthesis': [],
'source': [],
'query': []},
'enum_fields': {'confidence': ['low', 'contested']},
'type_enum_fields': {'module': {'status': ['active',
'experimental',
'deprecated',
'removed'],
'criticality': ['load-bearing',
'important',
'normal',
'peripheral'],
'verification_method': ['full',
'spot-check',
'signature-only',
'declared-by-owner']},
'api': {'api_kind': ['http',
'grpc',
'cli',
'library',
'event'],
'stability': ['stable',
'beta',
'experimental',
'deprecated']},
'data-model': {'model_kind': ['db-table',
'type',
'schema',
'message']},
'architecture': {'scope': ['system',
'service',
'module',
'data-flow',
'deployment',
'request-flow']},
'adr': {'status': ['proposed',
'accepted',
'superseded',
'rejected']}},
'path_fields': ['sources',
'includes',
'defined_in',
'modules',
'exposes',
'consumes',
'producers',
'consumers',
'supersedes',
'superseded_by',
'key_modules',
'key_services',
'key_adrs'],
'edge_fields': ['depends_on'],
'staleness': [],
'sync_drift': ('last_verified_commit',
['module', 'service', 'api', 'data-model']),
'criticality_field': 'criticality',
'mermaid_required_types': ['architecture'],
'mermaid_node_warn': 30,
'mermaid_node_error': 50,
'adr_dirs': ['adrs', 'subsystems/*/adrs'],
'index_mode': 'subsystems',
'index_sections': [('ADRs', ['adr']),
('Architecture', ['architecture']),
('Concepts', ['concept']),
('Runbooks', ['runbook']),
('Postmortems', ['postmortem']),
('Synthesis', ['synthesis']),
('Queries', ['query'])],
'owner_review_max_days': 90,
'coverage': True}


EXTENSION_CONFIGS = {
"infra": INFRA,
"pinned-repo": PINNED_REPO,
"sharded-repo": SHARDED_REPO,
}
Loading
Loading