Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

Commit 95433f9

Browse files
committed
feat(adr-011): align example schema to schema.org/Article
Renames the template's demo schema from 'example' to 'article' and aligns its properties to schema.org/Article (name, description, identifier, dateCreated, author) per ADR-011. Updates the deep-link listener to point at the new 'article' schema slug and renames seed objects to match. The template is the canonical reference apps copy from, so it must demonstrate the ADR-011 rule (use schema.org vocabulary instead of ad-hoc domain types whenever a standard type fits).
1 parent 3583cfe commit 95433f9

2 files changed

Lines changed: 54 additions & 28 deletions

File tree

lib/Listener/DeepLinkRegistrationListener.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,15 @@ public function handle(Event $event): void
5353
return;
5454
}
5555

56-
// Register example object deep links.
56+
// Register Article object deep links (schema.org/Article — see ADR-011).
5757
// Replace 'app-template' with your app ID and update the register slug,
5858
// schema slug, and URL template to match your app's actual schemas.
5959
// ADR-004: deep link URL MUST use path format (history mode), NOT hash format.
6060
$event->register(
6161
appId: 'app-template',
6262
registerSlug: 'app-template',
63-
schemaSlug: 'example',
64-
urlTemplate: '/apps/app-template/examples/{uuid}'
63+
schemaSlug: 'article',
64+
urlTemplate: '/apps/app-template/items/{uuid}'
6565
);
6666

6767
}//end handle()

lib/Settings/app_template_register.json

Lines changed: 51 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,57 +14,83 @@
1414
"paths": {},
1515
"components": {
1616
"schemas": {
17-
"example": {
18-
"slug": "example",
17+
"article": {
18+
"slug": "article",
1919
"icon": "FileDocumentOutline",
2020
"version": "0.1.0",
21-
"title": "Example",
22-
"description": "Example schema — replace with your app's actual schemas.",
21+
"title": "Article",
22+
"description": "schema.org/Articlea written composition published in print or digital form. Aligned with https://schema.org/Article per ADR-011: use schema.org vocabulary instead of ad-hoc domain types whenever a standard type fits.",
2323
"type": "object",
24+
"x-schema-org": "https://schema.org/Article",
2425
"required": [
25-
"title"
26+
"name"
2627
],
2728
"properties": {
28-
"title": {
29+
"name": {
2930
"type": "string",
30-
"description": "The title of the example object",
31-
"example": "My example"
31+
"description": "The name/headline of the article (schema.org/name).",
32+
"example": "Getting started with the app template"
3233
},
3334
"description": {
3435
"type": "string",
35-
"description": "An optional description",
36-
"example": "This is an example"
36+
"description": "A short description of the article (schema.org/description).",
37+
"example": "A worked example showing how to replace this schema with your own."
38+
},
39+
"identifier": {
40+
"type": "string",
41+
"description": "An external identifier for the article — ISBN, DOI, URI, etc. (schema.org/identifier).",
42+
"example": "doi:10.1000/example"
43+
},
44+
"dateCreated": {
45+
"type": "string",
46+
"format": "date",
47+
"description": "The date the article was created (schema.org/dateCreated).",
48+
"example": "2026-04-20"
49+
},
50+
"author": {
51+
"type": "string",
52+
"description": "The author of the article (schema.org/author). Kept as a string for template simplicity; nest a Person object in real apps.",
53+
"example": "Conduction B.V."
3754
}
3855
}
3956
}
4057
},
4158
"objects": {
42-
"example-gemeente-utrecht": {
59+
"article-gemeente-utrecht": {
4360
"@self": {
4461
"register": "app-template",
45-
"schema": "example",
46-
"slug": "example-gemeente-utrecht"
62+
"schema": "article",
63+
"slug": "article-gemeente-utrecht"
4764
},
48-
"title": "Gemeente Utrecht pilot",
49-
"description": "Seed example — realistic pilot project for a Dutch municipality. Per ADR-001, every app MUST include 3-5 realistic objects per schema so the app is immediately demonstrable after install."
65+
"name": "Gemeente Utrecht pilot",
66+
"description": "Seed article describing a realistic pilot project for a Dutch municipality. Per ADR-001 every app MUST include 3-5 realistic objects per schema so the app is immediately demonstrable after install.",
67+
"identifier": "pilot-2026-utrecht",
68+
"dateCreated": "2026-03-15",
69+
"author": "Conduction B.V."
5070
},
51-
"example-conduction-consultancy": {
71+
"article-conduction-consultancy": {
5272
"@self": {
5373
"register": "app-template",
54-
"schema": "example",
55-
"slug": "example-conduction-consultancy"
74+
"schema": "article",
75+
"slug": "article-conduction-consultancy"
5676
},
57-
"title": "Conduction consultancy engagement",
58-
"description": "Seed example — consultancy engagement covering architecture review and ADR authoring. Values are fictional but realistic."
77+
"name": "Conduction consultancy engagement",
78+
"description": "Seed article covering architecture review and ADR authoring for a consultancy engagement. Values are fictional but realistic.",
79+
"identifier": "engagement-2026-consultancy",
80+
"dateCreated": "2026-03-22",
81+
"author": "Conduction B.V."
5982
},
60-
"example-travel-agency": {
83+
"article-travel-agency": {
6184
"@self": {
6285
"register": "app-template",
63-
"schema": "example",
64-
"slug": "example-travel-agency"
86+
"schema": "article",
87+
"slug": "article-travel-agency"
6588
},
66-
"title": "Nieuw Horizon travel agency onboarding",
67-
"description": "Seed example — third organisation type to demonstrate variety. Re-importing is idempotent: ImportHandler matches by slug."
89+
"name": "Nieuw Horizon travel agency onboarding",
90+
"description": "Third seed article demonstrating variety of content. Re-importing is idempotent: ImportHandler matches by slug.",
91+
"identifier": "onboarding-2026-nieuwhorizon",
92+
"dateCreated": "2026-04-01",
93+
"author": "Conduction B.V."
6894
}
6995
}
7096
}

0 commit comments

Comments
 (0)