Skip to content

Commit 989bac8

Browse files
easelclaude
andcommitted
schema: align all artifact-type required_sections with template H2s
Brings scripts/helix_validate_artifact_meta.py to green across 47 artifact types. Renames — required_section now matches the H2 already in template.md: - opportunity-canvas: go_nogo_checklist -> go_no_go_decision - product-vision: value_propositions -> key_value_propositions - compliance-requirements: drop regulatory_landscape_analysis; data_classification -> data_classification_and_handling - threat-model: stride_analysis -> stride_threat_analysis - architecture: system_context/container_diagram -> level_1_system_context/level_2_container_diagram - data-architecture: quality_contracts/governance_and_access/ databricks_platform_design -> pipeline_level_quality_contracts/ governance_and_access_control/platform_design - story-test-plan: acceptance_criteria_mapping -> acceptance_criteria_test_mapping - deployment-checklist: go_no_go -> go_or_no_go_decision Drops — H3-level entries the validator (H2-only) cannot see; prompt and template still enforce H3 substructure: - pr-faq: 14 H3 subsections -> the 4 H2 anchors - feature-specification: FR/NFR H3s -> Requirements H2 - research-plan: drop knowledge_gaps/resource_requirements/ expected_outcomes; rename success_criteria/risk_assessment to completion_criteria/research_risks - stakeholder-map: drop stakeholder_identification/engagement_strategy/ escalation_path - test-plan: test_levels/critical_paths -> testing_strategy/ acceptance_criteria_layer_allocation - metrics-dashboard: drop review_window Validator: skip artifacts where output.format != markdown (metric-definition is YAML; its schema lives in YAML keys). Q1 — technical-design stops echoing AC (ADR-009): - Remove ## Acceptance Criteria H2 from template + example - Drop story_reference/acceptance_criteria_review/definition_of_done; rename testing_approach -> testing - Quality check is now acceptance_criteria_realized (AC-IDs, no text) - Automated check requires US-{n}-AC{m} references - Example illustrates the pattern in the Testing section Gates: validator OK (47/47), lint-prose 0/0/0, generator drift OK, link check 73,351/73,351, redundancy OK. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 2a669a7 commit 989bac8

21 files changed

Lines changed: 145 additions & 107 deletions

File tree

docs/website/content/artifact-types/design/technical-design.md

Lines changed: 12 additions & 22 deletions
Large diffs are not rendered by default.
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: "Databricks Platform Substitution Reference"
3+
slug: databricks-platform-substitution
4+
generated: true
5+
---
6+
# Databricks Platform Substitution Reference
7+
8+
If you are adopting HELIX data artifacts (`data-prd`, `data-architecture`,
9+
`data-quality-expectations`) on a platform other than Databricks, substitute
10+
the platform-specific terms below. The artifact templates and prompts stay
11+
the same; only the named platform features change.
12+
13+
## Catalog / Governance
14+
15+
| Databricks Concept | Snowflake Equivalent | BigQuery Equivalent | On-Prem / Other |
16+
|---|---|---|---|
17+
| Unity Catalog (UC) hierarchy (metastore → catalog → schema → volume/table) | Database + Schema + Table | Project + Dataset + Table | Database + Schema |
18+
| UC fine-grained access (row filters, column masks) | Row-access policies + masking policies | Authorized views + column-level security | Database views, RLS extensions |
19+
| UC lineage | Object dependencies + Account Usage | Data lineage in Dataplex | Manual lineage in dbt/Marquez |
20+
21+
## Ingestion / Streaming
22+
23+
| Databricks Concept | Snowflake Equivalent | BigQuery Equivalent | On-Prem / Other |
24+
|---|---|---|---|
25+
| Auto Loader (incremental cloud-file ingestion) | Snowpipe or native connectors | Dataflow, BigQuery Connector Hub, Streaming Inserts | Apache NiFi, Kafka connectors |
26+
| Streaming Tables (declarative streaming with EXPECT) | Stream-triggered materialized views + native checks | Dataflow with Beam assertions | Apache Flink with custom state management |
27+
| Spark Structured Streaming | Snowflake streams + tasks | Dataflow | Apache Spark / Flink |
28+
29+
## Orchestration / Pipelines
30+
31+
| Databricks Concept | Snowflake Equivalent | BigQuery Equivalent | On-Prem / Other |
32+
|---|---|---|---|
33+
| Databricks Workflows / Jobs | Snowflake Tasks | Cloud Composer (Airflow) or Cloud Workflows | Apache Airflow, Dagster, dbt Cloud |
34+
| Delta Live Tables / SDP pipeline orchestration | Dynamic Tables | Dataform | dbt, Dagster assets |
35+
36+
## Quality / Contracts
37+
38+
| Databricks Concept | Snowflake Equivalent | BigQuery Equivalent | On-Prem / Other |
39+
|---|---|---|---|
40+
| SDP `EXPECT ... ON VIOLATION ...` | Data Quality checks + Task error handling | BigQuery Data Quality API + Cloud Workflows | dbt tests, Great Expectations, custom assertions |
41+
| SDP Genie test generation | dbt auto-generate tests from table samples | BigQuery Data Catalog insights | dbt, custom metadata scanning |
42+
| Lakeview dashboards (quality monitoring) | Snowflake Dashboards | Looker, Data Studio | Grafana, custom dashboards |
43+
44+
## Storage / Formats
45+
46+
| Databricks Concept | Snowflake Equivalent | BigQuery Equivalent | On-Prem / Other |
47+
|---|---|---|---|
48+
| Delta Lake format | Iceberg or proprietary formats | Native BigQuery tables | Apache Parquet, Iceberg, Hudi |
49+
| Medallion layers (Bronze / Silver / Gold) | Same pattern applies universally | Same pattern applies universally | Same pattern applies universally |
50+
51+
## Compute / Cost
52+
53+
| Databricks Concept | Snowflake Equivalent | BigQuery Equivalent | On-Prem / Other |
54+
|---|---|---|---|
55+
| DBU budget estimation | Credit consumption | On-demand or flat-rate pricing | Compute resource allocation |
56+
| All-purpose / Jobs / Serverless SQL compute tiers | Warehouses (XS through 6XL) | On-demand vs reservation slots | Cluster sizing |

