flonat-research 0.1.0
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/.claude/agents/domain-reviewer.md +336 -0
- package/.claude/agents/fixer.md +226 -0
- package/.claude/agents/paper-critic.md +370 -0
- package/.claude/agents/peer-reviewer.md +289 -0
- package/.claude/agents/proposal-reviewer.md +215 -0
- package/.claude/agents/referee2-reviewer.md +367 -0
- package/.claude/agents/references/journal-referee-profiles.md +354 -0
- package/.claude/agents/references/paper-critic/council-personas.md +77 -0
- package/.claude/agents/references/paper-critic/council-prompts.md +198 -0
- package/.claude/agents/references/peer-reviewer/report-template.md +199 -0
- package/.claude/agents/references/peer-reviewer/sa-prompts.md +260 -0
- package/.claude/agents/references/peer-reviewer/security-scan.md +188 -0
- package/.claude/agents/references/proposal-reviewer/report-template.md +144 -0
- package/.claude/agents/references/proposal-reviewer/sa-prompts.md +149 -0
- package/.claude/agents/references/referee-config.md +114 -0
- package/.claude/agents/references/referee2-reviewer/audit-checklists.md +287 -0
- package/.claude/agents/references/referee2-reviewer/report-template.md +334 -0
- package/.claude/rules/design-before-results.md +52 -0
- package/.claude/rules/ignore-agents-md.md +17 -0
- package/.claude/rules/ignore-gemini-md.md +17 -0
- package/.claude/rules/lean-claude-md.md +45 -0
- package/.claude/rules/learn-tags.md +99 -0
- package/.claude/rules/overleaf-separation.md +67 -0
- package/.claude/rules/plan-first.md +175 -0
- package/.claude/rules/read-docs-first.md +50 -0
- package/.claude/rules/scope-discipline.md +28 -0
- package/.claude/settings.json +125 -0
- package/.context/current-focus.md +33 -0
- package/.context/preferences/priorities.md +36 -0
- package/.context/preferences/task-naming.md +28 -0
- package/.context/profile.md +29 -0
- package/.context/projects/_index.md +41 -0
- package/.context/projects/papers/nudge-exp.md +22 -0
- package/.context/projects/papers/uncertainty.md +31 -0
- package/.context/resources/claude-scientific-writer-review.md +48 -0
- package/.context/resources/cunningham-multi-analyst-agents.md +104 -0
- package/.context/resources/cunningham-multilang-code-audit.md +62 -0
- package/.context/resources/google-ai-co-scientist-review.md +72 -0
- package/.context/resources/karpathy-llm-council-review.md +58 -0
- package/.context/resources/multi-coder-reliability-protocol.md +175 -0
- package/.context/resources/pedro-santanna-takeaways.md +96 -0
- package/.context/resources/venue-rankings/abs_ajg_2024.csv +1823 -0
- package/.context/resources/venue-rankings/abs_ajg_2024_econ.csv +356 -0
- package/.context/resources/venue-rankings/cabs_4_4star_theory.csv +40 -0
- package/.context/resources/venue-rankings/core_2026.csv +801 -0
- package/.context/resources/venue-rankings.md +147 -0
- package/.context/workflows/README.md +69 -0
- package/.context/workflows/daily-review.md +91 -0
- package/.context/workflows/meeting-actions.md +108 -0
- package/.context/workflows/replication-protocol.md +155 -0
- package/.context/workflows/weekly-review.md +113 -0
- package/.mcp-server-biblio/formatters.py +158 -0
- package/.mcp-server-biblio/pyproject.toml +11 -0
- package/.mcp-server-biblio/server.py +678 -0
- package/.mcp-server-biblio/sources/__init__.py +14 -0
- package/.mcp-server-biblio/sources/base.py +73 -0
- package/.mcp-server-biblio/sources/formatters.py +83 -0
- package/.mcp-server-biblio/sources/models.py +22 -0
- package/.mcp-server-biblio/sources/multi_source.py +243 -0
- package/.mcp-server-biblio/sources/openalex_source.py +183 -0
- package/.mcp-server-biblio/sources/scopus_source.py +309 -0
- package/.mcp-server-biblio/sources/wos_source.py +508 -0
- package/.mcp-server-biblio/uv.lock +896 -0
- package/.scripts/README.md +161 -0
- package/.scripts/ai_pattern_density.py +446 -0
- package/.scripts/conf +445 -0
- package/.scripts/config.py +122 -0
- package/.scripts/count_inventory.py +275 -0
- package/.scripts/daily_digest.py +288 -0
- package/.scripts/done +177 -0
- package/.scripts/extract_meeting_actions.py +223 -0
- package/.scripts/focus +176 -0
- package/.scripts/generate-codex-agents-md.py +217 -0
- package/.scripts/inbox +194 -0
- package/.scripts/notion_helpers.py +325 -0
- package/.scripts/openalex/query_helpers.py +306 -0
- package/.scripts/papers +227 -0
- package/.scripts/query +223 -0
- package/.scripts/session-history.py +201 -0
- package/.scripts/skill-health.py +516 -0
- package/.scripts/skill-log-miner.py +273 -0
- package/.scripts/sync-to-codex.sh +252 -0
- package/.scripts/task +213 -0
- package/.scripts/tasks +190 -0
- package/.scripts/week +206 -0
- package/CLAUDE.md +197 -0
- package/LICENSE +21 -0
- package/MEMORY.md +38 -0
- package/README.md +269 -0
- package/docs/agents.md +44 -0
- package/docs/bibliography-setup.md +55 -0
- package/docs/council-mode.md +36 -0
- package/docs/getting-started.md +245 -0
- package/docs/hooks.md +38 -0
- package/docs/mcp-servers.md +82 -0
- package/docs/notion-setup.md +109 -0
- package/docs/rules.md +33 -0
- package/docs/scripts.md +303 -0
- package/docs/setup-overview/setup-overview.pdf +0 -0
- package/docs/skills.md +70 -0
- package/docs/system.md +159 -0
- package/hooks/block-destructive-git.sh +66 -0
- package/hooks/context-monitor.py +114 -0
- package/hooks/postcompact-restore.py +157 -0
- package/hooks/precompact-autosave.py +181 -0
- package/hooks/promise-checker.sh +124 -0
- package/hooks/protect-source-files.sh +81 -0
- package/hooks/resume-context-loader.sh +53 -0
- package/hooks/startup-context-loader.sh +102 -0
- package/package.json +51 -0
- package/packages/cli-council/.github/workflows/claude-code-review.yml +44 -0
- package/packages/cli-council/.github/workflows/claude.yml +50 -0
- package/packages/cli-council/README.md +100 -0
- package/packages/cli-council/pyproject.toml +43 -0
- package/packages/cli-council/src/cli_council/__init__.py +19 -0
- package/packages/cli-council/src/cli_council/__main__.py +185 -0
- package/packages/cli-council/src/cli_council/backends/__init__.py +8 -0
- package/packages/cli-council/src/cli_council/backends/base.py +81 -0
- package/packages/cli-council/src/cli_council/backends/claude.py +25 -0
- package/packages/cli-council/src/cli_council/backends/codex.py +27 -0
- package/packages/cli-council/src/cli_council/backends/gemini.py +26 -0
- package/packages/cli-council/src/cli_council/checkpoint.py +212 -0
- package/packages/cli-council/src/cli_council/config.py +51 -0
- package/packages/cli-council/src/cli_council/council.py +391 -0
- package/packages/cli-council/src/cli_council/models.py +46 -0
- package/packages/llm-council/.github/workflows/claude-code-review.yml +44 -0
- package/packages/llm-council/.github/workflows/claude.yml +50 -0
- package/packages/llm-council/README.md +453 -0
- package/packages/llm-council/pyproject.toml +42 -0
- package/packages/llm-council/src/llm_council/__init__.py +23 -0
- package/packages/llm-council/src/llm_council/__main__.py +259 -0
- package/packages/llm-council/src/llm_council/checkpoint.py +193 -0
- package/packages/llm-council/src/llm_council/client.py +253 -0
- package/packages/llm-council/src/llm_council/config.py +232 -0
- package/packages/llm-council/src/llm_council/council.py +482 -0
- package/packages/llm-council/src/llm_council/models.py +46 -0
- package/packages/mcp-bibliography/MEMORY.md +31 -0
- package/packages/mcp-bibliography/_app.py +226 -0
- package/packages/mcp-bibliography/formatters.py +158 -0
- package/packages/mcp-bibliography/log/2026-03-13-2100.md +35 -0
- package/packages/mcp-bibliography/pyproject.toml +15 -0
- package/packages/mcp-bibliography/run.sh +20 -0
- package/packages/mcp-bibliography/scholarly_formatters.py +83 -0
- package/packages/mcp-bibliography/server.py +1857 -0
- package/packages/mcp-bibliography/tools/__init__.py +28 -0
- package/packages/mcp-bibliography/tools/_registry.py +19 -0
- package/packages/mcp-bibliography/tools/altmetric.py +107 -0
- package/packages/mcp-bibliography/tools/core.py +92 -0
- package/packages/mcp-bibliography/tools/dblp.py +52 -0
- package/packages/mcp-bibliography/tools/openalex.py +296 -0
- package/packages/mcp-bibliography/tools/opencitations.py +102 -0
- package/packages/mcp-bibliography/tools/openreview.py +179 -0
- package/packages/mcp-bibliography/tools/orcid.py +131 -0
- package/packages/mcp-bibliography/tools/scholarly.py +575 -0
- package/packages/mcp-bibliography/tools/unpaywall.py +63 -0
- package/packages/mcp-bibliography/tools/zenodo.py +123 -0
- package/packages/mcp-bibliography/uv.lock +711 -0
- package/scripts/setup.sh +143 -0
- package/skills/beamer-deck/SKILL.md +199 -0
- package/skills/beamer-deck/references/quality-rubric.md +54 -0
- package/skills/beamer-deck/references/review-prompts.md +106 -0
- package/skills/bib-validate/SKILL.md +261 -0
- package/skills/bib-validate/references/council-mode.md +34 -0
- package/skills/bib-validate/references/deep-verify.md +79 -0
- package/skills/bib-validate/references/fix-mode.md +36 -0
- package/skills/bib-validate/references/openalex-verification.md +45 -0
- package/skills/bib-validate/references/preprint-check.md +31 -0
- package/skills/bib-validate/references/ref-manager-crossref.md +41 -0
- package/skills/bib-validate/references/report-template.md +82 -0
- package/skills/code-archaeology/SKILL.md +141 -0
- package/skills/code-review/SKILL.md +265 -0
- package/skills/code-review/references/quality-rubric.md +67 -0
- package/skills/consolidate-memory/SKILL.md +208 -0
- package/skills/context-status/SKILL.md +126 -0
- package/skills/creation-guard/SKILL.md +230 -0
- package/skills/devils-advocate/SKILL.md +130 -0
- package/skills/devils-advocate/references/competing-hypotheses.md +83 -0
- package/skills/init-project/SKILL.md +115 -0
- package/skills/init-project-course/references/memory-and-settings.md +92 -0
- package/skills/init-project-course/references/organise-templates.md +94 -0
- package/skills/init-project-course/skill.md +147 -0
- package/skills/init-project-light/skill.md +139 -0
- package/skills/init-project-research/SKILL.md +368 -0
- package/skills/init-project-research/references/atlas-pipeline-sync.md +70 -0
- package/skills/init-project-research/references/atlas-schema.md +81 -0
- package/skills/init-project-research/references/confirmation-report.md +39 -0
- package/skills/init-project-research/references/domain-profile-template.md +104 -0
- package/skills/init-project-research/references/interview-round3.md +34 -0
- package/skills/init-project-research/references/literature-discovery.md +43 -0
- package/skills/init-project-research/references/scaffold-details.md +197 -0
- package/skills/init-project-research/templates/field-calibration.md +60 -0
- package/skills/init-project-research/templates/pipeline-manifest.md +63 -0
- package/skills/init-project-research/templates/run-all.sh +116 -0
- package/skills/init-project-research/templates/seed-files.md +337 -0
- package/skills/insights-deck/SKILL.md +151 -0
- package/skills/interview-me/SKILL.md +157 -0
- package/skills/latex/SKILL.md +141 -0
- package/skills/latex/references/latex-configs.md +183 -0
- package/skills/latex-autofix/SKILL.md +230 -0
- package/skills/latex-autofix/references/known-errors.md +183 -0
- package/skills/latex-autofix/references/quality-rubric.md +50 -0
- package/skills/latex-health-check/SKILL.md +161 -0
- package/skills/learn/SKILL.md +220 -0
- package/skills/learn/scripts/validate_skill.py +265 -0
- package/skills/lessons-learned/SKILL.md +201 -0
- package/skills/literature/SKILL.md +335 -0
- package/skills/literature/references/agent-templates.md +393 -0
- package/skills/literature/references/bibliometric-apis.md +44 -0
- package/skills/literature/references/cli-council-search.md +79 -0
- package/skills/literature/references/openalex-api-guide.md +371 -0
- package/skills/literature/references/openalex-common-queries.md +381 -0
- package/skills/literature/references/openalex-workflows.md +248 -0
- package/skills/literature/references/reference-manager-sync.md +36 -0
- package/skills/literature/references/scopus-api-guide.md +208 -0
- package/skills/literature/references/wos-api-guide.md +308 -0
- package/skills/multi-perspective/SKILL.md +311 -0
- package/skills/multi-perspective/references/computational-many-analysts.md +77 -0
- package/skills/pipeline-manifest/SKILL.md +226 -0
- package/skills/pre-submission-report/SKILL.md +153 -0
- package/skills/process-reviews/SKILL.md +244 -0
- package/skills/process-reviews/references/rr-routing.md +101 -0
- package/skills/project-deck/SKILL.md +87 -0
- package/skills/project-safety/SKILL.md +135 -0
- package/skills/proofread/SKILL.md +254 -0
- package/skills/proofread/references/quality-rubric.md +104 -0
- package/skills/python-env/SKILL.md +57 -0
- package/skills/quarto-deck/SKILL.md +226 -0
- package/skills/quarto-deck/references/markdown-format.md +143 -0
- package/skills/quarto-deck/references/quality-rubric.md +54 -0
- package/skills/save-context/SKILL.md +174 -0
- package/skills/session-log/SKILL.md +98 -0
- package/skills/shared/concept-validation-gate.md +161 -0
- package/skills/shared/council-protocol.md +265 -0
- package/skills/shared/distribution-diagnostics.md +164 -0
- package/skills/shared/engagement-stratified-sampling.md +218 -0
- package/skills/shared/escalation-protocol.md +74 -0
- package/skills/shared/external-audit-protocol.md +205 -0
- package/skills/shared/intercoder-reliability.md +256 -0
- package/skills/shared/mcp-degradation.md +81 -0
- package/skills/shared/method-probing-questions.md +163 -0
- package/skills/shared/multi-language-conventions.md +143 -0
- package/skills/shared/paid-api-safety.md +174 -0
- package/skills/shared/palettes.md +90 -0
- package/skills/shared/progressive-disclosure.md +92 -0
- package/skills/shared/project-documentation-content.md +443 -0
- package/skills/shared/project-documentation-format.md +281 -0
- package/skills/shared/project-documentation.md +100 -0
- package/skills/shared/publication-output.md +138 -0
- package/skills/shared/quality-scoring.md +70 -0
- package/skills/shared/reference-resolution.md +77 -0
- package/skills/shared/research-quality-rubric.md +165 -0
- package/skills/shared/rhetoric-principles.md +54 -0
- package/skills/shared/skill-design-patterns.md +272 -0
- package/skills/shared/skill-index.md +240 -0
- package/skills/shared/system-documentation.md +334 -0
- package/skills/shared/tikz-rules.md +402 -0
- package/skills/shared/validation-tiers.md +121 -0
- package/skills/shared/venue-guides/README.md +46 -0
- package/skills/shared/venue-guides/cell_press_style.md +483 -0
- package/skills/shared/venue-guides/conferences_formatting.md +564 -0
- package/skills/shared/venue-guides/cs_conference_style.md +463 -0
- package/skills/shared/venue-guides/examples/cell_summary_example.md +247 -0
- package/skills/shared/venue-guides/examples/medical_structured_abstract.md +313 -0
- package/skills/shared/venue-guides/examples/nature_abstract_examples.md +213 -0
- package/skills/shared/venue-guides/examples/neurips_introduction_example.md +245 -0
- package/skills/shared/venue-guides/journals_formatting.md +486 -0
- package/skills/shared/venue-guides/medical_journal_styles.md +535 -0
- package/skills/shared/venue-guides/ml_conference_style.md +556 -0
- package/skills/shared/venue-guides/nature_science_style.md +405 -0
- package/skills/shared/venue-guides/reviewer_expectations.md +417 -0
- package/skills/shared/venue-guides/venue_writing_styles.md +321 -0
- package/skills/split-pdf/SKILL.md +172 -0
- package/skills/split-pdf/methodology.md +48 -0
- package/skills/sync-notion/SKILL.md +93 -0
- package/skills/system-audit/SKILL.md +157 -0
- package/skills/system-audit/references/sub-agent-prompts.md +294 -0
- package/skills/task-management/SKILL.md +131 -0
- package/skills/update-focus/SKILL.md +204 -0
- package/skills/update-project-doc/SKILL.md +194 -0
- package/skills/validate-bib/SKILL.md +242 -0
- package/skills/validate-bib/references/council-mode.md +34 -0
- package/skills/validate-bib/references/deep-verify.md +71 -0
- package/skills/validate-bib/references/openalex-verification.md +45 -0
- package/skills/validate-bib/references/preprint-check.md +31 -0
- package/skills/validate-bib/references/report-template.md +62 -0
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
# Project Documentation — Format Conventions
|
|
2
|
+
|
|
3
|
+
> Conventions for ASCII diagrams, env vars, tone, LaTeX, Beamer, public variants, and validation.
|
|
4
|
+
> Split from [`project-documentation.md`](project-documentation.md) for leanness.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## ASCII Diagrams
|
|
9
|
+
|
|
10
|
+
### Direction Conventions
|
|
11
|
+
|
|
12
|
+
| Flow type | Direction | Example |
|
|
13
|
+
|-----------|-----------|---------|
|
|
14
|
+
| Data/request flow | Left-to-right | `User ──→ API ──→ DB` |
|
|
15
|
+
| Stage progression | Top-to-bottom | Stage 1 → Stage 2 → Stage 3 |
|
|
16
|
+
| Architecture layers | Top-to-bottom | Frontend → Backend → Database |
|
|
17
|
+
| Workflow chains | Left-to-right with branches | `A ──→ B ──→ C` with `└──→ D` |
|
|
18
|
+
|
|
19
|
+
### Symbol Legend
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
──→ directional flow
|
|
23
|
+
│ vertical connection
|
|
24
|
+
├── branch (continuing)
|
|
25
|
+
└── branch (terminal)
|
|
26
|
+
┌─┐ box corners (for containers)
|
|
27
|
+
▼ ▲ vertical arrows
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Labelling
|
|
31
|
+
|
|
32
|
+
- Label every box with its service/component name
|
|
33
|
+
- Label arrows only when the relationship isn't obvious (e.g., "OAuth", "REST API")
|
|
34
|
+
- Add parenthetical notes for data stores: `SQLite (results + cache)`
|
|
35
|
+
- Keep diagrams under 15 lines — split into multiple diagrams if needed
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Environment Variable Documentation
|
|
40
|
+
|
|
41
|
+
Use this table format everywhere env vars are documented:
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
| Variable | Purpose | Required | Default |
|
|
45
|
+
|----------|---------|----------|---------|
|
|
46
|
+
| `OPENROUTER_API_KEY` | LLM access via OpenRouter | Yes | — |
|
|
47
|
+
| `OPENALEX_API_KEY` | OpenAlex bibliometric data | Yes | — |
|
|
48
|
+
| `SCOPUS_API_KEY` | Scopus search (optional) | No | — |
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Rules:**
|
|
52
|
+
- Required column: "Yes" or "No" — never blank
|
|
53
|
+
- Default column: the actual default value, or "—" if none
|
|
54
|
+
- Group by service (API keys together, app config together)
|
|
55
|
+
- In READMEs, show env vars inside bash code blocks with comments. In reference docs, use the table.
|
|
56
|
+
- `.env.example` must include every variable with a comment
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Tone by Audience
|
|
61
|
+
|
|
62
|
+
| Audience | Tone | Patterns |
|
|
63
|
+
|----------|------|----------|
|
|
64
|
+
| End users (user manual) | Approachable, instructional | "You can...", "Enter your...", "Results include..." |
|
|
65
|
+
| Developers (README) | Crisp, feature-focused | Active verbs: "Get", "Fetch", "Run", "Configure" |
|
|
66
|
+
| Maintainers (architecture) | Technical, precise | Third person: "The orchestrator wires...", "Requests flow through..." |
|
|
67
|
+
| Adopters (public repo) | Welcoming, honest | "Built for...", explicit audience statement |
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## LaTeX Documentation
|
|
72
|
+
|
|
73
|
+
When a document exists in both markdown and LaTeX (e.g., user manual in `.md` and `.tex`), the markdown is the source of truth for content. The LaTeX version adds typographic polish.
|
|
74
|
+
|
|
75
|
+
### Standard Preamble (Article Style)
|
|
76
|
+
|
|
77
|
+
```latex
|
|
78
|
+
\documentclass[11pt,a4paper]{article}
|
|
79
|
+
|
|
80
|
+
\usepackage{geometry} % Margins (2.5cm all sides)
|
|
81
|
+
\usepackage[utf8]{inputenc}
|
|
82
|
+
\usepackage[T1]{fontenc}
|
|
83
|
+
\usepackage{lmodern} % Modern serif font (not Computer Modern)
|
|
84
|
+
\usepackage{microtype} % Typographic refinement
|
|
85
|
+
\usepackage{parskip} % Paragraph spacing, no indents
|
|
86
|
+
\usepackage{hyperref} % Clickable links
|
|
87
|
+
\usepackage{xcolor} % Custom colours
|
|
88
|
+
\usepackage{booktabs} % Professional tables (\toprule, \midrule, \bottomrule)
|
|
89
|
+
\usepackage{longtable} % Multi-page tables
|
|
90
|
+
\usepackage{enumitem} % List customisation
|
|
91
|
+
\usepackage{listings} % Code blocks
|
|
92
|
+
\usepackage[skins,breakable]{tcolorbox} % Callout boxes
|
|
93
|
+
\usepackage{tikz} % Diagrams
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Custom Commands
|
|
97
|
+
|
|
98
|
+
Define these reusable commands in the preamble for consistency:
|
|
99
|
+
|
|
100
|
+
```latex
|
|
101
|
+
\newcommand{\code}[1]{\texttt{\small #1}} % Inline code
|
|
102
|
+
\newcommand{\filepath}[1]{\texttt{\small #1}} % File paths
|
|
103
|
+
\newcommand{\skill}[1]{\texttt{/#1}} % Skill references
|
|
104
|
+
\newcommand{\hook}[1]{\texttt{#1}} % Hook references
|
|
105
|
+
\newcommand{\keyterm}[1]{\textbf{#1}} % Key terminology
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Colour Palette for Callout Boxes
|
|
109
|
+
|
|
110
|
+
```latex
|
|
111
|
+
\definecolor{accentgreen}{HTML}{059669} % Tip boxes
|
|
112
|
+
\definecolor{accentamber}{HTML}{D97706} % Warning boxes
|
|
113
|
+
\definecolor{accentred}{HTML}{DC2626} % Error/critical boxes
|
|
114
|
+
\definecolor{codebg}{HTML}{F3F4F6} % Code background
|
|
115
|
+
\definecolor{codeframe}{HTML}{D1D5DB} % Code border
|
|
116
|
+
|
|
117
|
+
\newtcolorbox{tipbox}[1][]{
|
|
118
|
+
colback=accentgreen!5, colframe=accentgreen!60,
|
|
119
|
+
fonttitle=\bfseries, title={#1}, sharp corners, boxrule=0.5pt}
|
|
120
|
+
\newtcolorbox{warnbox}[1][]{
|
|
121
|
+
colback=accentamber!5, colframe=accentamber!60,
|
|
122
|
+
fonttitle=\bfseries, title={#1}, sharp corners, boxrule=0.5pt}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Table Formatting
|
|
126
|
+
|
|
127
|
+
- Use `booktabs` rules: `\toprule`, `\midrule`, `\bottomrule` — never vertical lines
|
|
128
|
+
- Column spec: `@{}lp{7cm}@{}` (remove outer padding, left column, paragraph column)
|
|
129
|
+
- Multi-page tables: `\begin{longtable}` with `\endhead` for repeating headers
|
|
130
|
+
- Always `\centering` within table environments
|
|
131
|
+
|
|
132
|
+
### md/tex Parity
|
|
133
|
+
|
|
134
|
+
When both formats exist, structural parity is required: every `##` heading in the markdown should have a corresponding `\section{}` in LaTeX. Content can differ slightly (LaTeX adds figures, better formatting), but the section structure must match. Validate with `validate_docs.py` check 2.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Beamer Presentation Docs
|
|
139
|
+
|
|
140
|
+
Projects may include Beamer decks in `docs/` (e.g., `docs/scout-overview/`, `docs/setup-overview/`). These are outward-facing documentation, not just slides.
|
|
141
|
+
|
|
142
|
+
### Standard Setup
|
|
143
|
+
|
|
144
|
+
```latex
|
|
145
|
+
\documentclass[aspectratio=169,11pt]{beamer}
|
|
146
|
+
\setbeamertemplate{navigation symbols}{} % No nav clutter
|
|
147
|
+
\setbeamertemplate{footline}[frame number] % Frame numbers only
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
- **Aspect ratio:** Always 16:9 (`aspectratio=169`)
|
|
151
|
+
- **Navigation symbols:** Disabled
|
|
152
|
+
- **Footline:** Frame number only (or custom three-part: author | title | X/Y)
|
|
153
|
+
|
|
154
|
+
### Colour Palette
|
|
155
|
+
|
|
156
|
+
Define a cohesive palette of 5-8 colours in the preamble. Established palette:
|
|
157
|
+
|
|
158
|
+
| Colour | Hex | Use |
|
|
159
|
+
|--------|-----|-----|
|
|
160
|
+
| `Midnight` | `1A1A2E` | Dark backgrounds, body text |
|
|
161
|
+
| `DeepBlue` | `16213E` | Frame title backgrounds |
|
|
162
|
+
| `RoyalBlue` | `0F3460` | Structure, bullet markers |
|
|
163
|
+
| `Coral` | `E94560` | Alerts, emphasis |
|
|
164
|
+
| `CloudWhite` | `FAFBFC` | Main background |
|
|
165
|
+
| `SoftGray` | `BDC3C7` | Subtitles, subdued text |
|
|
166
|
+
| `LightBlue` | `D6EAF8` | TikZ box fills |
|
|
167
|
+
| `SlateGray` | `5D6D7E` | Arrows, secondary elements |
|
|
168
|
+
|
|
169
|
+
### Frame Title Conventions
|
|
170
|
+
|
|
171
|
+
- Use **substantive claims**, not labels: "62 skills cover the full research lifecycle" not "Skills Overview"
|
|
172
|
+
- Optional subtitle for framing questions: "Every new AI session starts from zero"
|
|
173
|
+
- Keep titles to one line
|
|
174
|
+
|
|
175
|
+
### TikZ Diagram Styling
|
|
176
|
+
|
|
177
|
+
```latex
|
|
178
|
+
\begin{tikzpicture}[
|
|
179
|
+
node distance=0.6cm and 0.8cm,
|
|
180
|
+
box/.style={draw=SlateGray, rounded corners=3pt,
|
|
181
|
+
minimum width=2.0cm, minimum height=0.75cm,
|
|
182
|
+
align=center, fill=#1, text=Midnight},
|
|
183
|
+
box/.default={LightBlue},
|
|
184
|
+
arr/.style={-{Stealth[length=2mm]}, thick, color=SlateGray},
|
|
185
|
+
]
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
- Rounded corners (3pt), minimum dimensions, centred text
|
|
189
|
+
- Colour-code by component type (e.g., `Coral!20` for interfaces, `CloudWhite` for core, `SoftGray!30` for external)
|
|
190
|
+
- Stealth arrowheads, thick strokes
|
|
191
|
+
|
|
192
|
+
### Code Blocks in Beamer
|
|
193
|
+
|
|
194
|
+
Use small monospace fonts — slides need compact code:
|
|
195
|
+
|
|
196
|
+
```latex
|
|
197
|
+
\begin{lstlisting}[language={}, basicstyle=\ttfamily\fontsize{6.5}{8}\selectfont]
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Bullet Styles
|
|
201
|
+
|
|
202
|
+
- Level 1: `\tiny$\blacksquare$` in primary colour (filled square)
|
|
203
|
+
- Level 2: `\scriptsize$\blacktriangleright$` in secondary colour (right triangle)
|
|
204
|
+
- Enumerate: `\insertenumlabel.` in primary colour
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Public/Anonymized Variants
|
|
209
|
+
|
|
210
|
+
When a document has both private and public versions (e.g., `setup-overview.tex` and `setup-overview-public.tex`), follow these conventions.
|
|
211
|
+
|
|
212
|
+
### What to Anonymize
|
|
213
|
+
|
|
214
|
+
| Private | Public replacement |
|
|
215
|
+
|---------|-------------------|
|
|
216
|
+
| Author name | Generic descriptor ("PhD researcher") or GitHub handle |
|
|
217
|
+
| Institution names | Remove entirely |
|
|
218
|
+
| Exact component counts | Remove or genericize ("30+", "Skills" without number) |
|
|
219
|
+
| Specific project names | "Multiple active research projects" |
|
|
220
|
+
| vault references | "Task manager" (generic) |
|
|
221
|
+
| Date in `\date{}` | GitHub URL or "Open-source" descriptor |
|
|
222
|
+
|
|
223
|
+
### Sync Markers
|
|
224
|
+
|
|
225
|
+
For auto-generated or synced content in public markdown files, use HTML comment markers:
|
|
226
|
+
|
|
227
|
+
```markdown
|
|
228
|
+
<!-- MARKER-NAME:START -->
|
|
229
|
+
<!-- auto-generated by script-name.py — do not edit manually -->
|
|
230
|
+
[content here]
|
|
231
|
+
<!-- MARKER-NAME:END -->
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
- Marker names: UPPERCASE-HYPHENATED (`COMPONENT-TABLE`, `SKILLS-SUMMARY`, `FILE-TREE`)
|
|
235
|
+
- Attribution line after START: `auto-generated by ...` or `synced from private ...`
|
|
236
|
+
- Warning: `do not edit manually`
|
|
237
|
+
|
|
238
|
+
### Private LaTeX Headers
|
|
239
|
+
|
|
240
|
+
```latex
|
|
241
|
+
% ============================================================
|
|
242
|
+
% Document Title — Description
|
|
243
|
+
% Author · Month Year
|
|
244
|
+
% ============================================================
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### Public LaTeX Headers
|
|
248
|
+
|
|
249
|
+
```latex
|
|
250
|
+
% ============================================================
|
|
251
|
+
% Document Title — Public Version (Format)
|
|
252
|
+
% Generated during sync — DO NOT EDIT MANUALLY
|
|
253
|
+
% Edit source-file.tex and re-run sync-script.sh
|
|
254
|
+
% ============================================================
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Automated Validation
|
|
260
|
+
|
|
261
|
+
Projects with documentation in multiple formats or locations should include a validation script that catches drift automatically.
|
|
262
|
+
|
|
263
|
+
### The `validate_docs.py` Pattern
|
|
264
|
+
|
|
265
|
+
- **Stdlib-only** — no venv needed, runs anywhere Python is installed
|
|
266
|
+
- **Location:** `scripts/validate_docs.py` in the project root
|
|
267
|
+
- **Severity levels:** FAIL (blocks CI) and WARN (informational, `--strict` promotes to FAIL)
|
|
268
|
+
- **Flags:** `--strict` (treat warnings as failures), `--check N` (run only check N)
|
|
269
|
+
- **Paths:** All resolved relative to script location — no hardcoded absolute paths
|
|
270
|
+
- **CI integration:** Run before tests in the CI pipeline
|
|
271
|
+
|
|
272
|
+
### Common Checks
|
|
273
|
+
|
|
274
|
+
| Check | Severity | What it catches |
|
|
275
|
+
|-------|----------|----------------|
|
|
276
|
+
| Help slug integrity | FAIL | WORKFLOW_TIPS slugs that don't match user-manual headings |
|
|
277
|
+
| md/tex section parity | WARN | Structural divergence between markdown and LaTeX versions |
|
|
278
|
+
| File path references | FAIL | Backtick-quoted paths in docs that don't exist on disk |
|
|
279
|
+
| Class/method references | FAIL | Code references in architecture docs that don't match source |
|
|
280
|
+
| Count accuracy | WARN | Claimed counts vs actual (data sources, templates, etc.) |
|
|
281
|
+
| Env var completeness | WARN | Settings fields missing from documentation |
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Project Documentation Conventions
|
|
2
|
+
|
|
3
|
+
> Shared conventions for outward-facing documentation: project READMEs, user manuals, architecture docs, deploy guides, and in-app help. Ensures consistency across Scout, council packages, and future projects.
|
|
4
|
+
>
|
|
5
|
+
> Companion to `system-documentation.md` (which covers internal Task Management docs like CLAUDE.md, SKILL.md, and component catalogues).
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Governed Documents
|
|
10
|
+
|
|
11
|
+
Every document governed by these conventions carries a tag on its first line:
|
|
12
|
+
|
|
13
|
+
- **Markdown:** `<!-- Governed by: skills/shared/project-documentation.md -->`
|
|
14
|
+
- **LaTeX:** `% Governed by: skills/shared/project-documentation.md`
|
|
15
|
+
|
|
16
|
+
### Registry
|
|
17
|
+
|
|
18
|
+
| Project | File | Type |
|
|
19
|
+
|---------|------|------|
|
|
20
|
+
| Scout | `README.md` | README |
|
|
21
|
+
| Scout | `docs/user-manual.md` | User manual |
|
|
22
|
+
| Scout | `docs/architecture.md` | Architecture |
|
|
23
|
+
| Scout | `deploy/README.md` | Deploy guide |
|
|
24
|
+
| Scout | `docs/user-manual.tex` | LaTeX manual |
|
|
25
|
+
| Scout | `docs/scout-overview/scout-overview.tex` | Beamer deck |
|
|
26
|
+
| Task Management | `docs/user-manual/user-manual.tex` | LaTeX manual |
|
|
27
|
+
| Task Management | `docs/setup-overview/setup-overview.tex` | Beamer deck |
|
|
28
|
+
| Task Management | `docs/setup-overview/setup-overview-public.tex` | Beamer deck (public) |
|
|
29
|
+
| Task Management | `public/public-repo/README.md` | README (public) |
|
|
30
|
+
| Task Management | `public/public-repo/docs/getting-started.md` | Getting started |
|
|
31
|
+
| Task Management | `public/public-repo/docs/council-mode.md` | Feature guide |
|
|
32
|
+
| Task Management | `public/public-repo/docs/biblio-setup.md` | Setup guide |
|
|
33
|
+
| Task Management | `public/public-repo/docs/setup.md (legacy)` | Setup guide |
|
|
34
|
+
|
|
35
|
+
### Tagging Protocol
|
|
36
|
+
|
|
37
|
+
When **creating** new outward-facing documentation (README, user manual, architecture doc, deploy guide, Beamer deck, or LaTeX manual):
|
|
38
|
+
|
|
39
|
+
1. Add the appropriate tag as the very first line of the file
|
|
40
|
+
2. Add the file to the registry table above
|
|
41
|
+
|
|
42
|
+
When **auditing** a project's documentation (via `/sync-repo scout`, `/update-project-doc`, or manually):
|
|
43
|
+
|
|
44
|
+
1. Grep for `Governed by: skills/shared/project-documentation.md` across all `.md` and `.tex` files
|
|
45
|
+
2. Flag any outward-facing docs that lack the tag — these are candidates for tagging
|
|
46
|
+
3. Do not tag internal docs (CLAUDE.md, SKILL.md, `.context/` files, `log/` files, `docs/skills.md`, etc.) — those are governed by `system-documentation.md`
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## The Documentation Suite
|
|
51
|
+
|
|
52
|
+
Every software project should have a README. Larger projects add docs as they grow. This table defines what each file covers and when to create it.
|
|
53
|
+
|
|
54
|
+
| Document | Create when | Audience | Covers |
|
|
55
|
+
|----------|------------|----------|--------|
|
|
56
|
+
| `README.md` | Always | Everyone | What it does, quick start, project structure |
|
|
57
|
+
| `docs/user-manual.md` | Web UI or CLI with 3+ workflows | End users | Every feature, step-by-step, with examples |
|
|
58
|
+
| `docs/architecture.md` | 5+ source files or non-obvious design | Maintainers | Service layers, data flow, design patterns |
|
|
59
|
+
| `deploy/README.md` | Remote deployment exists | DevOps / self | Infrastructure, secrets, CI/CD |
|
|
60
|
+
| In-app help (`/help` + tips) | Web UI exists | End users | Same content as user manual, rendered in-app |
|
|
61
|
+
|
|
62
|
+
**Principle:** Each document serves a distinct audience. If two docs say the same thing, one should be a pointer to the other.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Content Conventions
|
|
67
|
+
|
|
68
|
+
Detailed conventions for each document type: [`project-documentation-content.md`](project-documentation-content.md)
|
|
69
|
+
|
|
70
|
+
Covers: README required sections, user manual structure, per-workflow pattern, architecture doc structure, deploy guide structure, in-app help system, library/package READMEs, CLI example conventions.
|
|
71
|
+
|
|
72
|
+
## Format Conventions
|
|
73
|
+
|
|
74
|
+
Detailed conventions for formatting and presentation: [`project-documentation-format.md`](project-documentation-format.md)
|
|
75
|
+
|
|
76
|
+
Covers: ASCII diagrams, env var tables, tone by audience, LaTeX preamble and commands, Beamer decks (colour palette, TikZ, bullet styles), public/anonymized variants (sync markers, anonymization rules), automated validation (`validate_docs.py` pattern).
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Checklist for New Project Documentation
|
|
81
|
+
|
|
82
|
+
Before shipping any project documentation:
|
|
83
|
+
|
|
84
|
+
1. **README exists** with all required sections
|
|
85
|
+
2. **Live URL** linked prominently if hosted
|
|
86
|
+
3. **ASCII diagram** shows end-to-end flow
|
|
87
|
+
4. **Tech stack table** lists every major dependency
|
|
88
|
+
5. **Setup is copy-pasteable** — tested from a clean state
|
|
89
|
+
6. **CLI examples use real arguments** — no `$` prefix, no placeholders
|
|
90
|
+
7. **Env vars documented** in consistent table format
|
|
91
|
+
8. **File tree annotated** — comments explain non-obvious entries
|
|
92
|
+
9. **Pointer table** links to detailed docs (user manual, architecture, deploy)
|
|
93
|
+
10. **User manual** follows per-workflow pattern (URL → purpose → how to use → what you get)
|
|
94
|
+
11. **Limitations section** with honest caveats (numbered, bold constraint + explanation)
|
|
95
|
+
12. **In-app help** loads user manual at runtime (no content duplication)
|
|
96
|
+
13. **LaTeX versions** use standard preamble, custom commands, booktabs tables
|
|
97
|
+
14. **md/tex parity** — section structure matches between formats
|
|
98
|
+
15. **Beamer decks** use 16:9, consistent colour palette, substantive frame titles
|
|
99
|
+
16. **Public variants** anonymized (no names, no exact counts, sync markers for auto-generated content)
|
|
100
|
+
17. **Validation script** checks for drift between docs and code
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Publication Output Conventions
|
|
2
|
+
|
|
3
|
+
> Table format, figure format, and output routing standards for publication-ready outputs.
|
|
4
|
+
> Referenced by `/data-analysis`, `/replication-package`.
|
|
5
|
+
|
|
6
|
+
## Table Format: Booktabs Three-Line
|
|
7
|
+
|
|
8
|
+
All LaTeX tables use the `booktabs` three-line style unless a venue explicitly requires something else.
|
|
9
|
+
|
|
10
|
+
### Standard Structure
|
|
11
|
+
|
|
12
|
+
```latex
|
|
13
|
+
\begin{table}[htbp]
|
|
14
|
+
\centering
|
|
15
|
+
\caption{Descriptive title stating the finding}
|
|
16
|
+
\label{tab:descriptive-label}
|
|
17
|
+
\begin{tabular}{lcccc}
|
|
18
|
+
\toprule
|
|
19
|
+
& (1) & (2) & (3) & (4) \\
|
|
20
|
+
& OLS & FE & IV & IV-FE \\
|
|
21
|
+
\midrule
|
|
22
|
+
Treatment & 0.123*** & 0.098** & 0.145** & 0.112* \\
|
|
23
|
+
& (0.034) & (0.041) & (0.058) & (0.063) \\
|
|
24
|
+
Control A & 0.456 & 0.423 & 0.478 & 0.445 \\
|
|
25
|
+
& (0.089) & (0.092) & (0.095) & (0.098) \\
|
|
26
|
+
\midrule
|
|
27
|
+
Observations & 1,247 & 1,247 & 1,189 & 1,189 \\
|
|
28
|
+
R$^2$ & 0.234 & 0.312 & 0.198 & 0.289 \\
|
|
29
|
+
Controls & Yes & Yes & Yes & Yes \\
|
|
30
|
+
Fixed Effects & No & Yes & No & Yes \\
|
|
31
|
+
\bottomrule
|
|
32
|
+
\end{tabular}
|
|
33
|
+
\begin{tablenotes}[flushleft]
|
|
34
|
+
\footnotesize
|
|
35
|
+
\item \textit{Notes:} Standard errors in parentheses, clustered at the firm level.
|
|
36
|
+
* $p<0.10$, ** $p<0.05$, *** $p<0.01$.
|
|
37
|
+
\end{tablenotes}
|
|
38
|
+
\end{table}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Rules
|
|
42
|
+
|
|
43
|
+
1. **Three lines only:** `\toprule`, `\midrule`, `\bottomrule`. No `\hline`, no vertical lines.
|
|
44
|
+
2. **Standard errors in parentheses** below coefficients. Never brackets.
|
|
45
|
+
3. **Star convention:** `* p<0.10, ** p<0.05, *** p<0.01` (state in table notes).
|
|
46
|
+
4. **Column headers:** Model number in row 1, specification name in row 2.
|
|
47
|
+
5. **Panel labels:** Use `\multicolumn` with `Panel A:`, `Panel B:` for multi-panel tables.
|
|
48
|
+
6. **Footnotes:** Use `tablenotes` environment or `\smallskip\footnotesize` block below the table.
|
|
49
|
+
7. **Alignment:** `l` for row labels, `c` for numeric columns. Use `S` (siunitx) for decimal alignment if available.
|
|
50
|
+
8. **Number formatting:** Thousands separator (1,247 not 1247). 3 decimal places for coefficients, 2 for R².
|
|
51
|
+
|
|
52
|
+
## Figure Format
|
|
53
|
+
|
|
54
|
+
### Export Standards
|
|
55
|
+
|
|
56
|
+
| Format | Use case |
|
|
57
|
+
|--------|----------|
|
|
58
|
+
| PDF | Default for all figures (vector, lossless) |
|
|
59
|
+
| PNG | Raster plots, heatmaps (300+ DPI) |
|
|
60
|
+
| SVG | Web/HTML output only |
|
|
61
|
+
|
|
62
|
+
### Dimensions
|
|
63
|
+
|
|
64
|
+
- **Single column:** 6 × 4 inches (width × height)
|
|
65
|
+
- **Full width:** 10 × 6 inches
|
|
66
|
+
- **Square (scatter/correlation):** 6 × 6 inches
|
|
67
|
+
- **Panel figures:** Scale width proportionally; maintain consistent height across panels
|
|
68
|
+
|
|
69
|
+
### Style
|
|
70
|
+
|
|
71
|
+
- Greyscale-safe colour palettes (figures should be readable in B&W print)
|
|
72
|
+
- Minimal gridlines (light grey, major ticks only)
|
|
73
|
+
- Axis labels with units: "Revenue (USD millions)"
|
|
74
|
+
- Legend inside plot area when space allows; outside otherwise
|
|
75
|
+
- Title in the LaTeX `\caption{}`, not baked into the figure image
|
|
76
|
+
|
|
77
|
+
### LaTeX Inclusion
|
|
78
|
+
|
|
79
|
+
```latex
|
|
80
|
+
\begin{figure}[htbp]
|
|
81
|
+
\centering
|
|
82
|
+
\includegraphics[width=\textwidth]{figures/fig1.pdf}
|
|
83
|
+
\caption{Descriptive title stating what the figure shows}
|
|
84
|
+
\label{fig:descriptive-label}
|
|
85
|
+
\end{figure}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Output Routing
|
|
89
|
+
|
|
90
|
+
### Directory Structure
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
project/
|
|
94
|
+
├── code/ ← scripts that generate output
|
|
95
|
+
├── data/
|
|
96
|
+
│ ├── raw/ ← READ-ONLY source data
|
|
97
|
+
│ ├── processed/ ← cleaned/transformed data
|
|
98
|
+
│ └── synthetic/ ← generated test data
|
|
99
|
+
├── output/ ← intermediate results (not for paper)
|
|
100
|
+
│ ├── tables/ ← .csv, .rds, .pkl intermediate tables
|
|
101
|
+
│ └── figures/ ← exploratory/draft figures
|
|
102
|
+
└── paper/ ← Overleaf-synced, LaTeX only
|
|
103
|
+
├── tables/ ← .tex table files (generated by code)
|
|
104
|
+
└── figures/ ← .pdf/.png figure files (generated by code)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Routing Rules
|
|
108
|
+
|
|
109
|
+
1. **Scripts** live in `code/` or `src/`, never in `paper/`.
|
|
110
|
+
2. **Publication tables** (`.tex`) go directly to `paper/tables/`. Generated by code, referenced via `\input{tables/table1.tex}`.
|
|
111
|
+
3. **Publication figures** (`.pdf`/`.png`) go directly to `paper/figures/`. Generated by code, referenced via `\includegraphics{figures/fig1.pdf}`.
|
|
112
|
+
4. **Intermediate outputs** (exploratory plots, draft tables, `.csv` summaries) go to `output/`. These are not committed to the paper directory.
|
|
113
|
+
5. **Never hard-code results** in `.tex` files. All numbers come from `\input{}` or generated files.
|
|
114
|
+
|
|
115
|
+
### Naming Conventions
|
|
116
|
+
|
|
117
|
+
| File type | Pattern | Example |
|
|
118
|
+
|-----------|---------|---------|
|
|
119
|
+
| Main results table | `table{N}.tex` | `table1.tex` |
|
|
120
|
+
| Named table | `tab-{name}.tex` | `tab-descriptives.tex` |
|
|
121
|
+
| Appendix table | `tableA{N}.tex` | `tableA1.tex` |
|
|
122
|
+
| Main figure | `fig{N}.pdf` | `fig1.pdf` |
|
|
123
|
+
| Named figure | `fig-{name}.pdf` | `fig-event-study.pdf` |
|
|
124
|
+
| Appendix figure | `figA{N}.pdf` | `figA1.pdf` |
|
|
125
|
+
|
|
126
|
+
### Inline Statistics
|
|
127
|
+
|
|
128
|
+
For inline numbers (sample sizes, test statistics, p-values), export a `.tex` file with `\newcommand` definitions:
|
|
129
|
+
|
|
130
|
+
```latex
|
|
131
|
+
% Generated by code/analysis.R — do not edit manually
|
|
132
|
+
\newcommand{\Nobs}{1,247}
|
|
133
|
+
\newcommand{\maineffect}{0.123}
|
|
134
|
+
\newcommand{\mainse}{0.034}
|
|
135
|
+
\newcommand{\mainpval}{0.001}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Include in the paper preamble with `\input{tables/inline-stats.tex}` and reference as `$N = \Nobs$`.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Quality Scoring Framework
|
|
2
|
+
|
|
3
|
+
> Shared framework for numeric quality scoring across review skills. Each skill has its own rubric in `references/quality-rubric.md` — this file defines the common structure.
|
|
4
|
+
|
|
5
|
+
## How It Works
|
|
6
|
+
|
|
7
|
+
1. **Start at 100.** Every artefact begins with a perfect score.
|
|
8
|
+
2. **Deduct per issue.** Each issue found subtracts points based on its severity tier (see rubric).
|
|
9
|
+
3. **Floor at 0.** Score cannot go negative.
|
|
10
|
+
4. **Apply verdict.** Map the final score to a verdict using the thresholds below.
|
|
11
|
+
|
|
12
|
+
## Severity Tiers
|
|
13
|
+
|
|
14
|
+
| Tier | Deduction range | Definition |
|
|
15
|
+
|------|----------------|------------|
|
|
16
|
+
| **Blocker** | -100 | Artefact is broken — cannot compile, render, or run. Single blocker = automatic 0. |
|
|
17
|
+
| **Critical** | -15 to -25 | Will be noticed by reviewers/users. May cause rejection or misinterpretation. |
|
|
18
|
+
| **Major** | -5 to -14 | Noticeable quality issue. Degrades professionalism or correctness. |
|
|
19
|
+
| **Minor** | -1 to -4 | Polish issue. Individually harmless, accumulates. |
|
|
20
|
+
|
|
21
|
+
Each skill's rubric maps specific issues to a tier and exact deduction. When an issue doesn't fit an existing rubric entry, classify it by tier definition and use the midpoint of the range.
|
|
22
|
+
|
|
23
|
+
## Verdicts and Thresholds
|
|
24
|
+
|
|
25
|
+
| Score | Verdict | Meaning |
|
|
26
|
+
|-------|---------|---------|
|
|
27
|
+
| **95-100** | Ship | Ready for submission, sharing, or publication. |
|
|
28
|
+
| **90-94** | Ship with notes | Minor issues noted in report — acceptable to proceed. |
|
|
29
|
+
| **80-89** | Revise | Meaningful issues that should be fixed before sharing. |
|
|
30
|
+
| **60-79** | Revise (major) | Significant problems. Do not share in current state. |
|
|
31
|
+
| **0-59** | Blocked | Fundamental issues. Artefact needs substantial rework. |
|
|
32
|
+
|
|
33
|
+
## Deduction Rules
|
|
34
|
+
|
|
35
|
+
- **One deduction per unique issue.** If the same typo appears 5 times, deduct once for the pattern + note the count.
|
|
36
|
+
- **Repeated minor issues escalate.** 5+ instances of the same minor issue → treat as one major deduction instead of 5 minor ones.
|
|
37
|
+
- **Blockers are absolute.** Any single blocker sets the score to 0 regardless of other findings.
|
|
38
|
+
- **N/A categories don't penalise.** If a rubric category doesn't apply (e.g., no TikZ diagrams), skip it — don't award bonus points.
|
|
39
|
+
|
|
40
|
+
## Score Block Template
|
|
41
|
+
|
|
42
|
+
Include this block at the top of every review report, after the summary table:
|
|
43
|
+
|
|
44
|
+
```markdown
|
|
45
|
+
## Quality Score
|
|
46
|
+
|
|
47
|
+
| Metric | Value |
|
|
48
|
+
|--------|-------|
|
|
49
|
+
| **Score** | XX / 100 |
|
|
50
|
+
| **Verdict** | Ship / Ship with notes / Revise / Revise (major) / Blocked |
|
|
51
|
+
|
|
52
|
+
### Deductions
|
|
53
|
+
|
|
54
|
+
| # | Issue | Tier | Deduction | Category |
|
|
55
|
+
|---|-------|------|-----------|----------|
|
|
56
|
+
| 1 | [description] | Critical | -15 | [rubric category] |
|
|
57
|
+
| 2 | [description] | Minor | -2 | [rubric category] |
|
|
58
|
+
| ... | | | | |
|
|
59
|
+
| | **Total deductions** | | **-XX** | |
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Applying the Framework
|
|
63
|
+
|
|
64
|
+
When a skill says "Apply quality scoring":
|
|
65
|
+
|
|
66
|
+
1. Read the skill's `references/quality-rubric.md` for issue-to-deduction mappings.
|
|
67
|
+
2. As you review, log each issue with its rubric entry and deduction.
|
|
68
|
+
3. Sum deductions, compute final score (100 - total), apply verdict.
|
|
69
|
+
4. Insert the Score Block into the report at the designated location.
|
|
70
|
+
5. In the Recommendations section, prioritise fixes by deduction size (biggest impact first).
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Shared: Reference Resolution & Filing Sequence
|
|
2
|
+
|
|
3
|
+
Canonical lookup and filing sequence for all bibliography skills (`/literature`, `/bib-validate`, `/bib-parse`, `/bib-coverage`). Reference this module instead of reimplementing lookup logic.
|
|
4
|
+
|
|
5
|
+
## Resolution Order (Lookup)
|
|
6
|
+
|
|
7
|
+
When resolving a reference (checking if it exists, finding metadata, verifying DOIs), search in this order:
|
|
8
|
+
|
|
9
|
+
1. **Zotero** (active write target) — `mcp__refpile__search_library` by title/author. If found, reuse its `citationKey`.
|
|
10
|
+
2. **Paperpile** (read-only cross-reference) — `mcp__paperpile__search_library` by title/author. If found, note for status reporting. Paperpile is read-only; items cannot be added via MCP.
|
|
11
|
+
3. **Bibliography MCP** (scholarly sources) — `scholarly_search` across OpenAlex + Scopus + WoS for metadata enrichment.
|
|
12
|
+
4. **Crossref API** (DOI fallback) — `curl -sL "https://api.crossref.org/works?query.bibliographic=[URL-encoded title+author]&rows=3"` for DOI resolution.
|
|
13
|
+
5. **Web search** (last resort) — `WebSearch` for papers not found in any structured source.
|
|
14
|
+
|
|
15
|
+
**Graceful degradation:** If any MCP is unavailable, skip it with a warning and continue with the remaining sources.
|
|
16
|
+
|
|
17
|
+
## Status Categories
|
|
18
|
+
|
|
19
|
+
Based on where a reference is found, assign one of these statuses:
|
|
20
|
+
|
|
21
|
+
| Zotero | Paperpile | .bib | Status | Action |
|
|
22
|
+
|--------|-----------|------|--------|--------|
|
|
23
|
+
| Yes | Yes | Yes | `HEALTHY` | No action needed |
|
|
24
|
+
| Yes | — | Yes | `HEALTHY` | No action needed |
|
|
25
|
+
| No | Yes | Yes | `MIGRATE_TO_ZOTERO` | Auto-add to Zotero from Paperpile metadata |
|
|
26
|
+
| No | No | Yes | `DRIFT` | In local .bib but not in any reference manager — auto-add to Zotero |
|
|
27
|
+
| Yes | — | No | `EXPORT_GAP` | In Zotero but not in local .bib — export or cite |
|
|
28
|
+
| No | Yes | No | `EXPORT_GAP` | In Paperpile but not in local .bib — export or cite |
|
|
29
|
+
| No | No | No | `MISSING` | Not found anywhere — add via filing sequence below |
|
|
30
|
+
|
|
31
|
+
## Filing Sequence (Adding Items)
|
|
32
|
+
|
|
33
|
+
When a skill needs to add a reference to Zotero, follow this sequence:
|
|
34
|
+
|
|
35
|
+
### 1. Add to Zotero
|
|
36
|
+
|
|
37
|
+
Call `mcp__refpile__add_item` with full metadata (title, authors, year, journal/booktitle, DOI, itemType).
|
|
38
|
+
|
|
39
|
+
### 2. File into topic collection
|
|
40
|
+
|
|
41
|
+
Resolve the topic collection key from `zotero-collections.md` (in the project's research directory or the Task Management `.context/resources/` folder):
|
|
42
|
+
|
|
43
|
+
- **Explicit argument:** If the user passed `--topic <slug>`, use that slug to look up the collection key.
|
|
44
|
+
- **Project context:** Read the project's `CLAUDE.md` or topic frontmatter for the Atlas topic slug.
|
|
45
|
+
- **Directory name:** If inside a research project directory, use the directory name as the topic slug.
|
|
46
|
+
|
|
47
|
+
Call `mcp__refpile__add_to_collection(collection_key=<resolved_key>)` to file the item into the topic-specific collection.
|
|
48
|
+
|
|
49
|
+
### 3. Also tag for review
|
|
50
|
+
|
|
51
|
+
Call `mcp__refpile__add_to_collection` with the `_Needs Review` collection key. Items go into **both** the topic collection and `_Needs Review` — the topic collection for organisation, `_Needs Review` for the user to verify.
|
|
52
|
+
|
|
53
|
+
### 4. Report Paperpile gaps
|
|
54
|
+
|
|
55
|
+
List items that need manual import into Paperpile (read-only MCP — user must add via Paperpile app or browser extension).
|
|
56
|
+
|
|
57
|
+
### 5. Fallback
|
|
58
|
+
|
|
59
|
+
If the topic collection key cannot be resolved (no `--topic` argument, no project context, slug not found in `zotero-collections.md`), file into `_Needs Review` only and warn:
|
|
60
|
+
|
|
61
|
+
> "Could not resolve topic collection — filed into `_Needs Review` only. Specify `--topic <slug>` or ensure the project has an Atlas topic."
|
|
62
|
+
|
|
63
|
+
## Post-Run Maintenance
|
|
64
|
+
|
|
65
|
+
After any skill run that adds items to Zotero:
|
|
66
|
+
|
|
67
|
+
1. **Update `zotero-collections.md`** — increment item counts for affected collections.
|
|
68
|
+
2. **Report migration candidates** — list items found in Paperpile but not in Zotero as `MIGRATE_TO_ZOTERO`. Offer to auto-add them.
|
|
69
|
+
|
|
70
|
+
## Skills That Reference This Module
|
|
71
|
+
|
|
72
|
+
| Skill | Uses Resolution | Uses Filing | Notes |
|
|
73
|
+
|-------|----------------|-------------|-------|
|
|
74
|
+
| `/literature` | Phase 1 (pre-search check) | Phase 6c (sync to managers) | Full workflow |
|
|
75
|
+
| `/bib-validate` | Ref Manager Cross-Reference | Fix Mode (auto-add) | Reports + optional fixes |
|
|
76
|
+
| `/bib-parse` | Phase 3.5 (library check) | Phase 6.5 (sync to Zotero) | PDF extraction workflow |
|
|
77
|
+
| `/bib-coverage` | Collection comparison | — | Read-only comparison |
|