diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..47a5343 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,29 @@ +root = true + +# Whitespace / EOL / indent per TUTTI i tipi — cross-editor, zero dipendenze. +# Non tocca mai il CONTENUTO (quindi i placeholder {{...}} sono al sicuro qui). + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +# Markdown: preserva i "due spazi" di fine riga (hard break) → non trimmare. +[*.md] +trim_trailing_whitespace = false + +[*.{sh,bash}] +indent_style = space +indent_size = 2 + +[*.{py,pyi}] +indent_style = space +indent_size = 4 + +[*.{yml,yaml,json}] +indent_style = space +indent_size = 2 + +[Makefile] +indent_style = tab diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..30754d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +# VS Code — only shared workspace settings +.vscode/* +!.vscode/settings.json +!.vscode/extensions.json diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..36589d6 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,8 @@ +# Template engine — contengono i placeholder {{...}}: NON formattare mai. +templates/ + +# Contenuto di proprietà dell'agente / generato (di norma in repo separati, +# elencato qui per sicurezza se apri un genoma nello stesso workspace). +wiki/ +genomes/ +raw/ diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..2a0c0d2 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,5 @@ +{ + "printWidth": 100, + "tabWidth": 2, + "proseWrap": "preserve" +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..c0c8b39 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + "recommendations": [ + "esbenp.prettier-vscode", + "editorconfig.editorconfig", + "timonwong.shellcheck" + ], + "unwantedRecommendations": ["dbaeumer.vscode-eslint", "ms-vscode.vscode-typescript-next"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..65b4337 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "editor.formatOnSave": true, + "prettier.requireConfig": true, + + "files.associations": { + "templates/**/*.md": "plaintext" + }, + + "[markdown]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[json]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[jsonc]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + } +} diff --git a/lib/scaffold.sh b/lib/scaffold.sh index b9dc437..8c1e3a7 100644 --- a/lib/scaffold.sh +++ b/lib/scaffold.sh @@ -16,6 +16,12 @@ render_template() { local content content=$(<"$template_file") + # HARDENING: collapse any “spaced” placeholders from a formatter + # { { KEY } } -> {{KEY}} (KEY = UPPERCASE/underscore) + # Defense in depth: if Prettier or a copy-paste breaks the syntax again, + # the scaffold fixes itself. sed is a core utility (like tr/date already used here). + content=$(sed -E 's/\{[[:space:]]*\{[[:space:]]*([A-Z_]+)[[:space:]]*\}[[:space:]]*\}/{{\1}}/g' <<<"$content") + # Defaults (:-) so master-repo templates render even when GENOME_* are unset # (scaffold_master runs before any genome; set -u would otherwise abort here). local genome_name_upper diff --git a/templates/agents-genome.md b/templates/agents-genome.md index 98c6075..9c12ba7 100644 --- a/templates/agents-genome.md +++ b/templates/agents-genome.md @@ -146,7 +146,7 @@ Required on every wiki page: --- title: "Strict String Title" type: source | entity | concept | query | conflict | private -domain: { { GENOME_NAME } } +domain: {{ GENOME_NAME }} tags: [lowercase, hyphen-separated] maturity: draft | stable | deprecated last_updated: YYYY-MM-DD @@ -205,7 +205,7 @@ When new evidence contradicts an existing wiki claim: --- title: "Conflict: " type: conflict -domain: { { GENOME_NAME } } +domain: {{ GENOME_NAME }} maturity: draft last_updated: YYYY-MM-DD private: false diff --git a/templates/wiki-index.md b/templates/wiki-index.md index 4bae5d9..809aaaa 100644 --- a/templates/wiki-index.md +++ b/templates/wiki-index.md @@ -1,9 +1,9 @@ --- title: "Index — {{GENOME_NAME}}" type: index -domain: { { GENOME_NAME } } +domain: {{ GENOME_NAME }} maturity: stable -last_updated: { { DATE } } +last_updated: {{ DATE }} private: false --- diff --git a/templates/wiki-log.md b/templates/wiki-log.md index 25d799c..6068ca9 100644 --- a/templates/wiki-log.md +++ b/templates/wiki-log.md @@ -1,9 +1,9 @@ --- title: "Operations Log — {{GENOME_NAME}}" type: log -domain: { { GENOME_NAME } } +domain: {{ GENOME_NAME }} maturity: stable -last_updated: { { DATE } } +last_updated: {{ DATE }} private: false ---