scripts/helix_validate_artifact_meta.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,33 @@ def extract_h2_slugs(template_path: Path) -> list[str]:
4040
return slugs
4141

4242

43+
def extract_output_format(meta_path: Path) -> str | None:
44+
"""Extract `output.format` from a HELIX meta.yml, or None if absent.
45+
46+
The validator's H2-vs-required_sections check only applies to markdown
47+
artifacts. YAML artifacts (metric-definition, etc.) declare their schema
48+
by YAML keys, not template H2s, so they are skipped.
49+
"""
50+
text = meta_path.read_text(encoding="utf-8").splitlines()
51+
in_output = False
52+
for line in text:
53+
if re.match(r"^output\s*:\s*$", line):
54+
in_output = True
55+
continue
56+
if in_output:
57+
if line and not line.startswith((" ", "\t")) and ":" in line:
58+
return None
59+
m = re.match(r"^\s+format\s*:\s*(.+?)\s*$", line)
60+
if m:
61+
value = m.group(1).strip()
62+
if (value.startswith('"') and value.endswith('"')) or (
63+
value.startswith("'") and value.endswith("'")
64+
):
65+
value = value[1:-1]
66+
return value
67+
return None
68+
69+
4370
def extract_required_sections(meta_path: Path) -> list[str] | None:
4471
"""Parse out validation.required_sections from a HELIX meta.yml.
4572
@@ -127,6 +154,11 @@ def validate(art_dir: Path) -> list[str]:
127154
template_path = art_dir / "template.md"
128155
failures: list[str] = []
129156

157+
# Skip non-markdown artifacts: their schema lives in YAML keys, not H2s.
158+
fmt = extract_output_format(meta_path)
159+
if fmt and fmt.lower() != "markdown":
160+
return failures
161+
130162
required = extract_required_sections(meta_path)
131163
if not required:
132164
return failures # no required_sections declared, nothing to check

workflows/activities/00-discover/artifacts/opportunity-canvas/meta.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ validation:
2222
- solution_concept
2323
- key_metrics
2424
- unfair_advantage
25-
- go_nogo_checklist
25+
- go_no_go_decision
2626

2727
quality_checks:
2828
- check: problem_validated

workflows/activities/00-discover/artifacts/product-vision/meta.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ validation:
2222
- vision
2323
- user_experience
2424
- target_market
25-
- value_propositions
25+
- key_value_propositions
2626
- success_definition
2727
- why_now
2828

workflows/activities/01-frame/artifacts/compliance-requirements/meta.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ output:
1717

1818
validation:
1919
required_sections:
20-
- regulatory_landscape_analysis
20+
- applicable_regulations
2121
- compliance_requirements_matrix
22-
- data_classification
22+
- data_classification_and_handling
2323
- implementation_plan
2424

2525
quality_checks:

workflows/activities/01-frame/artifacts/feature-specification/meta.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,10 @@ output:
2424
validation:
2525
required_sections:
2626
- problem_statement
27-
- functional_requirements
28-
- non_functional_requirements
29-
- edge_cases
27+
- requirements
28+
- edge_cases_and_error_handling
3029
- success_metrics
31-
- constraints
30+
- constraints_and_assumptions
3231
- out_of_scope
3332

3433
quality_checks:

workflows/activities/01-frame/artifacts/pr-faq/meta.yml

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,9 @@ output:
1717

1818
validation:
1919
required_sections:
20+
- press_release
2021
- internal_product_argument
21-
- core_thesis
22-
- mechanism
23-
- quality_model
24-
- decision_autonomy_boundary
25-
- press_release_headline
26-
- press_release_subhead
27-
- press_release_summary
28-
- the_problem
29-
- the_solution
30-
- leader_quote
31-
- how_it_works
32-
- customer_quote
33-
- availability
34-
- external_faqs
35-
- internal_faqs
22+
- faq
3623
- downstream_projection
3724

3825
quality_checks:

workflows/activities/01-frame/artifacts/research-plan/meta.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,10 @@ output:
1919
validation:
2020
required_sections:
2121
- research_objectives
22-
- knowledge_gaps
2322
- research_methods
24-
- success_criteria
23+
- completion_criteria
2524
- timeline
26-
- resource_requirements
27-
- risk_assessment
28-
- expected_outcomes
25+
- research_risks
2926

3027
quality_checks:
3128
- check: objectives_measurable

workflows/activities/01-frame/artifacts/stakeholder-map/meta.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,11 @@ output:
1818

1919
validation:
2020
required_sections:
21-
- stakeholder_identification
21+
- primary_stakeholders_high_influence_high_interest
22+
- secondary_stakeholders_variable_influence_interest
2223
- raci_matrix
2324
- power_interest_grid
2425
- communication_plan
25-
- engagement_strategy
26-
- escalation_path
2726

2827
quality_checks:
2928
- check: raci_completeness

0 commit comments

Comments
 (0)