wtf-p 0.7.2 → 0.7.4
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 +15 -11
- package/bin/commands/install-logic.js +37 -10
- package/bin/lib/adapter-compiler.js +25 -12
- package/package.json +1 -1
- package/protocol/actions/research-gap.json +1 -1
- package/protocol/roles/research-synthesizer.md +1 -1
- package/protocol/skills/wtfp-deliver-research/references/actions.md +4 -4
- package/protocol/skills/wtfp-plan-section/references/actions.md +1 -1
- package/protocol/skills/wtfp-research-literature/references/actions.md +1 -1
- package/protocol/skills/wtfp-write-section/references/actions.md +1 -1
- package/protocol/templates/poster.md +124 -41
- package/protocol/templates/slides.md +8 -4
- package/protocol/workflows/create-poster.md +4 -4
- package/protocol/workflows/create-slides.md +2 -2
- package/protocol/workflows/plan-section.md +3 -2
- package/protocol/workflows/research-gap.md +2 -2
- package/protocol/workflows/write-section.md +1 -1
- package/vendors/antigravity/.wtfp-generated.json +57 -53
- package/vendors/antigravity/actions/research-gap.json +1 -1
- package/vendors/antigravity/agents/wtfp-research-synthesizer.md +1 -1
- package/vendors/antigravity/commands/wtfp-add-todo.md +2 -2
- package/vendors/antigravity/commands/wtfp-analyze-bib.md +2 -2
- package/vendors/antigravity/commands/wtfp-audit-milestone.md +2 -2
- package/vendors/antigravity/commands/wtfp-check-refs.md +2 -2
- package/vendors/antigravity/commands/wtfp-check-todos.md +2 -2
- package/vendors/antigravity/commands/wtfp-checkpoint.md +2 -2
- package/vendors/antigravity/commands/wtfp-contribute.md +2 -2
- package/vendors/antigravity/commands/wtfp-create-outline.md +2 -2
- package/vendors/antigravity/commands/wtfp-create-poster.md +6 -6
- package/vendors/antigravity/commands/wtfp-create-slides.md +4 -4
- package/vendors/antigravity/commands/wtfp-discuss-section.md +2 -2
- package/vendors/antigravity/commands/wtfp-execute-outline.md +2 -2
- package/vendors/antigravity/commands/wtfp-export-latex.md +2 -2
- package/vendors/antigravity/commands/wtfp-help.md +2 -2
- package/vendors/antigravity/commands/wtfp-insert-section.md +2 -2
- package/vendors/antigravity/commands/wtfp-list-assumptions.md +2 -2
- package/vendors/antigravity/commands/wtfp-map-project.md +2 -2
- package/vendors/antigravity/commands/wtfp-new-paper.md +2 -2
- package/vendors/antigravity/commands/wtfp-pause-writing.md +2 -2
- package/vendors/antigravity/commands/wtfp-plan-milestone-gaps.md +2 -2
- package/vendors/antigravity/commands/wtfp-plan-revision.md +2 -2
- package/vendors/antigravity/commands/wtfp-plan-section.md +5 -4
- package/vendors/antigravity/commands/wtfp-polish-prose.md +2 -2
- package/vendors/antigravity/commands/wtfp-progress.md +2 -2
- package/vendors/antigravity/commands/wtfp-quick.md +2 -2
- package/vendors/antigravity/commands/wtfp-remove-section.md +2 -2
- package/vendors/antigravity/commands/wtfp-report-bug.md +2 -2
- package/vendors/antigravity/commands/wtfp-request-feature.md +2 -2
- package/vendors/antigravity/commands/wtfp-research-gap.md +2 -2
- package/vendors/antigravity/commands/wtfp-resume-writing.md +2 -2
- package/vendors/antigravity/commands/wtfp-review-section.md +2 -2
- package/vendors/antigravity/commands/wtfp-settings.md +2 -2
- package/vendors/antigravity/commands/wtfp-submit-milestone.md +2 -2
- package/vendors/antigravity/commands/wtfp-update.md +2 -2
- package/vendors/antigravity/commands/wtfp-verify-work.md +2 -2
- package/vendors/antigravity/commands/wtfp-write-section.md +3 -3
- package/vendors/antigravity/plugin.json +1 -1
- package/vendors/antigravity/roles/research-synthesizer.md +1 -1
- package/vendors/antigravity/skills/wtfp-deliver-research/references/actions.md +4 -4
- package/vendors/antigravity/skills/wtfp-plan-section/references/actions.md +1 -1
- package/vendors/antigravity/skills/wtfp-research-literature/references/actions.md +1 -1
- package/vendors/antigravity/skills/wtfp-write-section/references/actions.md +1 -1
- package/vendors/antigravity/templates/poster.md +124 -41
- package/vendors/antigravity/templates/slides.md +8 -4
- package/vendors/antigravity/tools/README.md +1 -1
- package/vendors/antigravity/tools/package.json +1 -0
- package/vendors/antigravity/workflows/create-poster.md +4 -4
- package/vendors/antigravity/workflows/create-slides.md +2 -2
- package/vendors/antigravity/workflows/plan-section.md +3 -2
- package/vendors/antigravity/workflows/research-gap.md +2 -2
- package/vendors/antigravity/workflows/write-section.md +1 -1
- package/vendors/claude/.claude-plugin/marketplace.json +2 -2
- package/vendors/claude/.claude-plugin/plugin.json +1 -1
- package/vendors/claude/.wtfp-generated.json +96 -92
- package/vendors/claude/actions/research-gap.json +1 -1
- package/vendors/claude/agents/wtfp-research-synthesizer.md +1 -1
- package/vendors/claude/ai.iowarp.clio/agents/wtfp-research-synthesizer.md +1 -1
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/add-todo.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/analyze-bib.md +4 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/audit-milestone.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/check-refs.md +4 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/check-todos.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/checkpoint.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/contribute.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/create-outline.md +4 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/create-poster.md +6 -6
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/create-slides.md +4 -4
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/discuss-section.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/execute-outline.md +4 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/export-latex.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/help.md +3 -3
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/insert-section.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/list-assumptions.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/map-project.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/new-paper.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/pause-writing.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/plan-milestone-gaps.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/plan-revision.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/plan-section.md +7 -4
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/polish-prose.md +4 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/progress.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/quick.md +4 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/remove-section.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/report-bug.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/request-feature.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/research-gap.md +10 -4
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/resume-writing.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/review-section.md +4 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/settings.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/submit-milestone.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/update.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/verify-work.md +2 -2
- package/vendors/claude/ai.iowarp.clio/prompts/wtfp/write-section.md +5 -3
- package/vendors/claude/commands/add-todo.md +2 -2
- package/vendors/claude/commands/analyze-bib.md +2 -2
- package/vendors/claude/commands/audit-milestone.md +2 -2
- package/vendors/claude/commands/check-refs.md +2 -2
- package/vendors/claude/commands/check-todos.md +2 -2
- package/vendors/claude/commands/checkpoint.md +2 -2
- package/vendors/claude/commands/contribute.md +2 -2
- package/vendors/claude/commands/create-outline.md +2 -2
- package/vendors/claude/commands/create-poster.md +6 -6
- package/vendors/claude/commands/create-slides.md +4 -4
- package/vendors/claude/commands/discuss-section.md +2 -2
- package/vendors/claude/commands/execute-outline.md +2 -2
- package/vendors/claude/commands/export-latex.md +2 -2
- package/vendors/claude/commands/help.md +2 -2
- package/vendors/claude/commands/insert-section.md +2 -2
- package/vendors/claude/commands/list-assumptions.md +2 -2
- package/vendors/claude/commands/map-project.md +2 -2
- package/vendors/claude/commands/new-paper.md +2 -2
- package/vendors/claude/commands/pause-writing.md +2 -2
- package/vendors/claude/commands/plan-milestone-gaps.md +2 -2
- package/vendors/claude/commands/plan-revision.md +2 -2
- package/vendors/claude/commands/plan-section.md +5 -4
- package/vendors/claude/commands/polish-prose.md +2 -2
- package/vendors/claude/commands/progress.md +2 -2
- package/vendors/claude/commands/quick.md +2 -2
- package/vendors/claude/commands/remove-section.md +2 -2
- package/vendors/claude/commands/report-bug.md +2 -2
- package/vendors/claude/commands/request-feature.md +2 -2
- package/vendors/claude/commands/research-gap.md +4 -4
- package/vendors/claude/commands/resume-writing.md +2 -2
- package/vendors/claude/commands/review-section.md +2 -2
- package/vendors/claude/commands/settings.md +2 -2
- package/vendors/claude/commands/submit-milestone.md +2 -2
- package/vendors/claude/commands/update.md +2 -2
- package/vendors/claude/commands/verify-work.md +2 -2
- package/vendors/claude/commands/write-section.md +3 -3
- package/vendors/claude/plugin.json +1 -1
- package/vendors/claude/roles/research-synthesizer.md +1 -1
- package/vendors/claude/skills/wtfp-deliver-research/references/actions.md +4 -4
- package/vendors/claude/skills/wtfp-plan-section/references/actions.md +1 -1
- package/vendors/claude/skills/wtfp-research-literature/references/actions.md +1 -1
- package/vendors/claude/skills/wtfp-write-section/references/actions.md +1 -1
- package/vendors/claude/templates/poster.md +124 -41
- package/vendors/claude/templates/slides.md +8 -4
- package/vendors/claude/tools/README.md +1 -1
- package/vendors/claude/tools/package.json +1 -0
- package/vendors/claude/workflows/create-poster.md +4 -4
- package/vendors/claude/workflows/create-slides.md +2 -2
- package/vendors/claude/workflows/plan-section.md +3 -2
- package/vendors/claude/workflows/research-gap.md +2 -2
- package/vendors/claude/workflows/write-section.md +1 -1
- package/vendors/codex/plugins/wtfp/.codex-plugin/plugin.json +1 -1
- package/vendors/codex/plugins/wtfp/.wtfp-generated.json +22 -18
- package/vendors/codex/plugins/wtfp/actions/research-gap.json +1 -1
- package/vendors/codex/plugins/wtfp/agents/wtfp-research-synthesizer.toml +1 -1
- package/vendors/codex/plugins/wtfp/plugin.json +1 -1
- package/vendors/codex/plugins/wtfp/roles/research-synthesizer.md +1 -1
- package/vendors/codex/plugins/wtfp/skills/wtfp-deliver-research/references/actions.md +4 -4
- package/vendors/codex/plugins/wtfp/skills/wtfp-plan-section/references/actions.md +1 -1
- package/vendors/codex/plugins/wtfp/skills/wtfp-research-literature/references/actions.md +1 -1
- package/vendors/codex/plugins/wtfp/skills/wtfp-write-section/references/actions.md +1 -1
- package/vendors/codex/plugins/wtfp/templates/poster.md +124 -41
- package/vendors/codex/plugins/wtfp/templates/slides.md +8 -4
- package/vendors/codex/plugins/wtfp/tools/README.md +1 -1
- package/vendors/codex/plugins/wtfp/tools/package.json +1 -0
- package/vendors/codex/plugins/wtfp/workflows/create-poster.md +4 -4
- package/vendors/codex/plugins/wtfp/workflows/create-slides.md +2 -2
- package/vendors/codex/plugins/wtfp/workflows/plan-section.md +3 -2
- package/vendors/codex/plugins/wtfp/workflows/research-gap.md +2 -2
- package/vendors/codex/plugins/wtfp/workflows/write-section.md +1 -1
- package/vendors/copilot/.wtfp-generated.json +56 -56
- package/vendors/copilot/marketplace.json +2 -2
- package/vendors/copilot/plugins/wtfp/.claude-plugin/plugin.json +1 -1
- package/vendors/copilot/plugins/wtfp/.wtfp-generated.json +57 -53
- package/vendors/copilot/plugins/wtfp/actions/research-gap.json +1 -1
- package/vendors/copilot/plugins/wtfp/agents/wtfp-research-synthesizer.md +1 -1
- package/vendors/copilot/plugins/wtfp/commands/wtfp-add-todo.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-analyze-bib.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-audit-milestone.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-check-refs.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-check-todos.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-checkpoint.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-contribute.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-create-outline.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-create-poster.md +6 -6
- package/vendors/copilot/plugins/wtfp/commands/wtfp-create-slides.md +4 -4
- package/vendors/copilot/plugins/wtfp/commands/wtfp-discuss-section.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-execute-outline.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-export-latex.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-help.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-insert-section.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-list-assumptions.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-map-project.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-new-paper.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-pause-writing.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-plan-milestone-gaps.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-plan-revision.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-plan-section.md +5 -4
- package/vendors/copilot/plugins/wtfp/commands/wtfp-polish-prose.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-progress.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-quick.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-remove-section.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-report-bug.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-request-feature.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-research-gap.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-resume-writing.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-review-section.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-settings.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-submit-milestone.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-update.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-verify-work.md +2 -2
- package/vendors/copilot/plugins/wtfp/commands/wtfp-write-section.md +3 -3
- package/vendors/copilot/plugins/wtfp/roles/research-synthesizer.md +1 -1
- package/vendors/copilot/plugins/wtfp/skills/wtfp-deliver-research/references/actions.md +4 -4
- package/vendors/copilot/plugins/wtfp/skills/wtfp-plan-section/references/actions.md +1 -1
- package/vendors/copilot/plugins/wtfp/skills/wtfp-research-literature/references/actions.md +1 -1
- package/vendors/copilot/plugins/wtfp/skills/wtfp-write-section/references/actions.md +1 -1
- package/vendors/copilot/plugins/wtfp/templates/poster.md +124 -41
- package/vendors/copilot/plugins/wtfp/templates/slides.md +8 -4
- package/vendors/copilot/plugins/wtfp/tools/README.md +1 -1
- package/vendors/copilot/plugins/wtfp/tools/package.json +1 -0
- package/vendors/copilot/plugins/wtfp/workflows/create-poster.md +4 -4
- package/vendors/copilot/plugins/wtfp/workflows/create-slides.md +2 -2
- package/vendors/copilot/plugins/wtfp/workflows/plan-section.md +3 -2
- package/vendors/copilot/plugins/wtfp/workflows/research-gap.md +2 -2
- package/vendors/copilot/plugins/wtfp/workflows/write-section.md +1 -1
- package/vendors/copilot/project/.github/agents/wtfp-research-synthesizer.agent.md +1 -1
- package/vendors/copilot/project/.github/prompts/wtfp-add-todo.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-analyze-bib.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-audit-milestone.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-check-refs.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-check-todos.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-checkpoint.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-contribute.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-create-outline.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-create-poster.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-create-slides.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-discuss-section.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-execute-outline.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-export-latex.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-help.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-insert-section.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-list-assumptions.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-map-project.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-new-paper.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-pause-writing.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-plan-milestone-gaps.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-plan-revision.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-plan-section.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-polish-prose.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-progress.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-quick.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-remove-section.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-report-bug.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-request-feature.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-research-gap.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-resume-writing.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-review-section.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-settings.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-submit-milestone.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-update.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-verify-work.prompt.md +2 -2
- package/vendors/copilot/project/.github/prompts/wtfp-write-section.prompt.md +2 -2
- package/vendors/copilot/project/.github/skills/wtfp-deliver-research/references/actions.md +4 -4
- package/vendors/copilot/project/.github/skills/wtfp-plan-section/references/actions.md +1 -1
- package/vendors/copilot/project/.github/skills/wtfp-research-literature/references/actions.md +1 -1
- package/vendors/copilot/project/.github/skills/wtfp-write-section/references/actions.md +1 -1
- package/vendors/copilot/project/.github/wtfp/actions/research-gap.json +1 -1
- package/vendors/copilot/project/.github/wtfp/roles/research-synthesizer.md +1 -1
- package/vendors/copilot/project/.github/wtfp/skills/wtfp-deliver-research/references/actions.md +4 -4
- package/vendors/copilot/project/.github/wtfp/skills/wtfp-plan-section/references/actions.md +1 -1
- package/vendors/copilot/project/.github/wtfp/skills/wtfp-research-literature/references/actions.md +1 -1
- package/vendors/copilot/project/.github/wtfp/skills/wtfp-write-section/references/actions.md +1 -1
- package/vendors/copilot/project/.github/wtfp/templates/poster.md +124 -41
- package/vendors/copilot/project/.github/wtfp/templates/slides.md +8 -4
- package/vendors/copilot/project/.github/wtfp/workflows/create-poster.md +4 -4
- package/vendors/copilot/project/.github/wtfp/workflows/create-slides.md +2 -2
- package/vendors/copilot/project/.github/wtfp/workflows/plan-section.md +3 -2
- package/vendors/copilot/project/.github/wtfp/workflows/research-gap.md +2 -2
- package/vendors/copilot/project/.github/wtfp/workflows/write-section.md +1 -1
- package/vendors/gemini/.wtfp-generated.json +57 -53
- package/vendors/gemini/actions/research-gap.json +1 -1
- package/vendors/gemini/agents/wtfp-research-synthesizer.md +1 -1
- package/vendors/gemini/commands/wtfp/add-todo.toml +1 -1
- package/vendors/gemini/commands/wtfp/analyze-bib.toml +1 -1
- package/vendors/gemini/commands/wtfp/audit-milestone.toml +1 -1
- package/vendors/gemini/commands/wtfp/check-refs.toml +1 -1
- package/vendors/gemini/commands/wtfp/check-todos.toml +1 -1
- package/vendors/gemini/commands/wtfp/checkpoint.toml +1 -1
- package/vendors/gemini/commands/wtfp/contribute.toml +1 -1
- package/vendors/gemini/commands/wtfp/create-outline.toml +1 -1
- package/vendors/gemini/commands/wtfp/create-poster.toml +133 -50
- package/vendors/gemini/commands/wtfp/create-slides.toml +15 -11
- package/vendors/gemini/commands/wtfp/discuss-section.toml +2 -2
- package/vendors/gemini/commands/wtfp/execute-outline.toml +2 -2
- package/vendors/gemini/commands/wtfp/export-latex.toml +1 -1
- package/vendors/gemini/commands/wtfp/help.toml +1 -1
- package/vendors/gemini/commands/wtfp/insert-section.toml +2 -2
- package/vendors/gemini/commands/wtfp/list-assumptions.toml +2 -2
- package/vendors/gemini/commands/wtfp/map-project.toml +1 -1
- package/vendors/gemini/commands/wtfp/new-paper.toml +1 -1
- package/vendors/gemini/commands/wtfp/pause-writing.toml +1 -1
- package/vendors/gemini/commands/wtfp/plan-milestone-gaps.toml +1 -1
- package/vendors/gemini/commands/wtfp/plan-revision.toml +2 -2
- package/vendors/gemini/commands/wtfp/plan-section.toml +5 -4
- package/vendors/gemini/commands/wtfp/polish-prose.toml +1 -1
- package/vendors/gemini/commands/wtfp/progress.toml +1 -1
- package/vendors/gemini/commands/wtfp/quick.toml +2 -2
- package/vendors/gemini/commands/wtfp/remove-section.toml +1 -1
- package/vendors/gemini/commands/wtfp/report-bug.toml +1 -1
- package/vendors/gemini/commands/wtfp/request-feature.toml +1 -1
- package/vendors/gemini/commands/wtfp/research-gap.toml +1 -1
- package/vendors/gemini/commands/wtfp/resume-writing.toml +1 -1
- package/vendors/gemini/commands/wtfp/review-section.toml +1 -1
- package/vendors/gemini/commands/wtfp/settings.toml +1 -1
- package/vendors/gemini/commands/wtfp/submit-milestone.toml +5 -5
- package/vendors/gemini/commands/wtfp/update.toml +1 -1
- package/vendors/gemini/commands/wtfp/verify-work.toml +1 -1
- package/vendors/gemini/commands/wtfp/write-section.toml +3 -3
- package/vendors/gemini/gemini-extension.json +1 -1
- package/vendors/gemini/roles/research-synthesizer.md +1 -1
- package/vendors/gemini/skills/wtfp-deliver-research/references/actions.md +4 -4
- package/vendors/gemini/skills/wtfp-plan-section/references/actions.md +1 -1
- package/vendors/gemini/skills/wtfp-research-literature/references/actions.md +1 -1
- package/vendors/gemini/skills/wtfp-write-section/references/actions.md +1 -1
- package/vendors/gemini/templates/poster.md +124 -41
- package/vendors/gemini/templates/slides.md +8 -4
- package/vendors/gemini/tools/README.md +1 -1
- package/vendors/gemini/tools/package.json +1 -0
- package/vendors/gemini/workflows/create-poster.md +4 -4
- package/vendors/gemini/workflows/create-slides.md +2 -2
- package/vendors/gemini/workflows/plan-section.md +3 -2
- package/vendors/gemini/workflows/research-gap.md +2 -2
- package/vendors/gemini/workflows/write-section.md +1 -1
- package/vendors/opencode/.wtfp-generated.json +56 -52
- package/vendors/opencode/actions/research-gap.json +1 -1
- package/vendors/opencode/agents/wtfp/research-synthesizer.md +1 -1
- package/vendors/opencode/commands/wtfp/add-todo.md +2 -2
- package/vendors/opencode/commands/wtfp/analyze-bib.md +2 -2
- package/vendors/opencode/commands/wtfp/audit-milestone.md +2 -2
- package/vendors/opencode/commands/wtfp/check-refs.md +2 -2
- package/vendors/opencode/commands/wtfp/check-todos.md +2 -2
- package/vendors/opencode/commands/wtfp/checkpoint.md +2 -2
- package/vendors/opencode/commands/wtfp/contribute.md +2 -2
- package/vendors/opencode/commands/wtfp/create-outline.md +2 -2
- package/vendors/opencode/commands/wtfp/create-poster.md +134 -51
- package/vendors/opencode/commands/wtfp/create-slides.md +16 -12
- package/vendors/opencode/commands/wtfp/discuss-section.md +3 -3
- package/vendors/opencode/commands/wtfp/execute-outline.md +3 -3
- package/vendors/opencode/commands/wtfp/export-latex.md +2 -2
- package/vendors/opencode/commands/wtfp/help.md +2 -2
- package/vendors/opencode/commands/wtfp/insert-section.md +3 -3
- package/vendors/opencode/commands/wtfp/list-assumptions.md +3 -3
- package/vendors/opencode/commands/wtfp/map-project.md +2 -2
- package/vendors/opencode/commands/wtfp/new-paper.md +2 -2
- package/vendors/opencode/commands/wtfp/pause-writing.md +2 -2
- package/vendors/opencode/commands/wtfp/plan-milestone-gaps.md +2 -2
- package/vendors/opencode/commands/wtfp/plan-revision.md +3 -3
- package/vendors/opencode/commands/wtfp/plan-section.md +6 -5
- package/vendors/opencode/commands/wtfp/polish-prose.md +2 -2
- package/vendors/opencode/commands/wtfp/progress.md +2 -2
- package/vendors/opencode/commands/wtfp/quick.md +3 -3
- package/vendors/opencode/commands/wtfp/remove-section.md +2 -2
- package/vendors/opencode/commands/wtfp/report-bug.md +2 -2
- package/vendors/opencode/commands/wtfp/request-feature.md +2 -2
- package/vendors/opencode/commands/wtfp/research-gap.md +2 -2
- package/vendors/opencode/commands/wtfp/resume-writing.md +2 -2
- package/vendors/opencode/commands/wtfp/review-section.md +2 -2
- package/vendors/opencode/commands/wtfp/settings.md +2 -2
- package/vendors/opencode/commands/wtfp/submit-milestone.md +6 -6
- package/vendors/opencode/commands/wtfp/update.md +2 -2
- package/vendors/opencode/commands/wtfp/verify-work.md +2 -2
- package/vendors/opencode/commands/wtfp/write-section.md +4 -4
- package/vendors/opencode/roles/research-synthesizer.md +1 -1
- package/vendors/opencode/skills/wtfp-deliver-research/references/actions.md +4 -4
- package/vendors/opencode/skills/wtfp-plan-section/references/actions.md +1 -1
- package/vendors/opencode/skills/wtfp-research-literature/references/actions.md +1 -1
- package/vendors/opencode/skills/wtfp-write-section/references/actions.md +1 -1
- package/vendors/opencode/templates/poster.md +124 -41
- package/vendors/opencode/templates/slides.md +8 -4
- package/vendors/opencode/tools/README.md +1 -1
- package/vendors/opencode/tools/package.json +1 -0
- package/vendors/opencode/workflows/create-poster.md +4 -4
- package/vendors/opencode/workflows/create-slides.md +2 -2
- package/vendors/opencode/workflows/plan-section.md +3 -2
- package/vendors/opencode/workflows/research-gap.md +2 -2
- package/vendors/opencode/workflows/write-section.md +1 -1
- package/vendors/plugin/.wtfp-generated.json +57 -53
- package/vendors/plugin/actions/research-gap.json +1 -1
- package/vendors/plugin/ai.iowarp.clio/agents/wtfp-research-synthesizer.md +1 -1
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/add-todo.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/analyze-bib.md +4 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/audit-milestone.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/check-refs.md +4 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/check-todos.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/checkpoint.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/contribute.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/create-outline.md +4 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/create-poster.md +6 -6
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/create-slides.md +4 -4
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/discuss-section.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/execute-outline.md +4 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/export-latex.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/help.md +3 -3
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/insert-section.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/list-assumptions.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/map-project.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/new-paper.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/pause-writing.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/plan-milestone-gaps.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/plan-revision.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/plan-section.md +7 -4
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/polish-prose.md +4 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/progress.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/quick.md +4 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/remove-section.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/report-bug.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/request-feature.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/research-gap.md +10 -4
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/resume-writing.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/review-section.md +4 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/settings.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/submit-milestone.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/update.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/verify-work.md +2 -2
- package/vendors/plugin/ai.iowarp.clio/prompts/wtfp/write-section.md +5 -3
- package/vendors/plugin/plugin.json +1 -1
- package/vendors/plugin/roles/research-synthesizer.md +1 -1
- package/vendors/plugin/skills/wtfp-deliver-research/references/actions.md +4 -4
- package/vendors/plugin/skills/wtfp-plan-section/references/actions.md +1 -1
- package/vendors/plugin/skills/wtfp-research-literature/references/actions.md +1 -1
- package/vendors/plugin/skills/wtfp-write-section/references/actions.md +1 -1
- package/vendors/plugin/templates/poster.md +124 -41
- package/vendors/plugin/templates/slides.md +8 -4
- package/vendors/plugin/tools/README.md +1 -1
- package/vendors/plugin/tools/package.json +1 -0
- package/vendors/plugin/workflows/create-poster.md +4 -4
- package/vendors/plugin/workflows/create-slides.md +2 -2
- package/vendors/plugin/workflows/plan-section.md +3 -2
- package/vendors/plugin/workflows/research-gap.md +2 -2
- package/vendors/plugin/workflows/write-section.md +1 -1
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ the scientific judgment. The agent keeps the bookkeeping and does bounded jobs.
|
|
|
19
19
|
|
|
20
20
|
It ships as one canonical [Agent Plugins 1.0.0](https://agent-plugins.org)
|
|
21
21
|
bundle that a deterministic compiler projects into a native package for seven
|
|
22
|
-
coding-agent hosts. Version `0.7.
|
|
22
|
+
coding-agent hosts. Version `0.7.4` is the current stable release and is
|
|
23
23
|
what npm `latest` resolves to; v0.5 remains installable by explicit version.
|
|
24
24
|
|
|
25
25
|
**Optional CiteNexus research backend (since 0.7.0):** `citation-search --backend=cite-nexus`
|
|
@@ -56,13 +56,13 @@ registers it with the host's native plugin lifecycle where one exists.
|
|
|
56
56
|
|
|
57
57
|
| Host | Install | Native registration the installer performs | Verified with |
|
|
58
58
|
| --- | --- | --- | --- |
|
|
59
|
-
| Clio Coder (0.4.7 or newer) | `npx --yes --package=wtf-p@0.7.
|
|
60
|
-
| Claude Code | `npx --yes --package=wtf-p@0.7.
|
|
61
|
-
| Codex | `npx --yes --package=wtf-p@0.7.
|
|
62
|
-
| GitHub Copilot CLI | `npx --yes --package=wtf-p@0.7.
|
|
63
|
-
| OpenCode | `npx --yes --package=wtf-p@0.7.
|
|
64
|
-
| Antigravity CLI | `npx --yes --package=wtf-p@0.7.
|
|
65
|
-
| Gemini CLI | `npx --yes --package=wtf-p@0.7.
|
|
59
|
+
| Clio Coder (0.4.7 or newer) | `npx --yes --package=wtf-p@0.7.4 -- wtf-p install clio` | `clio-coder library install <staged-bundle> --user`, then `clio-coder library inspect wtfp --user --json` | 0.4.9 (local build) |
|
|
60
|
+
| Claude Code | `npx --yes --package=wtf-p@0.7.4 -- wtf-p install claude` | `claude plugin marketplace add <root>/marketplaces/wtfp --scope user`, then `claude plugin install wtfp@wtfp --scope user -y` | 2.1.274 |
|
|
61
|
+
| Codex | `npx --yes --package=wtf-p@0.7.4 -- wtf-p install codex` | `codex plugin marketplace add <root>/marketplaces/wtfp`, then `codex plugin add wtfp@wtfp --json`; agents copied to `$CODEX_HOME/agents/` | 0.153.3 |
|
|
62
|
+
| GitHub Copilot CLI | `npx --yes --package=wtf-p@0.7.4 -- wtf-p install copilot` | `copilot plugin marketplace add <root>/marketplaces/wtfp`, then `copilot plugin install wtfp@wtfp` | 1.0.85 |
|
|
63
|
+
| OpenCode | `npx --yes --package=wtf-p@0.7.4 -- wtf-p install opencode` | Files under the OpenCode config root; OpenCode discovers them by directory | 1.18.31 |
|
|
64
|
+
| Antigravity CLI | `npx --yes --package=wtf-p@0.7.4 -- wtf-p install antigravity` | `agy plugin install <root>/sources/wtfp` | 1.2.5 |
|
|
65
|
+
| Gemini CLI | `npx --yes --package=wtf-p@0.7.4 -- wtf-p install gemini` | Files under `<root>/extensions/wtfp`; Gemini discovers the extension by directory | 0.60.0 |
|
|
66
66
|
|
|
67
67
|
"Verified" means native discovery in a disposable profile on this exact
|
|
68
68
|
envelope, with the commands recorded in
|
|
@@ -77,9 +77,9 @@ the old executable instead.
|
|
|
77
77
|
## Sixty-second start
|
|
78
78
|
|
|
79
79
|
```bash
|
|
80
|
-
npx --yes --package=wtf-p@0.7.
|
|
80
|
+
npx --yes --package=wtf-p@0.7.4 -- wtf-p install clio
|
|
81
81
|
cd /path/to/your-paper-or-proposal
|
|
82
|
-
clio-coder --autonomy
|
|
82
|
+
clio-coder --autonomy full-auto
|
|
83
83
|
```
|
|
84
84
|
|
|
85
85
|
```text
|
|
@@ -134,7 +134,11 @@ action returns `WTFP_ACTION_UNAVAILABLE` instead of improvising:
|
|
|
134
134
|
|
|
135
135
|
Where the research routes are available, `tool.execute` authorizes exactly one
|
|
136
136
|
command, the bundled `tools/wtfp-tool.js` dispatcher over seven bibliography
|
|
137
|
-
and citation tools.
|
|
137
|
+
and citation tools. On Clio full-auto, `research-gap` can search free no-key
|
|
138
|
+
public indexes through CiteNexus without another approval for each bounded
|
|
139
|
+
query. An operator-configured read-class CiteNexus MCP connection is preferred
|
|
140
|
+
when the Clio build supports it. Other network routes keep their author gate;
|
|
141
|
+
see [CiteNexus setup](docs/CITE_NEXUS.md).
|
|
138
142
|
|
|
139
143
|
## What it will not do
|
|
140
144
|
|
|
@@ -24,8 +24,11 @@ const {
|
|
|
24
24
|
atomicWriteFile,
|
|
25
25
|
createOwnedDirectory,
|
|
26
26
|
createTargetGuard,
|
|
27
|
+
isTrustedReceipt,
|
|
27
28
|
materializeTargetGuard,
|
|
28
29
|
readOwnedRegularSnapshot,
|
|
30
|
+
readReceipt,
|
|
31
|
+
relativeOwnedPath,
|
|
29
32
|
removeCreatedDirectories,
|
|
30
33
|
sha256Buffer
|
|
31
34
|
} = require('../lib/ownership');
|
|
@@ -221,8 +224,9 @@ async function installWithConflictResolution(files, pathPrefix, targetDir, optio
|
|
|
221
224
|
const c = out.colors;
|
|
222
225
|
let rl = null;
|
|
223
226
|
let globalChoice = null;
|
|
224
|
-
const stats = { installed: 0, skipped: 0, backed: 0 };
|
|
227
|
+
const stats = { installed: 0, skipped: 0, backed: 0, unchanged: 0 };
|
|
225
228
|
const plan = [];
|
|
229
|
+
const retained = [];
|
|
226
230
|
const targetGuard = options.targetGuard || createTargetGuard(targetDir);
|
|
227
231
|
|
|
228
232
|
assertTargetGuard(targetGuard);
|
|
@@ -230,9 +234,21 @@ async function installWithConflictResolution(files, pathPrefix, targetDir, optio
|
|
|
230
234
|
assertOwnedAbsolutePath(targetDir, file.dest, targetGuard);
|
|
231
235
|
}
|
|
232
236
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
237
|
+
// A trusted receipt proves which existing files this package wrote. A file
|
|
238
|
+
// whose bytes still match its receipt hash is unmodified package output, so
|
|
239
|
+
// an upgrade replaces it without treating it as an operator conflict.
|
|
240
|
+
const { receipt } = readReceipt(targetDir, targetGuard);
|
|
241
|
+
const ownedHashes = new Map();
|
|
242
|
+
if (isTrustedReceipt(receipt, targetDir, targetGuard)) {
|
|
243
|
+
for (const entry of receipt.files) ownedHashes.set(entry.path, entry.sha256);
|
|
244
|
+
}
|
|
245
|
+
const ownedUnmodified = (file, snapshot) => Boolean(snapshot) &&
|
|
246
|
+
ownedHashes.get(relativeOwnedPath(targetDir, file.dest, targetGuard)) === snapshot.sha256;
|
|
247
|
+
|
|
248
|
+
const existingFiles = files.filter(file => {
|
|
249
|
+
const snapshot = readOwnedRegularSnapshot(targetDir, file.dest, targetGuard, { allowMissing: true });
|
|
250
|
+
return Boolean(snapshot) && !ownedUnmodified(file, snapshot);
|
|
251
|
+
});
|
|
236
252
|
|
|
237
253
|
if (existingFiles.length > 0 && !hasForce && !hasBackupAll && isInteractive) {
|
|
238
254
|
const relPath = getPathLabel(targetDir, true);
|
|
@@ -275,8 +291,19 @@ async function installWithConflictResolution(files, pathPrefix, targetDir, optio
|
|
|
275
291
|
}
|
|
276
292
|
}
|
|
277
293
|
|
|
294
|
+
const source = readSourceSnapshot(file);
|
|
295
|
+
const processed = processContent(file.src, pathPrefix, source.bytes);
|
|
296
|
+
const content = processed === null ? source.bytes : Buffer.from(processed, 'utf8');
|
|
297
|
+
|
|
278
298
|
let choice = exists ? 'skip' : 'create';
|
|
279
|
-
if (exists && hasBackupAll) {
|
|
299
|
+
if (exists && !hasForce && !hasBackupAll && ownedUnmodified(file, existingSnapshot)) {
|
|
300
|
+
if (sha256Buffer(content) === existingSnapshot.sha256) {
|
|
301
|
+
stats.unchanged++;
|
|
302
|
+
retained.push({ dest: file.dest, componentId: file.componentId, action: 'retained', backupPath: null });
|
|
303
|
+
continue;
|
|
304
|
+
}
|
|
305
|
+
choice = 'overwrite';
|
|
306
|
+
} else if (exists && hasBackupAll) {
|
|
280
307
|
choice = 'backup';
|
|
281
308
|
} else if (exists && hasForce) {
|
|
282
309
|
choice = 'overwrite';
|
|
@@ -307,9 +334,6 @@ async function installWithConflictResolution(files, pathPrefix, targetDir, optio
|
|
|
307
334
|
continue;
|
|
308
335
|
}
|
|
309
336
|
|
|
310
|
-
const source = readSourceSnapshot(file);
|
|
311
|
-
const processed = processContent(file.src, pathPrefix, source.bytes);
|
|
312
|
-
const content = processed === null ? source.bytes : Buffer.from(processed, 'utf8');
|
|
313
337
|
plan.push({
|
|
314
338
|
...file,
|
|
315
339
|
exists,
|
|
@@ -563,7 +587,10 @@ async function installWithConflictResolution(files, pathPrefix, targetDir, optio
|
|
|
563
587
|
|
|
564
588
|
return {
|
|
565
589
|
...stats,
|
|
566
|
-
|
|
590
|
+
// Retained files already hold this version's bytes. They join the receipt
|
|
591
|
+
// at the new version only when the transaction wrote something, so a
|
|
592
|
+
// no-op reinstall leaves the receipt untouched.
|
|
593
|
+
writtenFiles: applied.length === 0 ? [] : [...applied.map(({
|
|
567
594
|
previousContent,
|
|
568
595
|
previousMode,
|
|
569
596
|
existed,
|
|
@@ -573,7 +600,7 @@ async function installWithConflictResolution(files, pathPrefix, targetDir, optio
|
|
|
573
600
|
backupHash,
|
|
574
601
|
backupIdentity,
|
|
575
602
|
...record
|
|
576
|
-
}) => record),
|
|
603
|
+
}) => record), ...retained],
|
|
577
604
|
rollback,
|
|
578
605
|
commit() {
|
|
579
606
|
rolledBack = true;
|
|
@@ -584,6 +584,8 @@ function inlineProtocolResources(workflowBody) {
|
|
|
584
584
|
return trailing.length === 0 ? body : `${body}\n\n${trailing.join('\n\n')}`;
|
|
585
585
|
}
|
|
586
586
|
|
|
587
|
+
// Action commands place this banner after the body. Hosts that title a session
|
|
588
|
+
// from the first text of an expanded command template would otherwise show it.
|
|
587
589
|
function generatedBanner(kind, id) {
|
|
588
590
|
return `<!-- Generated by WTF-P adapter compiler v${GENERATOR_VERSION} from ${kind}/${id}; do not edit. -->`;
|
|
589
591
|
}
|
|
@@ -603,6 +605,15 @@ function clioUserGateBody(action) {
|
|
|
603
605
|
].join('\n');
|
|
604
606
|
}
|
|
605
607
|
|
|
608
|
+
function clioResearchConnectionBody(action) {
|
|
609
|
+
if (action.id !== 'research-gap') return '';
|
|
610
|
+
return [
|
|
611
|
+
'## Clio CiteNexus binding',
|
|
612
|
+
'',
|
|
613
|
+
'In full-auto, the main agent first calls `gateway(op="find", query="cite-nexus")`. If a CiteNexus server is present and its tools are admitted as read-class through the operator\'s user configuration, call `gateway(op="describe", capability="<search-papers capability>")`, then `gateway(op="call", capability="<search-papers capability>", args={...})` with bounded public metadata queries. Use the capability name and argument schema returned by the gateway, not a guessed name. MCP connections are session-owned and unavailable in delegated workers, so pass the returned candidates and provenance to `wtfp-research-synthesizer` instead of asking that worker to discover the MCP server. This user-configured read connection is prior authorization for those searches; do not call `ask_user` again for each query. If no read-class CiteNexus connection is available and no gateway call has been refused, full-auto may instead run the bundled `citation-search --backend=cite-nexus` through its declared dispatcher with bounded public queries and an explicit `--providers` list containing only `crossref`, `datacite`, `europe_pmc`, or `arxiv`; pass those candidates to the same specialist. An operator-set offline flag, unavailable companion, or host refusal stops this route. Other providers and modes follow the declared user gate. Never bypass a gateway refusal by rerunning the same denied request through `bash`. Record the exact provider IDs, queries, limits, date, and provenance; verify each retained candidate before citing it.'
|
|
614
|
+
].join('\n');
|
|
615
|
+
}
|
|
616
|
+
|
|
606
617
|
// Workflow order for the operator-facing reference. Group membership comes from
|
|
607
618
|
// the catalog; only the reading order of the groups is fixed here.
|
|
608
619
|
const HELP_GROUP_ORDER = Object.freeze([
|
|
@@ -679,11 +690,11 @@ function clioHelpCard(model, availabilityById) {
|
|
|
679
690
|
'display-only: true',
|
|
680
691
|
'---',
|
|
681
692
|
'',
|
|
682
|
-
generatedBanner('protocol/actions', 'help'),
|
|
683
|
-
'',
|
|
684
693
|
'```text',
|
|
685
694
|
card,
|
|
686
695
|
'```',
|
|
696
|
+
'',
|
|
697
|
+
generatedBanner('protocol/actions', 'help'),
|
|
687
698
|
''
|
|
688
699
|
].join('\n');
|
|
689
700
|
}
|
|
@@ -699,7 +710,7 @@ function renderMarkdownCommand(action, workflowBody, target, availability) {
|
|
|
699
710
|
if (target === 'claude' || target === 'copilot' || target === 'antigravity') {
|
|
700
711
|
lines.push('allowed-tools: []');
|
|
701
712
|
}
|
|
702
|
-
lines.push('---', '',
|
|
713
|
+
lines.push('---', '', blockedActionBody(action, target, availability), '', generatedBanner('protocol/actions', action.id), '');
|
|
703
714
|
return lines.join('\n');
|
|
704
715
|
}
|
|
705
716
|
lines.push('argument-hint: "[arguments]"');
|
|
@@ -711,13 +722,14 @@ function renderMarkdownCommand(action, workflowBody, target, availability) {
|
|
|
711
722
|
}
|
|
712
723
|
}
|
|
713
724
|
const nativeBody = nativeCommandBody(action, workflowBody, target);
|
|
714
|
-
const
|
|
725
|
+
const clioRoles = action.delegation.map((entry) => `\`wtfp-${entry.role}\``).join(', ');
|
|
726
|
+
const userGateBody = target === 'clio' ? [clioUserGateBody(action), clioResearchConnectionBody(action), action.delegation.length ? `## Clio role-result binding\n\nDispatch the declared specialist roles using these exact Clio agent IDs: ${clioRoles}. Do not substitute generic coder or verifier agents. If a named agent is unavailable, report that blocker and stop instead of silently changing roles.\n\nRead the single wtfp.role-result entry in native validations/checks and parse its evidence string as portable role-result JSON. Validate its schema, role and action against the dispatched task. Missing, duplicate or malformed outcomes fail closed. On needs_input ask the author through ask_user and redispatch with the response; on blocked or failed stop and report the issue. Only completed permits downstream work, and it never substitutes for an author gate or artifact readback.` : ''].filter(Boolean).join('\n\n') : '';
|
|
715
727
|
lines.push(
|
|
716
728
|
'---',
|
|
717
729
|
'',
|
|
718
|
-
generatedBanner('protocol/actions', action.id),
|
|
719
|
-
'',
|
|
720
730
|
userGateBody ? `${nativeBody}\n\n${userGateBody}` : nativeBody,
|
|
731
|
+
'',
|
|
732
|
+
generatedBanner('protocol/actions', action.id),
|
|
721
733
|
''
|
|
722
734
|
);
|
|
723
735
|
return lines.join('\n');
|
|
@@ -732,8 +744,8 @@ function renderGeminiCommand(action, workflowBody, availability) {
|
|
|
732
744
|
`description = ${JSON.stringify(action.description)}`,
|
|
733
745
|
'',
|
|
734
746
|
"prompt = '''",
|
|
735
|
-
generatedBanner('protocol/actions', action.id),
|
|
736
747
|
body,
|
|
748
|
+
generatedBanner('protocol/actions', action.id),
|
|
737
749
|
"'''",
|
|
738
750
|
''
|
|
739
751
|
].join('\n');
|
|
@@ -766,9 +778,9 @@ function renderCopilotCloudPrompt(action, workflowBody, availability) {
|
|
|
766
778
|
lines.push(
|
|
767
779
|
'---',
|
|
768
780
|
'',
|
|
769
|
-
generatedBanner('protocol/actions', action.id),
|
|
770
|
-
'',
|
|
771
781
|
blockedActionBody(action, 'copilot-cloud', availability),
|
|
782
|
+
'',
|
|
783
|
+
generatedBanner('protocol/actions', action.id),
|
|
772
784
|
''
|
|
773
785
|
);
|
|
774
786
|
return lines.join('\n');
|
|
@@ -779,9 +791,9 @@ function renderCopilotCloudPrompt(action, workflowBody, availability) {
|
|
|
779
791
|
lines.push(
|
|
780
792
|
'---',
|
|
781
793
|
'',
|
|
782
|
-
generatedBanner('protocol/actions', action.id),
|
|
783
|
-
'',
|
|
784
794
|
nativeCommandBody(action, workflowBody, 'copilot-cloud'),
|
|
795
|
+
'',
|
|
796
|
+
generatedBanner('protocol/actions', action.id),
|
|
785
797
|
''
|
|
786
798
|
);
|
|
787
799
|
return lines.join('\n');
|
|
@@ -1699,6 +1711,7 @@ function addToolBundle(plan) {
|
|
|
1699
1711
|
rows.push(`- \`${tool.implementation}\` → \`${outputPath}\` (legacy module \`${tool.legacyName}.js\`)`);
|
|
1700
1712
|
}
|
|
1701
1713
|
addFile(plan, 'tools/wtfp-tool.js', toolDispatcher(byToolId, effectsByToolId));
|
|
1714
|
+
addFile(plan, 'tools/package.json', '{"type":"commonjs"}\n');
|
|
1702
1715
|
addFile(plan, 'tools/README.md', [
|
|
1703
1716
|
'# WTF-P bundled tools',
|
|
1704
1717
|
'',
|
|
@@ -1721,7 +1734,7 @@ function addToolBundle(plan) {
|
|
|
1721
1734
|
'',
|
|
1722
1735
|
...TOOL_COMMANDS.map((entry) => `- \`${entry.usage}\` → \`${entry.tool}\` (${effectsByToolId.get(entry.tool).length > 0 ? effectsByToolId.get(entry.tool).join(', ') : 'no declared effects'})`),
|
|
1723
1736
|
'',
|
|
1724
|
-
'For
|
|
1737
|
+
'For declared scholarly discovery, `citation-search --backend=cite-nexus --query="<topic>"` uses the separately installed `cite-nexus-wtfp` companion and its real MCP stdio server. Defaults are Crossref, DataCite and Europe PMC. Select providers explicitly with `--providers`. The `research-gap` full-auto route may use only free no-key public indexes (`crossref`, `datacite`, `europe_pmc`, `arxiv`) without another per-query gate; other routes require action approval naming providers and query scope. CiteNexus supports only balanced provider ordering, so omit `--intent` or use `--intent=balanced`. Results remain candidates: retain `citeNexus.sources`, field attribution, metrics, warnings and `metadata.errors`; do not infer verification or combine citation counts. The result limit is a displayed total; `metadata.total` counts the fetched deduplicated page, not the full corpus. Unavailable enrichment fails explicitly without falling back to another vendor. `WTFP_CITE_NEXUS_COMMAND` may name an absolute installed companion executable; it is operator configuration, never source content. No package is installed, server registered, or user profile changed by a tool call. Offline mode refuses this backend before process launch. Host capability blockers still apply.',
|
|
1725
1738
|
'',
|
|
1726
1739
|
'Every command prints one JSON document on stdout and reports failures as `{"error": "..."}` on stderr with exit status 1. Queries are capped at 512 characters, file paths at 4096, and result limits at 25. A symlinked file is accepted and read through its resolved target, which must be a regular file. Commands whose effects include `network.*` perform outbound requests to the declared scholarly indexes; pass `--offline` or set `WTFP_TOOL_OFFLINE=1` to refuse them, which is the mechanical form of "do not invoke a network-capable bibliography tool through a filesystem-only permission path". Each network command has a hard wall clock, `--timeout=<seconds>` (default 20, maximum 600); on expiry it reports `{"error": "<command> timed out after N s"}` on stderr and exits 124. `bib-impact` reports batch progress on stderr. `bib-index` flags repeated keys with `duplicate: true` and lists them under `duplicates`; `--key` refuses an ambiguous key. `bib-format` emits a standard BibTeX entry (`@article`, `@inproceedings`, ...) by default; `--style=al-folio` selects the Jekyll al-folio projection, which is not valid BibTeX. Do not execute any other module in this package directly, and do not pass a logical `project://` or `wtfp://` URI as a shell argument.',
|
|
1727
1740
|
''
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wtf-p",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.4",
|
|
4
4
|
"description": "Portable, evidence-grounded academic writing workflows (papers, proposals, posters, presentations) for Clio Coder, Claude Code, Codex, GitHub Copilot CLI, OpenCode, Antigravity CLI, and Gemini CLI.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"wtfp": "bin/install.js",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
98
|
"id": "user.gate",
|
|
99
|
-
"scope": "
|
|
99
|
+
"scope": "unapproved or paid external providers and bounded query set, plus author-owned research scope and depth decisions"
|
|
100
100
|
}
|
|
101
101
|
]
|
|
102
102
|
}
|
|
@@ -42,7 +42,7 @@ Investigate the literature needed to plan and write a specific section well. The
|
|
|
42
42
|
## Boundaries
|
|
43
43
|
|
|
44
44
|
- This is a `mutation-report` role. It may write only the research and suggestion artifacts authorized by the invoking action.
|
|
45
|
-
-
|
|
45
|
+
- An operator-configured, trusted read-only CiteNexus MCP connection may search bounded public scholarly metadata without a second per-query gate. In an explicitly selected full-auto host session for this research action, `citation-search --backend=cite-nexus` may also search `crossref`, `datacite`, `europe_pmc`, or `arxiv` without another gate. Other providers or modes require explicit network approval naming providers and query bounds. Honor offline flags and host refusals. Returned results stay candidates, and this role never performs a bibliography write.
|
|
46
46
|
- Never fabricate a citation, identifier, quotation, metadata field, source conclusion, or claim of exhaustive coverage.
|
|
47
47
|
- Never overwrite an existing `project://sources/{source}` record. Additions remain provisional until identity and provenance are verified by an authorized action.
|
|
48
48
|
- Do not explore alternatives that author decisions explicitly deferred or rejected.
|
|
@@ -52,7 +52,7 @@ Contract: [protocol/actions/create-slides.json](../../../actions/create-slides.j
|
|
|
52
52
|
1. Require project identity and enough manuscript or verified results to support a presentation.
|
|
53
53
|
2. Ask for duration, expected slide count, audience, occasion, delivery format, visual style, and desired emphasis.
|
|
54
54
|
3. Derive a timed narrative: audience problem, thesis, minimum background, method, strongest evidence, limitations, implications, and closing takeaway. Allocate time and slides before writing.
|
|
55
|
-
4. Use verified project claims and cite source or manuscript locations in speaker notes or a references slide. Do not introduce novel results to make the story cleaner.
|
|
55
|
+
4. Use verified project claims and cite source or manuscript locations in speaker notes or a references slide. Do not introduce novel results to make the story cleaner. Refuse any claim without a ledger row, never invent speaker or venue metadata, and derive diagrams only from named source files or documents with stated paths.
|
|
56
56
|
5. Prefer one communicative purpose per slide. Use concise text, readable type, high contrast, descriptive titles, accessible color, and alt text or equivalent descriptions for meaningful visuals.
|
|
57
57
|
6. Use existing figures only when provenance and interpretation are known. Mark placeholders and data needs explicitly; never fabricate a chart.
|
|
58
58
|
7. Generate editable slide source and a delivery manifest under `project://deliverables/slides/{artifact}`.
|
|
@@ -65,11 +65,11 @@ Completion requires an audience-appropriate editable deck with an honest render
|
|
|
65
65
|
|
|
66
66
|
Contract: [protocol/actions/create-poster.json](../../../actions/create-poster.json)
|
|
67
67
|
|
|
68
|
-
1. Require project identity and verified manuscript findings. Ask for dimensions, orientation, venue rules, audience viewing distance, title, authors, affiliations, contact details, output format, and available visuals.
|
|
68
|
+
1. Require project identity and verified manuscript findings. Ask for dimensions, orientation, venue rules, audience viewing distance, title, authors, affiliations, contact details, output format, and available visuals. Never invent missing metadata; leave a visible placeholder and report it.
|
|
69
69
|
2. Define a non-linear reading hierarchy: one-sentence takeaway, motivation, minimal method, principal evidence, limitations, conclusion, and contact or artifact link.
|
|
70
70
|
3. Budget physical space before writing. Prioritize the title, takeaway, and strongest figure; avoid shrinking prose to preserve excess content.
|
|
71
|
-
4. Use verified claims, values, citations, and figures. Record provenance and include accessible descriptions. Mark missing visuals as placeholders rather than generating false evidence.
|
|
72
|
-
5. Generate editable poster source and a delivery manifest under `project://deliverables/poster/{artifact}`.
|
|
71
|
+
4. Use verified claims, values, citations, and figures, recorded in the claim ledger from `protocol://templates/poster.md`; refuse any statement without a source record, manuscript passage, or named project file. Derive diagrams only from named source files or documents and state their paths. Record provenance and include accessible descriptions. Mark missing visuals as placeholders rather than generating false evidence.
|
|
72
|
+
5. Generate editable, laid-out poster source (the template's HTML grid or the venue's mandated template) and a delivery manifest with the claim ledger under `project://deliverables/poster/{artifact}`.
|
|
73
73
|
6. Check dimensions, orientation, margins, font sizes at final scale, column flow, contrast, image resolution, citation legibility, link or code targets, and overflow.
|
|
74
74
|
7. Render only when requested and a configured host-provided local renderer exists; invoke it under the action's declared `tool.execute` effect and verify the actual artifact dimensions. Distinguish source validity from render success.
|
|
75
75
|
8. Report source and rendered paths, validation results, print-service considerations, and unresolved manual steps.
|
|
@@ -46,7 +46,7 @@ Contract: [protocol/actions/plan-section.json](../../../actions/plan-section.jso
|
|
|
46
46
|
2. Read the complete planning context before decomposing work: manifest, config, state, decisions, outline, section record, context, research, source/evidence records, relevant prior summaries, and the bounded `project://validations/*` collection.
|
|
47
47
|
3. Before any specialist dispatch, filter the validation records to candidates whose `subject_uri` is exactly `project://structure/outline` and whose `action_id` is exactly `create-outline`. A candidate is current only when `executed_at >= outline.updated_at`. Because the v1 validation schema carries no outline revision or content hash, disclose that this timestamp test is a conservative freshness proxy.
|
|
48
48
|
4. Require exactly one current candidate and require its `status` to be `passed`. Separately verify that the current outline and target section are consistent with all current locked and deferred author choices: honor locked choices and do not treat deferred choices as resolved. A missing, stale, ambiguous, or non-passing candidate, or a decision contradiction, blocks all specialist dispatch and every plan, section, state, or validation write. Only a recovery checkpoint may be proposed on this blocked path, and it may be written only after a complete record preview and explicit author approval.
|
|
49
|
-
5. If the section is literature-heavy
|
|
49
|
+
5. If the section is literature-heavy, require a section-specific research artifact and resolvable source/evidence records for its planned claims before dispatch or approval. Run `research-gap` with the configured CiteNexus backend when available; if coverage remains insufficient, record a research checkpoint and stop. Search candidates alone are not verified citations. Do not manufacture citations to keep planning moving.
|
|
50
50
|
6. Summarize the section goal, claims, evidence, manuscript artifact, dependencies, and open decisions at `config.gates.confirm_plan`.
|
|
51
51
|
7. After the prerequisites pass, require `section-planner` in a bounded delegated pass to create one or more immutable Markdown `project://sections/{section}/plans/{plan}` artifacts. Each plan must declare:
|
|
52
52
|
- stable section and plan identifiers;
|
|
@@ -14,7 +14,7 @@ Contract: [protocol/actions/research-gap.json](../../../actions/research-gap.jso
|
|
|
14
14
|
- `standard`: run a focused, reproducible search across the most relevant categories;
|
|
15
15
|
- `deep`: map foundational, recent, competing, gap-defining, and methodological work, including important disagreements and intellectual lineage.
|
|
16
16
|
5. Form search questions and inclusion criteria before searching. Record databases or corpora, query strings, date, filters, and stopping rule.
|
|
17
|
-
6. Search authoritative scholarly sources
|
|
17
|
+
6. Search authoritative scholarly sources with bounded queries. Two routes need no second per-query author gate: a host connection the operator already configured and authorized for read-only public scholarly metadata search, or the bundled CiteNexus dispatcher in a host session explicitly set to full-auto for this research action when every selected provider is a free, no-key public index (`crossref`, `datacite`, `europe_pmc`, or `arxiv`). Record provider IDs, query strings, date, and result limits in the research artifact. Do not send unpublished manuscript text, private notes, or credentials as search terms. Outside those routes, first disclose the providers and bounded query set and obtain explicit author approval. The dispatcher runs only `citation-search --backend=cite-nexus` with an explicit `--providers` list; honor an operator-set offline flag or any host refusal. Returned results stay candidates, and this action performs no bibliography write. Deduplicate candidates by persistent identifier, then normalized title.
|
|
18
18
|
7. Verify each retained source from its primary record or publication. Create a `project://sources/{source}` record with title, creators, year, source kind, identifiers, citation key, status, provenance, inspection depth, and verification time.
|
|
19
19
|
8. Read enough of each source to distinguish its actual claim, method, population, result, and limitation. Do not cite an abstract-only impression as full-paper evidence.
|
|
20
20
|
9. Create `project://evidence/{evidence}` separately for each retained claim-level interpretation, with relation, locator, limitations, confidence, and inspection depth. Synthesize by question rather than listing papers; identify consensus, disagreement, methodological differences, missing evidence, and defensible positioning.
|
|
@@ -8,7 +8,7 @@ Contract: [protocol/actions/write-section.json](../../../actions/write-section.j
|
|
|
8
8
|
|
|
9
9
|
1. Require an exact `project://sections/{section}/plans/{plan}` artifact linked from `project://sections/{section}` and verify its declared inputs, outputs, dependencies, validation, and approval state.
|
|
10
10
|
2. If a corresponding summary or manuscript output exists, show the overwrite or merge impact and require explicit re-execution approval.
|
|
11
|
-
3. Read the plan, `project://manifest`, `project://state`, `project://decisions`, `project://structure/outline`, section context and research, relevant source/evidence records, and enough neighboring prose to maintain continuity.
|
|
11
|
+
3. Read the plan, `project://manifest`, `project://state`, `project://decisions`, `project://structure/outline`, section context and research, relevant source/evidence records, and enough neighboring prose to maintain continuity. For a literature-heavy section, require research and verified source/evidence coverage of the plan's factual claims before drafting. Route missing coverage through `research-gap` and a checkpoint; do not substitute model memory or search candidates for source records.
|
|
12
12
|
4. Present the plan objective, output path, target words, evidence obligations, and checkpoints at the configured writing gate.
|
|
13
13
|
5. Execute tasks in order against the exact `project://paper/{artifact}` output. For each task:
|
|
14
14
|
- establish the paragraph or subsection's rhetorical job;
|
|
@@ -2,65 +2,148 @@
|
|
|
2
2
|
|
|
3
3
|
Source structure for `project://deliverables/poster/{artifact}`. A poster is a standing argument read at two distances: the title and headline claim from three metres, the panels from one. It is not a slide deck and not a compressed paper.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
The deliverable is a laid-out page, not a text outline. Write it as one self-contained HTML file (for example `project://deliverables/poster/poster.html`) using the skeleton below, which fixes the page size, grid, hierarchy, palette, and type scale in CSS. The author opens it in any browser to see the layout and prints it to PDF at the page size. If the venue mandates a LaTeX or PowerPoint template, use that template instead and carry over the same grid, hierarchy, and type scale. WTF-P writes poster source only; it declares no rendering effect and runs no renderer. If the author wants a rendered PDF, hand back the exact command or print step for their own toolchain.
|
|
6
|
+
|
|
7
|
+
Follow this scaffold literally. Replace every bracketed placeholder from the manuscript and its evidence records, and delete any panel the work does not support rather than filling it.
|
|
6
8
|
|
|
7
9
|
## Confirm before writing
|
|
8
10
|
|
|
9
|
-
Dimensions and orientation, the venue's template or branding requirement, the session audience, the single claim the poster must land,
|
|
11
|
+
Dimensions and orientation, the venue's template or branding requirement, the session audience, the single claim the poster must land, which figures already exist as artifacts, and the exact author names, affiliations, contact, funding, and venue line. Ask for any of these the manifest does not record.
|
|
12
|
+
|
|
13
|
+
## Evidence gate
|
|
14
|
+
|
|
15
|
+
Complete this gate before writing any poster text, and repeat it on the finished file.
|
|
16
|
+
|
|
17
|
+
1. Build a claim ledger: one row per claim, number, comparison, or figure the poster will carry, each naming its support as a manuscript passage, a `project://sources/{source}` record, a `project://evidence/{evidence}` record, or a named project file path.
|
|
18
|
+
2. Refuse any row without support. Do not rephrase it into a softer claim; cut it. Statements about other systems, tools, or prior work (for example how another framework divides responsibilities) need a cited source record, never general knowledge.
|
|
19
|
+
3. Never invent author names, affiliations, emails, funding, grant numbers, venue, or dates. When the manifest or the author does not supply one, leave a visible placeholder such as `[AFFILIATION NEEDED]` in the poster and list it under unresolved items in the report.
|
|
20
|
+
4. Keep the ledger in the delivery manifest next to the poster so a reviewer can check every row.
|
|
21
|
+
|
|
22
|
+
## Diagram provenance
|
|
23
|
+
|
|
24
|
+
Every diagram is evidence, not decoration.
|
|
10
25
|
|
|
11
|
-
|
|
26
|
+
- Reuse an existing manuscript figure when one exists, and cite its path.
|
|
27
|
+
- When the subject is software, derive architecture and flow diagrams only from named source files or documentation in the project the author pointed to. Read those files first. Every box and arrow must correspond to a module, component, call, or data path that exists in them.
|
|
28
|
+
- State the source paths under each diagram, for example `Source: src/router/dispatch.ts, docs/ARCHITECTURE.md`.
|
|
29
|
+
- Draw diagrams as inline SVG or Mermaid source so they stay editable. If no grounded source exists, leave a labeled placeholder box stating which files are needed; never draw an invented architecture.
|
|
12
30
|
|
|
13
|
-
|
|
31
|
+
## Layout and design
|
|
32
|
+
|
|
33
|
+
| Element | Rule |
|
|
34
|
+
| --- | --- |
|
|
35
|
+
| Page | Confirmed size; default 48 × 36 in landscape (A0 841 × 1189 mm portrait is the common alternative) |
|
|
36
|
+
| Margins and gutters | 1 in outer margin, 0.75 in gutter between columns |
|
|
37
|
+
| Grid | Landscape uses three columns; portrait uses two. Results may span two columns |
|
|
38
|
+
| Reading order | Title band across the full width, headline claim band beneath it, then panels top to bottom within each column, left to right |
|
|
39
|
+
| Hierarchy | Title 90 to 110 pt bold, headline claim 54 to 60 pt, panel headings 40 to 48 pt, body 26 to 32 pt, captions and references 20 to 24 pt |
|
|
40
|
+
| Palette | One dark ink, one light ground, one primary accent for headings and the claim band, one secondary accent for highlights in figures. Text contrast of at least 4.5:1. Use venue or institution colours only when the author supplies them |
|
|
41
|
+
| Figures | The strongest result figure is the largest element after the title. Each figure carries a one-line reading and its source path |
|
|
42
|
+
| Density | 400 to 800 words total. If a panel exceeds its budget, the content belongs in the paper, not the poster |
|
|
14
43
|
|
|
15
44
|
| Panel | Words | Purpose |
|
|
16
45
|
| --- | --- | --- |
|
|
17
|
-
| Title
|
|
46
|
+
| Title band | 25 | Title, authors, affiliations, contact or code link |
|
|
18
47
|
| Headline claim | 30 | The finding, stated as a sentence a reader can repeat |
|
|
19
48
|
| Motivation | 80 | The problem and why the audience should care |
|
|
20
|
-
| Approach | 120 | What was built or done, with one diagram |
|
|
49
|
+
| Approach | 120 | What was built or done, with one grounded diagram |
|
|
21
50
|
| Results | 150 | Two or three figures, each with a one-line reading |
|
|
22
51
|
| What it means | 80 | The consequence, and the boundary of the claim |
|
|
23
52
|
| References and provenance | 60 | Cited sources, funding, and artifact links |
|
|
24
53
|
|
|
25
54
|
---
|
|
26
55
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
[
|
|
56
|
+
```html
|
|
57
|
+
<!doctype html>
|
|
58
|
+
<html lang="en">
|
|
59
|
+
<head>
|
|
60
|
+
<meta charset="utf-8">
|
|
61
|
+
<title>[Poster title]</title>
|
|
62
|
+
<style>
|
|
63
|
+
@page { size: 48in 36in; margin: 0; }
|
|
64
|
+
:root {
|
|
65
|
+
--ink: #1b1f24; --ground: #fbfaf7; --accent: #1f4e79; --highlight: #c8553d; --muted: #5a6270;
|
|
66
|
+
--margin: 1in; --gutter: 0.75in;
|
|
67
|
+
}
|
|
68
|
+
* { box-sizing: border-box; }
|
|
69
|
+
html, body { margin: 0; background: var(--ground); color: var(--ink); }
|
|
70
|
+
body { width: 48in; height: 36in; padding: var(--margin); font: 28pt/1.35 "Source Sans 3", "Helvetica Neue", Arial, sans-serif;
|
|
71
|
+
display: grid; grid-template-rows: auto auto 1fr auto; gap: var(--gutter); }
|
|
72
|
+
header h1 { font-size: 100pt; line-height: 1.05; margin: 0 0 0.2in; }
|
|
73
|
+
header .byline { font-size: 34pt; color: var(--muted); }
|
|
74
|
+
.claim { background: var(--accent); color: var(--ground); font-size: 56pt; font-weight: 600; padding: 0.4in 0.6in; }
|
|
75
|
+
main { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gutter); align-items: start; }
|
|
76
|
+
section h2 { font-size: 44pt; color: var(--accent); border-bottom: 4pt solid var(--accent); margin: 0 0 0.25in; }
|
|
77
|
+
section + section { margin-top: var(--gutter); }
|
|
78
|
+
.span-2 { grid-column: span 2; }
|
|
79
|
+
figure { margin: 0.2in 0; }
|
|
80
|
+
figure img, figure svg { width: 100%; height: auto; }
|
|
81
|
+
figcaption, .source { font-size: 22pt; color: var(--muted); }
|
|
82
|
+
footer { font-size: 22pt; color: var(--muted); display: flex; justify-content: space-between; gap: var(--gutter); }
|
|
83
|
+
.placeholder { outline: 4pt dashed var(--highlight); padding: 0.3in; color: var(--highlight); }
|
|
84
|
+
</style>
|
|
85
|
+
</head>
|
|
86
|
+
<body>
|
|
87
|
+
<header>
|
|
88
|
+
<h1>[Title: the claim, not the topic]</h1>
|
|
89
|
+
<div class="byline">[Author names from manifest or AUTHORS NEEDED] · [Affiliations or AFFILIATION NEEDED] · [contact or repository link]</div>
|
|
90
|
+
</header>
|
|
91
|
+
|
|
92
|
+
<div class="claim">[Headline claim in one sentence, backed by a ledger row]</div>
|
|
93
|
+
|
|
94
|
+
<main>
|
|
95
|
+
<div class="column">
|
|
96
|
+
<section>
|
|
97
|
+
<h2>Why this matters</h2>
|
|
98
|
+
<ul>
|
|
99
|
+
<li>[Problem, in the audience's terms]</li>
|
|
100
|
+
<li>[What breaks today, with the number that shows it and its source]</li>
|
|
101
|
+
</ul>
|
|
102
|
+
</section>
|
|
103
|
+
<section>
|
|
104
|
+
<h2>What we did</h2>
|
|
105
|
+
<p>[Approach in one sentence]</p>
|
|
106
|
+
<figure>
|
|
107
|
+
[Inline SVG or Mermaid diagram derived from the named files, or a .placeholder box naming the files needed]
|
|
108
|
+
<figcaption>[What the diagram shows] <span class="source">Source: [paths]</span></figcaption>
|
|
109
|
+
</figure>
|
|
110
|
+
</section>
|
|
111
|
+
</div>
|
|
112
|
+
|
|
113
|
+
<div class="column span-2">
|
|
114
|
+
<section>
|
|
115
|
+
<h2>What we found</h2>
|
|
116
|
+
<figure>
|
|
117
|
+
<img src="[figure path inside the project]" alt="[accessible description]">
|
|
118
|
+
<figcaption>[One-line reading of the primary figure, with the measured value] <span class="source">Source: [path or record]</span></figcaption>
|
|
119
|
+
</figure>
|
|
120
|
+
<ul>
|
|
121
|
+
<li>[Second result, with its condition]</li>
|
|
122
|
+
<li>[What the result does not show]</li>
|
|
123
|
+
</ul>
|
|
124
|
+
</section>
|
|
125
|
+
<section>
|
|
126
|
+
<h2>What it means</h2>
|
|
127
|
+
<ul>
|
|
128
|
+
<li>[Consequence for the audience]</li>
|
|
129
|
+
<li>[Stated limitation]</li>
|
|
130
|
+
</ul>
|
|
131
|
+
</section>
|
|
132
|
+
</div>
|
|
133
|
+
</main>
|
|
134
|
+
|
|
135
|
+
<footer>
|
|
136
|
+
<div>[References: only sources with a project://sources/{source} record]</div>
|
|
137
|
+
<div>[Funding acknowledgement or FUNDING NEEDED] · [artifact or data links]</div>
|
|
138
|
+
</footer>
|
|
139
|
+
</body>
|
|
140
|
+
</html>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
For portrait pages, change `@page` and the `body` size to the confirmed dimensions, set `main` to `repeat(2, 1fr)`, and drop the `span-2` class.
|
|
61
144
|
|
|
62
145
|
---
|
|
63
146
|
|
|
64
147
|
## Attribution rules
|
|
65
148
|
|
|
66
|
-
Every number, figure, and claim on the poster must trace to a
|
|
149
|
+
Every number, figure, and claim on the poster must trace to a row in the claim ledger. Carry the source attribution onto the poster itself for any figure reused from another work. Do not introduce a claim, a number, a citation, or a piece of author metadata that appears nowhere in the project's records or the author's answers.
|
|
@@ -6,7 +6,11 @@ Copy the body below, replace every bracketed placeholder from the manuscript and
|
|
|
6
6
|
|
|
7
7
|
## Confirm before writing
|
|
8
8
|
|
|
9
|
-
Talk length, audience, venue format, whether questions are inside or outside the slot,
|
|
9
|
+
Talk length, audience, venue format, whether questions are inside or outside the slot, the single thing the audience should remember, and the exact speaker name, affiliation, and venue line. Ask for any of these the manifest does not record.
|
|
10
|
+
|
|
11
|
+
## Evidence gate
|
|
12
|
+
|
|
13
|
+
Before writing, build a claim ledger with one row per claim, number, comparison, or figure, each naming its support as a manuscript passage, a `project://sources/{source}` record, a `project://evidence/{evidence}` record, or a named project file path. Cut any row without support; statements about other systems or prior work need a cited source record, never general knowledge. Never invent speaker names, affiliations, emails, funding, venue, or dates; leave a visible placeholder such as `[AFFILIATION NEEDED]` and report it as unresolved. When the subject is software, derive every diagram from named source files or documentation, state those paths on the slide, and leave a labeled placeholder rather than an invented architecture.
|
|
10
14
|
|
|
11
15
|
## Budgets
|
|
12
16
|
|
|
@@ -25,7 +29,7 @@ Backup slides sit after the closing slide and answer the questions the work invi
|
|
|
25
29
|
|
|
26
30
|
## [Title slide]
|
|
27
31
|
|
|
28
|
-
[Title] · [Speaker] · [Affiliation] · [Venue and date]
|
|
32
|
+
[Title] · [Speaker or SPEAKER NEEDED] · [Affiliation or AFFILIATION NEEDED] · [Venue and date or VENUE NEEDED]
|
|
29
33
|
|
|
30
34
|
## [The problem, in one image or one sentence]
|
|
31
35
|
|
|
@@ -42,7 +46,7 @@ Backup slides sit after the closing slide and answer the questions the work invi
|
|
|
42
46
|
|
|
43
47
|
## [Approach]
|
|
44
48
|
|
|
45
|
-
[One diagram. Speaker note: walk it left to right; do not read the labels aloud.]
|
|
49
|
+
[One diagram derived from named source files or documents. Source: [paths]. Speaker note: walk it left to right; do not read the labels aloud.]
|
|
46
50
|
|
|
47
51
|
## [Key design decision]
|
|
48
52
|
|
|
@@ -80,4 +84,4 @@ Backup slides sit after the closing slide and answer the questions the work invi
|
|
|
80
84
|
|
|
81
85
|
## Attribution rules
|
|
82
86
|
|
|
83
|
-
Every number and
|
|
87
|
+
Every number, figure, and claim must trace to a row in the claim ledger. Reused figures carry their original attribution on the slide. Speaker notes are part of the deliverable and follow the same evidence rule as the slides: do not put a claim in a note that the records do not support.
|