98 lines
3.2 KiB
Text
98 lines
3.2 KiB
Text
let _horizon_type = [| 'Days, 'Weeks, 'Months, 'Quarters, 'Years, 'Ongoing |] in
|
|
let _pole_type = [| 'Yang, 'Yin, 'Spiral |] in
|
|
let _audience_type = [| 'Developer, 'EndUser, 'Contributor, 'Agent, 'PublicInternet |] in
|
|
let _channel_type = [| 'GitRepo, 'PublishedSite, 'RSSFeed, 'Newsletter, 'SocialFeed, 'CLI, 'Docs |] in
|
|
let _seo_intent_type = [| 'Organic, 'Reference, 'Community, 'None |] in
|
|
let _severity_type = [| 'Hard, 'Soft |] in
|
|
let _channel_status = [| 'Active, 'Planned, 'Paused, 'Retired |] in
|
|
|
|
let _purpose_declaration_type = {
|
|
id | String,
|
|
name | String,
|
|
pole | _pole_type,
|
|
statement | String,
|
|
elaboration | String,
|
|
primary_audience | Array _audience_type,
|
|
anti_purpose | String,
|
|
horizon | _horizon_type,
|
|
} in
|
|
|
|
let _publication_intent_type = {
|
|
id | String,
|
|
name | String,
|
|
description | String,
|
|
channels | Array _channel_type,
|
|
readiness_gate | String,
|
|
trigger_condition | String,
|
|
anti_patterns | Array String,
|
|
} in
|
|
|
|
let _content_objective_type = {
|
|
id | String,
|
|
name | String,
|
|
description | String,
|
|
target_audience | Array _audience_type,
|
|
content_kinds | Array String,
|
|
purpose_alignment_note | String,
|
|
seo_intent | _seo_intent_type,
|
|
horizon | _horizon_type,
|
|
active | Bool | default = true,
|
|
} in
|
|
|
|
let _validation_criteria_type = {
|
|
id | String,
|
|
name | String,
|
|
description | String,
|
|
check_hint | String,
|
|
severity | _severity_type,
|
|
applies_to | Array String,
|
|
} in
|
|
|
|
let _seo_criterion_type = {
|
|
id | String,
|
|
name | String,
|
|
description | String,
|
|
rationale | String,
|
|
check_hint | String,
|
|
severity | _severity_type,
|
|
applies_to | Array String,
|
|
} in
|
|
|
|
let _propagation_channel_type = {
|
|
id | String,
|
|
name | String,
|
|
channel | _channel_type,
|
|
description | String,
|
|
status | _channel_status,
|
|
target_audience | Array _audience_type,
|
|
content_kinds | Array String,
|
|
seo_role | _seo_intent_type | default = 'None,
|
|
frequency | String | optional,
|
|
gate_id | String | optional,
|
|
} in
|
|
|
|
let _purpose_file_type = {
|
|
declaration | _purpose_declaration_type,
|
|
publication_intent | _publication_intent_type,
|
|
content_objectives | Array _content_objective_type,
|
|
validation_criteria | Array _validation_criteria_type,
|
|
seo_criteria | Array _seo_criterion_type,
|
|
propagation_channels | Array _propagation_channel_type,
|
|
} in
|
|
|
|
{
|
|
Horizon = _horizon_type,
|
|
Pole = _pole_type,
|
|
Audience = _audience_type,
|
|
Channel = _channel_type,
|
|
SeoIntent = _seo_intent_type,
|
|
Severity = _severity_type,
|
|
ChannelStatus = _channel_status,
|
|
PurposeDeclaration = _purpose_declaration_type,
|
|
PublicationIntent = _publication_intent_type,
|
|
ContentObjective = _content_objective_type,
|
|
ValidationCriteria = _validation_criteria_type,
|
|
SeoCriterion = _seo_criterion_type,
|
|
PropagationChannel = _propagation_channel_type,
|
|
PurposeFile = _purpose_file_type,
|
|
}
|