@dataimago/css 0.1.0-alpha.2 → 0.1.0-alpha.20
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.
- package/README.md +26 -2
- package/dist/bin/dataimago-sync.mjs +342 -0
- package/dist/dataimago.css +129 -37
- package/dist/dataimago.min.css +1 -1
- package/dist/dataviz/dataimago-dataviz.css +42 -0
- package/dist/dataviz/dataimago-dataviz.json +42 -0
- package/dist/dataviz/dataimago-dataviz.tex +21 -0
- package/dist/dataviz/dataimago_dataviz.R +61 -0
- package/dist/latex/dataimago-tokens.sty +122 -0
- package/dist/latex/dataimago.sty +618 -0
- package/dist/outputs.json +26 -0
- package/dist/quarto/components.scss +230 -0
- package/dist/quarto/dataimago-dark.scss +327 -0
- package/dist/quarto/dataimago-light.scss +327 -0
- package/dist/tailwind-preset.js +57 -10
- package/dist/templates/KNOWLEDGE-explorer.md +236 -0
- package/dist/templates/KNOWLEDGE-framework.md +233 -0
- package/dist/templates/KNOWLEDGE-research.md +201 -0
- package/dist/templates/quarto_website/README.md +48 -0
- package/dist/templates/quarto_website/_quarto.yml.template +141 -0
- package/dist/templates/quarto_website/about.qmd.template +36 -0
- package/dist/templates/quarto_website/assets/js/custom-anchors.js +6 -0
- package/dist/templates/quarto_website/assets/js/logo-switch.js +73 -0
- package/dist/templates/quarto_website/assets/js/scroll.js +67 -0
- package/dist/templates/quarto_website/ethics.qmd.template +49 -0
- package/dist/templates/quarto_website/index.qmd.template +71 -0
- package/dist/tokens.css +157 -36
- package/dist/tokens.scss +157 -36
- package/package.json +10 -2
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
<!-- @dataimago/css@0.1.0-alpha.20 dist/templates/KNOWLEDGE-framework.md · sha256:edc7c6622722c1258f025a385ba79fe62a03ebb4d36f06e999aabc1290145b84 · generated from tokens; do not edit · restore: npx -p @dataimago/css@0.1.0-alpha.20 dataimago-sync -->
|
|
2
|
+
# {{PROJECT_NAME}} — Knowledge Base Operating Manual
|
|
3
|
+
|
|
4
|
+
**Domain:** {{DOMAIN_NAME}}
|
|
5
|
+
**Type:** framework
|
|
6
|
+
**Generated:** {{GENERATED_DATE}}
|
|
7
|
+
**Framework:** [dataimago-design]({{FRAMEWORK_WIKI_URL}}/wiki/index.md)
|
|
8
|
+
|
|
9
|
+
This file is the operating manual for the **{{PROJECT_NAME}}** knowledge base — an AI-maintained wiki that documents the principles, patterns, and decisions that govern this framework. Read it at the start of every knowledge-work session.
|
|
10
|
+
|
|
11
|
+
*Note: If this is dataimago-design itself, this file's role is played by `CLAUDE.md` — the original operating manual. This template applies to other framework-type applications generated by dataimago.*
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Role
|
|
16
|
+
|
|
17
|
+
You are the wiki maintainer for **{{PROJECT_NAME}}**'s knowledge base — a `framework`-type domain wiki that documents the principles, patterns, and governance decisions that constrain and guide this system's use.
|
|
18
|
+
|
|
19
|
+
Your job is to:
|
|
20
|
+
- Document new decisions as Architecture Decision Records (ADRs)
|
|
21
|
+
- Keep principles and patterns consistent and cross-referenced
|
|
22
|
+
- Answer queries about what the framework requires and why
|
|
23
|
+
- File answers as `wiki/analyses/` pages so knowledge compounds
|
|
24
|
+
- Lint the wiki for contradictions between principles and patterns, and for undocumented enforcement mechanisms
|
|
25
|
+
|
|
26
|
+
You never modify files in `raw/`. You own everything in `wiki/`.
|
|
27
|
+
|
|
28
|
+
The meta-framework layer (how dataimago builds framework applications) is at the URL in `dataimago-framework.json`. Questions about this specific framework's content belong here; questions about how it was generated or deployed belong there.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Session Start Protocol
|
|
33
|
+
|
|
34
|
+
At the start of every knowledge-work session:
|
|
35
|
+
1. Read this file (KNOWLEDGE.md)
|
|
36
|
+
2. Read `wiki/index.md` to orient to the current knowledge base state
|
|
37
|
+
3. Read the last 5 entries of `wiki/log.md` to understand recent activity
|
|
38
|
+
4. Check `wiki/decisions/` for any ADRs marked `status: proposed` — these need review
|
|
39
|
+
5. Read the framework wiki index (URL in `dataimago-framework.json`) for meta-framework context
|
|
40
|
+
6. Ask the user: document a decision, document a pattern, answer a query, lint, or something else?
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Directory Structure
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
wiki/
|
|
48
|
+
├── index.md ← Master catalog of all wiki pages
|
|
49
|
+
├── overview.md ← High-level synthesis: what this framework governs and how
|
|
50
|
+
├── glossary.md ← Canonical terminology for this framework domain
|
|
51
|
+
├── log.md ← Append-only activity record
|
|
52
|
+
├── principles/ ← The values the framework upholds and enforces
|
|
53
|
+
├── patterns/ ← How to implement each principle in practice
|
|
54
|
+
├── decisions/ ← ADRs: every significant choice with justification
|
|
55
|
+
├── connections/ ← How principles map across implementation domains
|
|
56
|
+
├── personas/ ← Who is governed by or governs this framework
|
|
57
|
+
└── analyses/ ← Compliance audits, gap analyses, comparisons
|
|
58
|
+
|
|
59
|
+
raw/
|
|
60
|
+
├── papers/ ← Academic sources, standards documents, prior art
|
|
61
|
+
├── conversations/ ← AI dialogues, governance meeting notes
|
|
62
|
+
├── data/ ← Validation results, compliance reports, audit logs
|
|
63
|
+
└── references/ ← External frameworks, standards, codebases compared against
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Entity Types
|
|
69
|
+
|
|
70
|
+
| Type | Location | Page purpose |
|
|
71
|
+
|---|---|---|
|
|
72
|
+
| **Principle** | `wiki/principles/` | A value the framework upholds: what it means, how it is enforced, the governance basis |
|
|
73
|
+
| **Pattern** | `wiki/patterns/` | How to implement a principle: concrete steps, code examples, common mistakes |
|
|
74
|
+
| **Decision** | `wiki/decisions/` | An ADR: what was chosen, what was rejected, why, date, and any revision history |
|
|
75
|
+
| **Connection** | `wiki/connections/` | Cross-domain synthesis: how principle X maps to practice Y in context Z |
|
|
76
|
+
| **Persona** | `wiki/personas/` | A stakeholder: who uses the framework, who is governed by it, who governs it |
|
|
77
|
+
| **Analysis** | `wiki/analyses/` | Compliance audit, gap analysis, comparison with alternative frameworks |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## The Decision Page — Core Knowledge Atom
|
|
82
|
+
|
|
83
|
+
Architecture Decision Records are the most important pages in a framework wiki. Every significant choice must be documented before it is enforced:
|
|
84
|
+
|
|
85
|
+
```markdown
|
|
86
|
+
---
|
|
87
|
+
title: "ADR: <Decision title>"
|
|
88
|
+
type: decision
|
|
89
|
+
created: YYYY-MM-DD
|
|
90
|
+
updated: YYYY-MM-DD
|
|
91
|
+
status: proposed | accepted | superseded | deprecated
|
|
92
|
+
superseded_by: <ADR page name if superseded>
|
|
93
|
+
sources:
|
|
94
|
+
- <pages or raw files that informed this decision>
|
|
95
|
+
tags: []
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
One-line summary of the decision.
|
|
99
|
+
|
|
100
|
+
## Decision
|
|
101
|
+
What was chosen. State it precisely.
|
|
102
|
+
|
|
103
|
+
## Context
|
|
104
|
+
The problem that required a decision. What constraints existed?
|
|
105
|
+
|
|
106
|
+
## Alternatives Considered
|
|
107
|
+
What else was evaluated? Why was each rejected?
|
|
108
|
+
|
|
109
|
+
## Justification
|
|
110
|
+
Why this choice? Include ethical justification where relevant.
|
|
111
|
+
|
|
112
|
+
## Consequences
|
|
113
|
+
What does this enable? What does it foreclose? What monitoring is needed?
|
|
114
|
+
|
|
115
|
+
## Related Pages
|
|
116
|
+
- [[principle-name]] — The principle this decision serves
|
|
117
|
+
- [[pattern-name]] — The implementation pattern this decision authorizes
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
ADRs are **append-only in spirit**: when a decision changes, mark the old ADR `status: superseded`, add `superseded_by: new-adr-name`, and create a new ADR. Never silently overwrite the reasoning history.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Workflows
|
|
125
|
+
|
|
126
|
+
### Document a New Decision
|
|
127
|
+
|
|
128
|
+
1. Identify the decision being made (never document a decision after the fact without noting that it was post-hoc)
|
|
129
|
+
2. Create a `wiki/decisions/` ADR page with `status: proposed`
|
|
130
|
+
3. Link to the relevant principles it serves and patterns it authorizes
|
|
131
|
+
4. After review/consensus, update to `status: accepted`
|
|
132
|
+
5. Update `wiki/index.md` and append to `wiki/log.md`
|
|
133
|
+
|
|
134
|
+
### Document a New Pattern
|
|
135
|
+
|
|
136
|
+
1. Identify the principle the pattern implements
|
|
137
|
+
2. Create a `wiki/patterns/` page with: problem, solution, implementation details, ethical justification
|
|
138
|
+
3. Link from the relevant `wiki/principles/` page
|
|
139
|
+
4. Verify that an ADR exists authorizing this pattern (or create one)
|
|
140
|
+
5. Update `wiki/index.md` and append to `wiki/log.md`
|
|
141
|
+
|
|
142
|
+
### Ingest a Comparison Framework or Standard
|
|
143
|
+
|
|
144
|
+
1. Read from `raw/papers/` or `raw/references/`
|
|
145
|
+
2. Create a `wiki/sources/` page summarizing the key claims
|
|
146
|
+
3. Create or update a `wiki/analyses/` page comparing this framework to {{PROJECT_NAME}} on key dimensions
|
|
147
|
+
4. Identify any principles or patterns that should be updated in light of the comparison
|
|
148
|
+
5. Update `wiki/glossary.md` and append to `wiki/log.md`
|
|
149
|
+
|
|
150
|
+
### Query
|
|
151
|
+
|
|
152
|
+
1. Read `wiki/index.md` to identify relevant pages (typically `wiki/principles/` and `wiki/patterns/`)
|
|
153
|
+
2. Read those pages
|
|
154
|
+
3. Synthesize a clear answer citing the relevant ADRs and principles
|
|
155
|
+
4. Ask: "Should I file this as an analysis?" If yes, save to `wiki/analyses/`
|
|
156
|
+
5. Append to `wiki/log.md`
|
|
157
|
+
|
|
158
|
+
### Lint
|
|
159
|
+
|
|
160
|
+
1. Check every `wiki/principles/` page has at least one `wiki/patterns/` page implementing it
|
|
161
|
+
2. Check every `wiki/patterns/` page is authorized by an ADR in `wiki/decisions/`
|
|
162
|
+
3. Check for enforcement mechanisms that exist in the codebase but are not documented in a principle page
|
|
163
|
+
4. Check for principles that are stated but have no enforcement mechanism (document the gap or add enforcement)
|
|
164
|
+
5. Check for ADRs with `status: proposed` that have not been reviewed
|
|
165
|
+
6. Report findings and propose fixes
|
|
166
|
+
7. Append to `wiki/log.md`
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Log Format
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
## [YYYY-MM-DD] <action> | <title>
|
|
174
|
+
|
|
175
|
+
**Action:** <description>
|
|
176
|
+
Pages created: ...
|
|
177
|
+
Pages updated: ...
|
|
178
|
+
Key additions: ...
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Terminology Discipline
|
|
184
|
+
|
|
185
|
+
- Check `wiki/glossary.md` before using any framework term
|
|
186
|
+
- Canonical terms must be used consistently — never paraphrase a principle's name
|
|
187
|
+
- ADR titles must be unique and stable (they are referenced by other pages)
|
|
188
|
+
- Key terms for this domain: [populated by domain expert — add canonical terms here as the wiki develops]
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## R Functions in This Application
|
|
193
|
+
|
|
194
|
+
The following R functions implement validation and generation capabilities for {{PROJECT_NAME}}:
|
|
195
|
+
|
|
196
|
+
{{EXPORTED_FUNCTIONS}}
|
|
197
|
+
|
|
198
|
+
**Standard framework function pattern:**
|
|
199
|
+
- `validate_*()` functions check compliance and return violations with severity
|
|
200
|
+
- `scaffold_*()` functions generate new instances conforming to the framework
|
|
201
|
+
- `get_*_status()` functions report system health
|
|
202
|
+
- `get_validation_rules()` returns all rules with descriptions (discovery endpoint)
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Principle Documentation Standard
|
|
207
|
+
|
|
208
|
+
Every principle must meet these standards before it can be enforced:
|
|
209
|
+
|
|
210
|
+
1. **Named** — A canonical name in the glossary
|
|
211
|
+
2. **Defined** — A `wiki/principles/` page with precise definition
|
|
212
|
+
3. **Justified** — The ethical or practical basis is documented (who authorized this and on what grounds)
|
|
213
|
+
4. **Implemented** — At least one `wiki/patterns/` page shows how to comply
|
|
214
|
+
5. **Enforced** — An automated check exists OR the absence of automation is noted and justified
|
|
215
|
+
6. **Governed** — The process for changing this principle is documented
|
|
216
|
+
|
|
217
|
+
Principles that lack justification or governance documentation should be marked `status: draft` and flagged in the next lint pass.
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Connection to the Meta-Framework Layer
|
|
222
|
+
|
|
223
|
+
This wiki documents **what {{PROJECT_NAME}} requires** and **why**. The dataimago-design wiki documents **how framework-type applications are built**. The connection:
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
wiki/principles/my-principle.md
|
|
227
|
+
→ implemented by wiki/patterns/my-pattern.md
|
|
228
|
+
→ enforced by validate_my_rule() in R
|
|
229
|
+
→ exposed at POST /validate
|
|
230
|
+
→ documented in dataimago-design/wiki/patterns/rest-api-from-r.md
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Do not duplicate dataimago-design's framework documentation here. Reference it.
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
<!-- @dataimago/css@0.1.0-alpha.20 dist/templates/KNOWLEDGE-research.md · sha256:ef0a6748731b61840e8e8da1142db5981948da4dec78888f40f471c2a3d3300f · generated from tokens; do not edit · restore: npx -p @dataimago/css@0.1.0-alpha.20 dataimago-sync -->
|
|
2
|
+
# {{PROJECT_NAME}} — Knowledge Base Operating Manual
|
|
3
|
+
|
|
4
|
+
**Domain:** {{DOMAIN_NAME}}
|
|
5
|
+
**Type:** research
|
|
6
|
+
**Generated:** {{GENERATED_DATE}}
|
|
7
|
+
**Framework:** [dataimago-design]({{FRAMEWORK_WIKI_URL}}/wiki/index.md)
|
|
8
|
+
|
|
9
|
+
This file is the operating manual for the **{{PROJECT_NAME}}** knowledge base — an AI-maintained wiki that documents the ideas, evidence, methods, and arguments that this application embodies. Read it at the start of every knowledge-work session.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Role
|
|
14
|
+
|
|
15
|
+
You are the wiki maintainer for **{{PROJECT_NAME}}**'s knowledge base — a `research`-type domain wiki that synthesizes the evidence, methods, and arguments behind the application's analytical claims.
|
|
16
|
+
|
|
17
|
+
Your job is to:
|
|
18
|
+
- Ingest source materials and extract knowledge into structured wiki pages
|
|
19
|
+
- Keep pages consistent, cross-referenced, and up to date
|
|
20
|
+
- Answer queries by reading the wiki (not re-deriving from scratch)
|
|
21
|
+
- File good answers back as `wiki/analyses/` pages so knowledge compounds
|
|
22
|
+
- Periodically lint the wiki for contradictions, stale content, and orphan pages
|
|
23
|
+
|
|
24
|
+
You never modify files in `raw/`. You own everything in `wiki/`.
|
|
25
|
+
|
|
26
|
+
The framework layer (how this application is built) is documented in the dataimago-design wiki (see `dataimago-framework.json` for the URL). Domain knowledge questions belong here; build and architecture questions belong there.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Session Start Protocol
|
|
31
|
+
|
|
32
|
+
At the start of every knowledge-work session:
|
|
33
|
+
1. Read this file (KNOWLEDGE.md)
|
|
34
|
+
2. Read `wiki/index.md` to orient to the current knowledge base state
|
|
35
|
+
3. Read the last 5 entries of `wiki/log.md` to understand recent activity
|
|
36
|
+
4. Read the framework wiki index (URL in `dataimago-framework.json`) for framework context (optional unless architecture is relevant)
|
|
37
|
+
5. Ask the user: ingest, query, lint, or something else?
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Directory Structure
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
wiki/
|
|
45
|
+
├── index.md ← Master catalog of all wiki pages
|
|
46
|
+
├── overview.md ← High-level synthesis of the knowledge base
|
|
47
|
+
├── glossary.md ← Canonical terminology for this domain
|
|
48
|
+
├── log.md ← Append-only activity record
|
|
49
|
+
├── sources/ ← Summaries of papers, datasets, conversations
|
|
50
|
+
├── theories/ ← Theoretical frameworks the research uses
|
|
51
|
+
├── methods/ ← Methodological choices and their justifications
|
|
52
|
+
├── findings/ ← Specific results with interpretation
|
|
53
|
+
├── arguments/ ← Central claims and their evidence chains
|
|
54
|
+
├── personas/ ← Who uses this application and what they need
|
|
55
|
+
└── analyses/ ← Synthesized outputs, comparisons, strategic insights
|
|
56
|
+
|
|
57
|
+
raw/
|
|
58
|
+
├── papers/ ← PDFs, journal articles, preprints
|
|
59
|
+
├── conversations/ ← AI dialogues, meeting notes, transcripts
|
|
60
|
+
├── data/ ← Datasets, R output files, analysis exports
|
|
61
|
+
└── references/ ← External codebases, specs, documentation
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Entity Types
|
|
67
|
+
|
|
68
|
+
| Type | Location | Page purpose |
|
|
69
|
+
|---|---|---|
|
|
70
|
+
| **Source** | `wiki/sources/` | Summary of a raw document: key claims, quotes, metadata |
|
|
71
|
+
| **Theory** | `wiki/theories/` | A theoretical framework: definition, key thinkers, application here |
|
|
72
|
+
| **Method** | `wiki/methods/` | A methodological choice: what was done, why, limitations |
|
|
73
|
+
| **Finding** | `wiki/findings/` | A specific result: statistical context, interpretation, R function reference |
|
|
74
|
+
| **Argument** | `wiki/arguments/` | A central claim: what it asserts, what evidence supports it, what challenges it |
|
|
75
|
+
| **Persona** | `wiki/personas/` | A user type: goals, what they need from this application |
|
|
76
|
+
| **Analysis** | `wiki/analyses/` | A synthesized output: comparison, gap analysis, strategic insight |
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Page Format
|
|
81
|
+
|
|
82
|
+
Every wiki page must have this YAML frontmatter:
|
|
83
|
+
|
|
84
|
+
```yaml
|
|
85
|
+
---
|
|
86
|
+
title: <page title>
|
|
87
|
+
type: source | theory | method | finding | argument | persona | analysis
|
|
88
|
+
created: YYYY-MM-DD
|
|
89
|
+
updated: YYYY-MM-DD
|
|
90
|
+
sources:
|
|
91
|
+
- <raw/ filenames or wiki pages that informed this>
|
|
92
|
+
tags:
|
|
93
|
+
- <relevant tags>
|
|
94
|
+
---
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Followed by: one-line summary, body with headers and tables, and a **Related pages** section at the bottom using `[[page-name]]` links.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Workflows
|
|
102
|
+
|
|
103
|
+
### Ingest a Paper or Article
|
|
104
|
+
|
|
105
|
+
1. Read the source file from `raw/papers/` or `raw/references/`
|
|
106
|
+
2. Discuss key takeaways (ask 1-3 clarifying questions if needed)
|
|
107
|
+
3. Create a summary page in `wiki/sources/`
|
|
108
|
+
4. Identify which theories, methods, or arguments it supports or challenges — update those pages
|
|
109
|
+
5. Create new entity pages as warranted (new theory, new method, etc.)
|
|
110
|
+
6. Update `wiki/glossary.md` with new domain terms
|
|
111
|
+
7. Update `wiki/index.md` and `wiki/overview.md` if the source shifts the big picture
|
|
112
|
+
8. Append to `wiki/log.md`
|
|
113
|
+
|
|
114
|
+
### Ingest an R Analysis Output
|
|
115
|
+
|
|
116
|
+
1. Read the output from `raw/data/`
|
|
117
|
+
2. Identify what R function produced it and with what parameters
|
|
118
|
+
3. Create or update a `wiki/findings/` page documenting the result
|
|
119
|
+
4. Link the finding to the argument(s) it supports in `wiki/arguments/`
|
|
120
|
+
5. Note the R function and parameters in the finding page (makes it verifiable and updatable)
|
|
121
|
+
6. Update `wiki/index.md` and append to `wiki/log.md`
|
|
122
|
+
|
|
123
|
+
### Ingest a Conversation
|
|
124
|
+
|
|
125
|
+
1. Read the transcript from `raw/conversations/`
|
|
126
|
+
2. Extract: key decisions made, questions raised, terminology clarified, arguments refined
|
|
127
|
+
3. Update affected wiki pages (typically `wiki/arguments/`, `wiki/methods/`, `wiki/analyses/`)
|
|
128
|
+
4. Create new pages if new concepts emerged
|
|
129
|
+
5. Update `wiki/glossary.md` and append to `wiki/log.md`
|
|
130
|
+
|
|
131
|
+
### Query
|
|
132
|
+
|
|
133
|
+
1. Read `wiki/index.md` to identify relevant pages
|
|
134
|
+
2. Read those pages
|
|
135
|
+
3. Synthesize a clear answer with citations to wiki pages
|
|
136
|
+
4. Ask: "Should I file this as a wiki page?" If yes, save to `wiki/analyses/`
|
|
137
|
+
5. Append to `wiki/log.md`
|
|
138
|
+
|
|
139
|
+
### Lint
|
|
140
|
+
|
|
141
|
+
1. Read all pages in the wiki
|
|
142
|
+
2. Report: contradictions between pages, stale claims, orphan pages, missing cross-references, inconsistent terminology
|
|
143
|
+
3. Propose fixes and ask which ones to apply
|
|
144
|
+
4. Append to `wiki/log.md`
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Log Format
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
## [YYYY-MM-DD] <action> | <title>
|
|
152
|
+
|
|
153
|
+
**Action:** <description>
|
|
154
|
+
Pages created: ...
|
|
155
|
+
Pages updated: ...
|
|
156
|
+
Key additions: ...
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Terminology Discipline
|
|
162
|
+
|
|
163
|
+
- Check `wiki/glossary.md` before using any domain term
|
|
164
|
+
- If a new term appears in a source, add it to the glossary before using it elsewhere
|
|
165
|
+
- If a term conflicts with an existing entry, flag it explicitly before updating
|
|
166
|
+
- Key terms for this domain: [populated by domain expert — add canonical terms here as the wiki develops]
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## R Functions in This Application
|
|
171
|
+
|
|
172
|
+
The following R functions are the analytical backbone of {{PROJECT_NAME}}. Each exported function should have a corresponding wiki entry linking its output to `wiki/findings/` pages:
|
|
173
|
+
|
|
174
|
+
{{EXPORTED_FUNCTIONS}}
|
|
175
|
+
|
|
176
|
+
When ingesting an R analysis output, always record:
|
|
177
|
+
- Which function produced it
|
|
178
|
+
- The parameter values used
|
|
179
|
+
- The date it was run
|
|
180
|
+
- What finding page documents it
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Philosophical Alignment
|
|
185
|
+
|
|
186
|
+
Every wiki page is evaluated against the question: does this serve the application's purpose of making research accessible to its intended audiences? Knowledge that exists only in academic prose has a single audience. Knowledge filed in this wiki serves general readers (via the web app), data analysts (via the API), AI agents (via MCP tools), and the domain expert themselves (via this wiki).
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Connection to the Framework Layer
|
|
191
|
+
|
|
192
|
+
This wiki documents **what** this application knows. The dataimago-design wiki documents **how** the application is built. When a finding page references an R function, that function's API exposure is documented in the framework layer. The connection is:
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
wiki/findings/my-finding.md
|
|
196
|
+
→ references HelloWorld::my_function()
|
|
197
|
+
→ exposed at GET /my-endpoint
|
|
198
|
+
→ documented in dataimago-design/wiki/patterns/rest-api-from-r.md
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Do not duplicate framework documentation here. Reference it.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<!-- @dataimago/css@0.1.0-alpha.20 dist/templates/quarto_website/README.md · sha256:19a8e30db9c7fc15e62e7bebb573041947b31be886d2e32d75b217236b0ab421 · generated from tokens; do not edit · restore: npx -p @dataimago/css@0.1.0-alpha.20 dataimago-sync -->
|
|
2
|
+
# Quarto Website Template
|
|
3
|
+
|
|
4
|
+
Canonical template for Quarto-powered R package websites built with the dataimago framework.
|
|
5
|
+
|
|
6
|
+
## Usage
|
|
7
|
+
|
|
8
|
+
This template is consumed by `dataimago::create_quarto_documentation()` when `scaffold_full_site = TRUE`. It can also be used manually by copying the template files and replacing placeholders.
|
|
9
|
+
|
|
10
|
+
## Placeholders
|
|
11
|
+
|
|
12
|
+
All `.template` files use Mustache-style `{{PLACEHOLDER}}` syntax:
|
|
13
|
+
|
|
14
|
+
| Placeholder | Source | Description |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| `{{PACKAGE_NAME}}` | DESCRIPTION `Package` field | R package name |
|
|
17
|
+
| `{{PACKAGE_TITLE}}` | DESCRIPTION `Title` field | Full package title |
|
|
18
|
+
| `{{PACKAGE_DESCRIPTION}}` | DESCRIPTION `Description` field | Package description |
|
|
19
|
+
| `{{PACKAGE_AUTHOR}}` | DESCRIPTION `Authors@R` field | Author information |
|
|
20
|
+
| `{{PACKAGE_LICENSE}}` | DESCRIPTION `License` field | License type |
|
|
21
|
+
| `{{SITE_URL}}` | DESCRIPTION `URL` field | GitHub Pages URL |
|
|
22
|
+
| `{{REPO_URL}}` | DESCRIPTION `BugReports` (minus `/issues`) | GitHub repo URL |
|
|
23
|
+
|
|
24
|
+
## Template Files
|
|
25
|
+
|
|
26
|
+
- `_quarto.yml.template` -- Site configuration with navbar, sidebar, footer, and theme
|
|
27
|
+
- `index.qmd.template` -- Homepage with hero section and feature cards
|
|
28
|
+
- `ethics.qmd.template` -- Ethical AI principles from dataimago-design wiki
|
|
29
|
+
- `about.qmd.template` -- Package about page
|
|
30
|
+
|
|
31
|
+
## Static Assets (no templating)
|
|
32
|
+
|
|
33
|
+
- `assets/js/scroll.js` -- Sticky header shrink on scroll
|
|
34
|
+
- `assets/js/custom-anchors.js` -- Left-placed anchor links on headings
|
|
35
|
+
- `assets/js/logo-switch.js` -- Theme-aware logo hover effects (uses `{{SITE_URL}}`)
|
|
36
|
+
|
|
37
|
+
## Features Included
|
|
38
|
+
|
|
39
|
+
- Sticky navbar that shrinks on scroll
|
|
40
|
+
- Custom anchor links on all headings
|
|
41
|
+
- Theme-aware logo switching (dark/light mode)
|
|
42
|
+
- Lenis smooth scrolling
|
|
43
|
+
- Accessibility layer (reduced motion, high contrast, skip links)
|
|
44
|
+
- Ethics-first content pages sourced from dataimago-design wiki
|
|
45
|
+
- Documents and presentations content scaffolding
|
|
46
|
+
- News/changelog page
|
|
47
|
+
- Custom 404 page
|
|
48
|
+
- Open Graph and Twitter Card metadata
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# @dataimago/css@0.1.0-alpha.20 dist/templates/quarto_website/_quarto.yml.template · sha256:d28f9f49ba75df94183a074bcab94399ea10368ddfd538055f6b421d8194af91 · generated from tokens; do not edit · restore: npx -p @dataimago/css@0.1.0-alpha.20 dataimago-sync
|
|
2
|
+
project:
|
|
3
|
+
type: website
|
|
4
|
+
title: "{{PACKAGE_TITLE}}"
|
|
5
|
+
output-dir: ../../docs
|
|
6
|
+
render:
|
|
7
|
+
- "*.qmd"
|
|
8
|
+
- "!content/presentations/**"
|
|
9
|
+
- "content/documents/**"
|
|
10
|
+
|
|
11
|
+
execute:
|
|
12
|
+
freeze: auto
|
|
13
|
+
|
|
14
|
+
extensions:
|
|
15
|
+
- dataimago/ai-native
|
|
16
|
+
|
|
17
|
+
filters:
|
|
18
|
+
- svg-inline
|
|
19
|
+
|
|
20
|
+
references:
|
|
21
|
+
- type: r
|
|
22
|
+
title: "Function Reference"
|
|
23
|
+
source: "../../man"
|
|
24
|
+
|
|
25
|
+
website:
|
|
26
|
+
site-url: "{{SITE_URL}}"
|
|
27
|
+
repo-url: "{{REPO_URL}}"
|
|
28
|
+
title: "{{PACKAGE_TITLE}}"
|
|
29
|
+
description: "{{PACKAGE_DESCRIPTION}}"
|
|
30
|
+
favicon: /assets/img/ai_monogram_supreme_favicon.png
|
|
31
|
+
repo-actions: none
|
|
32
|
+
page-navigation: false
|
|
33
|
+
bread-crumbs: false
|
|
34
|
+
|
|
35
|
+
navbar:
|
|
36
|
+
title: "{{PACKAGE_NAME}}"
|
|
37
|
+
logo: /assets/img/ai_monogram.svg
|
|
38
|
+
logo-alt: "{{PACKAGE_NAME}}"
|
|
39
|
+
logo-href: "{{SITE_URL}}"
|
|
40
|
+
title-href: "{{SITE_URL}}"
|
|
41
|
+
search: false
|
|
42
|
+
pinned: true
|
|
43
|
+
left:
|
|
44
|
+
- href: index.qmd
|
|
45
|
+
text: Home
|
|
46
|
+
- href: r_package.qmd
|
|
47
|
+
text: R Package
|
|
48
|
+
- text: Ethics
|
|
49
|
+
menu:
|
|
50
|
+
- href: ethics.qmd
|
|
51
|
+
text: Ethical AI Principles
|
|
52
|
+
- href: design_system.qmd
|
|
53
|
+
text: Design System
|
|
54
|
+
- href: governance.qmd
|
|
55
|
+
text: Democratic Governance
|
|
56
|
+
- text: Foundation
|
|
57
|
+
menu:
|
|
58
|
+
- href: mission.qmd
|
|
59
|
+
text: Mission & Vision
|
|
60
|
+
- href: philosophy.qmd
|
|
61
|
+
text: Philosophy
|
|
62
|
+
- text: Resources
|
|
63
|
+
menu:
|
|
64
|
+
- href: documents.qmd
|
|
65
|
+
text: Documents
|
|
66
|
+
- href: presentations.qmd
|
|
67
|
+
text: Presentations
|
|
68
|
+
- href: news.qmd
|
|
69
|
+
text: News
|
|
70
|
+
right:
|
|
71
|
+
- text: "<img src='/assets/img/github_logo.svg' class='navbar-github-logo' title='GitHub' alt='GitHub' style='height:32px; vertical-align:middle; padding-right: 2px; margin-top: 0px;'/>"
|
|
72
|
+
menu:
|
|
73
|
+
- href: "{{REPO_URL}}"
|
|
74
|
+
text: Source Code
|
|
75
|
+
- href: "{{REPO_URL}}/issues"
|
|
76
|
+
text: Report a Bug
|
|
77
|
+
- href: "{{REPO_URL}}/discussions"
|
|
78
|
+
text: Request a Feature
|
|
79
|
+
target: _blank
|
|
80
|
+
|
|
81
|
+
sidebar:
|
|
82
|
+
style: "docked"
|
|
83
|
+
search: true
|
|
84
|
+
contents:
|
|
85
|
+
- section: "Getting Started"
|
|
86
|
+
contents:
|
|
87
|
+
- r_package.qmd
|
|
88
|
+
- section: "Ethics & Design"
|
|
89
|
+
contents:
|
|
90
|
+
- ethics.qmd
|
|
91
|
+
- design_system.qmd
|
|
92
|
+
- governance.qmd
|
|
93
|
+
- section: "Foundation"
|
|
94
|
+
contents:
|
|
95
|
+
- mission.qmd
|
|
96
|
+
- philosophy.qmd
|
|
97
|
+
- section: "Resources"
|
|
98
|
+
contents:
|
|
99
|
+
- documents.qmd
|
|
100
|
+
- presentations.qmd
|
|
101
|
+
- news.qmd
|
|
102
|
+
|
|
103
|
+
page-footer:
|
|
104
|
+
left:
|
|
105
|
+
- text: "<img src='/assets/img/quarto_logo.svg' class='footer-quarto-logo inline-svg' title='quarto.org' alt='quarto.org' style='width:28px; height:28px; vertical-align:middle; padding-right: 4px; margin-top: 6px;'/>"
|
|
106
|
+
href: https://quarto.org/
|
|
107
|
+
target: _blank
|
|
108
|
+
center:
|
|
109
|
+
- text: "<img src='/assets/img/ai_monogram.svg' class='footer-ai-monogram-logo inline-svg' title='dataimago.ai' alt='dataimago.ai' style='height:28px; vertical-align:middle; padding-right: 4px; margin-top: 6px;'/>"
|
|
110
|
+
href: https://dataimago.ai/
|
|
111
|
+
target: _blank
|
|
112
|
+
- text: "<img src='/assets/img/package_hex_logo.svg' class='footer-package-hex-logo inline-svg' title='{{PACKAGE_NAME}} R Package' alt='{{PACKAGE_NAME}} R Package' style='height: 32px; margin-top: 3px;'/>"
|
|
113
|
+
href: "{{SITE_URL}}"
|
|
114
|
+
|
|
115
|
+
metadata:
|
|
116
|
+
image: /assets/img/ai_monogram_supreme_COLOR.png
|
|
117
|
+
open-graph: true
|
|
118
|
+
twitter-card:
|
|
119
|
+
image: /assets/img/ai_monogram_supreme_COLOR.png
|
|
120
|
+
card-style: summary_large_image
|
|
121
|
+
|
|
122
|
+
format:
|
|
123
|
+
html:
|
|
124
|
+
theme:
|
|
125
|
+
light: _extensions/dataimago/ai-native/assets/css/dataimago-light.scss
|
|
126
|
+
dark: _extensions/dataimago/ai-native/assets/css/dataimago-dark.scss
|
|
127
|
+
toc: true
|
|
128
|
+
toc-depth: 3
|
|
129
|
+
code-copy: true
|
|
130
|
+
code-overflow: wrap
|
|
131
|
+
include-after: |
|
|
132
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
133
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
134
|
+
<link href="https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@200;300;400;500;600;700&family=Noto+Sans:wdth,wght@100..125,300..800&family=Noto+Sans+Math&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet">
|
|
135
|
+
<script src="https://unpkg.com/lenis@1.3.8/dist/lenis.min.js"></script>
|
|
136
|
+
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
|
|
137
|
+
<script type="text/javascript" src="/assets/js/scroll.js"></script>
|
|
138
|
+
<script type="text/javascript" src="/assets/js/logo-switch.js"></script>
|
|
139
|
+
<script type="text/javascript" src="/assets/js/lenis-integration.js"></script>
|
|
140
|
+
<script type="text/javascript" src="/assets/js/custom-anchors.js"></script>
|
|
141
|
+
<script type="text/javascript" src="/assets/js/accessibility.js"></script>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<!-- @dataimago/css@0.1.0-alpha.20 dist/templates/quarto_website/about.qmd.template · sha256:5f896d14240e32c56a8711cbc458e8d3726cf8bcebac154aa62ead41f49af185 · generated from tokens; do not edit · restore: npx -p @dataimago/css@0.1.0-alpha.20 dataimago-sync -->
|
|
2
|
+
---
|
|
3
|
+
title: "About {{PACKAGE_NAME}}"
|
|
4
|
+
format:
|
|
5
|
+
html:
|
|
6
|
+
toc: true
|
|
7
|
+
toc-depth: 2
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
{{PACKAGE_DESCRIPTION}}
|
|
13
|
+
|
|
14
|
+
## Built with dataimago
|
|
15
|
+
|
|
16
|
+
{{PACKAGE_NAME}} is built using the [dataimago](https://dataimago.ai) framework --- an AI-native application development framework for data science. dataimago provides:
|
|
17
|
+
|
|
18
|
+
- Complete design system compilation from tokens to production-ready assets
|
|
19
|
+
- Multi-platform deployment (Quarto, Shiny, Next.js)
|
|
20
|
+
- MCP-compatible tooling for AI agent integration
|
|
21
|
+
- Ethical AI build-time validation
|
|
22
|
+
- R-first workflows with modern web tools
|
|
23
|
+
|
|
24
|
+
## Author
|
|
25
|
+
|
|
26
|
+
{{PACKAGE_AUTHOR}}
|
|
27
|
+
|
|
28
|
+
## License
|
|
29
|
+
|
|
30
|
+
{{PACKAGE_LICENSE}}
|
|
31
|
+
|
|
32
|
+
## Links
|
|
33
|
+
|
|
34
|
+
- [GitHub Repository]({{REPO_URL}})
|
|
35
|
+
- [Bug Reports]({{REPO_URL}}/issues)
|
|
36
|
+
- [dataimago Framework](https://dataimago.ai)
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// @dataimago/css@0.1.0-alpha.20 dist/templates/quarto_website/assets/js/custom-anchors.js · sha256:9b0f2d567a86e90431cc1470a6542f4e0549245dfda7b1b05b94119bddab0cb9 · generated from tokens; do not edit · restore: npx -p @dataimago/css@0.1.0-alpha.20 dataimago-sync
|
|
2
|
+
anchors.options = {
|
|
3
|
+
placement: 'left',
|
|
4
|
+
visible: 'hover'
|
|
5
|
+
};
|
|
6
|
+
anchors.add('h1, h2, h3, h4, h5, h6');
|