drawspec 0.3.2__tar.gz → 0.4.0__tar.gz
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.
- {drawspec-0.3.2 → drawspec-0.4.0}/AGENTS.md +3 -2
- {drawspec-0.3.2 → drawspec-0.4.0}/CHANGELOG.md +56 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/PKG-INFO +10 -5
- {drawspec-0.3.2 → drawspec-0.4.0}/README.md +9 -4
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/cli.md +4 -2
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/format.md +19 -2
- drawspec-0.4.0/docs/gallery/entities-star.svg +1 -0
- drawspec-0.4.0/docs/gallery/gantt-life-cycles.svg +1 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/gantt-migration.svg +1 -1
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/gantt-progress.svg +1 -1
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/gantt-semester.svg +1 -1
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/gantt-upgrade.svg +1 -1
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/index.html +14 -6
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/guide.md +73 -8
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/README.md +9 -0
- drawspec-0.4.0/docs/proposals/entities-centre.md +59 -0
- drawspec-0.4.0/docs/proposals/gantt-events-iterations.md +79 -0
- drawspec-0.4.0/docs/reference/entities-star.json +40 -0
- drawspec-0.4.0/docs/reference/gantt-life-cycles.json +20 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/pyproject.toml +1 -1
- {drawspec-0.3.2 → drawspec-0.4.0}/schema/drawspec-v1.schema.json +54 -1
- {drawspec-0.3.2 → drawspec-0.4.0}/server.json +2 -2
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/__init__.py +1 -1
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/cli.py +26 -1
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/emit.py +147 -26
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/argument.py +2 -4
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/barmodel.py +2 -2
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/board.py +2 -2
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/cycle.py +112 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/entities.py +164 -5
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/familytree.py +2 -5
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/fishbone.py +3 -6
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/gantt.py +294 -14
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/grid.py +122 -9
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/journey.py +2 -4
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/loops.py +2 -2
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/mindmap.py +3 -6
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/numberline.py +2 -2
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/pie.py +2 -2
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/venn.py +2 -4
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/mcp.py +75 -42
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/render.py +56 -7
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/schema.py +198 -2
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/text/__init__.py +2 -1
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/text/wrap.py +12 -0
- drawspec-0.4.0/src/drawspec/variants.py +172 -0
- drawspec-0.4.0/tests/test_drawn_fields.py +93 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_cycle.py +66 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_entities.py +138 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_gantt.py +193 -2
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_grid.py +67 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_numberline.py +26 -0
- drawspec-0.4.0/tests/test_variants.py +182 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_wrap.py +10 -1
- {drawspec-0.3.2 → drawspec-0.4.0}/uv.lock +1 -1
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/settings.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/continue/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/continue/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/continue/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/coverage-gaps/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/coverage-gaps/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/coverage-gaps/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/coverage-gaps/scripts/analyze_coverage.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/dep-upgrade/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/dep-upgrade/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/dep-upgrade/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/dep-upgrade/scripts/compare_lockfile.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/design/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/design/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/design/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/design/references/template-plan.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/design/references/template-specification-tail.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/design/scripts/validate_plan.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/execution/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/execution/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/execution/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/execution/references/template.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/gate-check/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/gate-check/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/gate-check/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/gate-check/references/gate-grammar.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/gate-check/scripts/run_gate.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/github/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/github/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/github/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/github/references/pr-review-loop.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/github/references/projects-detection.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/github/scripts/query_pr_state.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/github/scripts/query_project_type.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/.bundle-version +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/AGENTS.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/agents/worker.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/budget_check.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/check_skill_workshop_loaded.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/check_update.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/claim_task.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/detect_surface.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/gate_run.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/gate_target.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/github_channel.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/mark_skill_workshop_loaded.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/mark_skill_workshop_loaded_from_prompt.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/open_task_pr.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/outline.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/rebase_stack.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/rescue_snapshot.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/statusline_capture.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/worker_postcheck.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/workspace_list.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/bin/worktree_probe.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/references/claiming-internals.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/references/evidence-gates.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/references/github-automation.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/references/queue-seeding.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/references/quota-governance.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/references/state-layout.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/references/worker-loop.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/scripts/arsenal_config.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/scripts/arsenal_migrate.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/scripts/create_reader.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/scripts/gate_evidence.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/scripts/handle_sync.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/scripts/issue_for_task.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/scripts/issue_import.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/scripts/query_status.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/scripts/queue_hooks.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/scripts/task_select.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/session/handover.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/assets/workflows/arsenal-queue.yml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/init/scripts/init.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/mutmut-report/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/mutmut-report/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/mutmut-report/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/mutmut-report/scripts/analyze_mutmut.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/pypi-release/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/pypi-release/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/pypi-release/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/pypi-release/scripts/validate_release.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/python-bootstrap/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/python-bootstrap/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/python-bootstrap/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/python-bootstrap/references/canonical-config.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/python-bootstrap/scripts/analyze_project.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/queue-add/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/queue-add/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/queue-add/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/queue-add/references/payload-template.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/queue-add/scripts/new_task.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/queue-status/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/queue-status/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/queue-status/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/review/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/review/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/review/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/review/references/template.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/session-end/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/session-end/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/session-end/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/session-end/references/auto-fire-setup.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/session-end/references/handoff-mode.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/session-end/references/retrospective-rubric.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/session-end/scripts/create_handoff.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/session-end/scripts/query_session_history.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/ship/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/ship/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/ship/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/ship/references/template.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/specify/.arsenal-vendored +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/specify/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/specify/evals/loading_verification.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/specify/references/template.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.claude/skills/specify/scripts/validate_spec.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.dockerignore +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.github/ISSUE_TEMPLATE/kind_or_field_request.yml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.github/dependabot.yml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.github/pull_request_template.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.github/workflows/arsenal-queue.yml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.github/workflows/ci.yml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.github/workflows/release.yml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/.gitignore +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/CLAUDE.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/CONTRIBUTING.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/Dockerfile +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/LICENSE +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/Makefile +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/_config.yml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/config.toml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/session/handover.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-0727.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-0e20.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-0e91.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-1270.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-1291.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-1b55.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-1c11.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-1c47.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-1d28.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-2158.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-21c8.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-2382.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-2f7f.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-2f92.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-30b0.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-38d8.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-3b60.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-3ecf.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-4c51.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-4e89.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-4f9b.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-52fa.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-533d.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-666f.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-6e34.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-70ef.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-7bfe.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-825e.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-88b7.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-9dd6.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-a204.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-a63e.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-b569.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-b67b.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-b7a8.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-b94c.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-c107.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-dcd5.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-e854.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-e93c.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-ee92.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-f0f8.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-f75a.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/lo-fbbb.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-1a23523c.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-2117d467.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-29944b23.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-2f4aa14a.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-36a712a2.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-4796518d.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-4a1b3b93.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-4b992703.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-5355943b.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-5641cbd3.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-5e82a719.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-629fc7cd.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-641a4cdc.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-7e3d313a.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-875d4d3f.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-99eb4b61.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-9b329b00.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-ae407597.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-caeb21fc.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-df2996f3.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-e783b178.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_history/t-f26679ad.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/arsenal/tasks/_migrated-history.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/.bundle-version +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/AGENTS.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/agents/worker.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/budget_check.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/check_skill_workshop_loaded.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/check_update.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/claim_task.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/detect_surface.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/gate_run.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/gate_target.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/github_channel.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/mark_skill_workshop_loaded.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/mark_skill_workshop_loaded_from_prompt.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/open_task_pr.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/outline.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/rebase_stack.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/rescue_snapshot.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/statusline_capture.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/worker_postcheck.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/workspace_list.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/bin/worktree_probe.sh +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/references/claiming-internals.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/references/evidence-gates.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/references/github-automation.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/references/queue-seeding.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/references/quota-governance.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/references/state-layout.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/references/worker-loop.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/scripts/arsenal_config.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/scripts/arsenal_migrate.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/scripts/create_reader.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/scripts/gate_evidence.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/scripts/handle_sync.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/scripts/issue_for_task.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/scripts/issue_import.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/scripts/query_status.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/scripts/queue_hooks.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/scripts/task_select.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/session/handover.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/claude-arsenal/workflows/arsenal-queue.yml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/README.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-001.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-002.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-003.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-004.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-005.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-006.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-007.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-008.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-009.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-010.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-011.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-012.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-013.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-014.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-015.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-016.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-017.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-018.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-019.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-020.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-021.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-022.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-023.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-024.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-025.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-026.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-027.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-028.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-029.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-030.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-031.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-032.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-033.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-034.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-035.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-036.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-037.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-038.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-039.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-040.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-041.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-042.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-043.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-044.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-045.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-046.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-047.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-048.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-049.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-050.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-051.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-052.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-053.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-054.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-055.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-056.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-057.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-058.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-059.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-060.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-061.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-062.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-063.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-064.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-065.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-066.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-067.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-068.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-069.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-070.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-071.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-072.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-073.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-074.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-075.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-076.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-077.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-078.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-079.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-080.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-081.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-082.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-083.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-084.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-085.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-086.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/fixtures/fixture-087.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/corpus/metrics.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/brief.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/claude-arsenal-logo.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/argument-congestion.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/argument-contract.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/argument-homework.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/argument-readmissions.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/barmodel-bus.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/barmodel-fraction.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/barmodel-pages.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/barmodel-ratio.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/barmodel-savings.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/board-migration.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/board-onboarding.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/board-retrospective.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/board-story-map.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/chart-accent.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/chart-across.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/chart-area.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/chart-bars.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/chart-brand-readings.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/chart-complaints.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/chart-responsibility.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/chart-stacked.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/clock-journey.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/clock-quarters.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/clock-roman.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/clock-worksheet.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/columns-before-after.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/columns-rise.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/curve-burndown.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/curve-hype.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/curve-variance.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/cycle-hub-flywheel.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/cycle-hub-oncall.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/cycle-hub-quality.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/cycle-review.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/cycle-wheel.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/entities-blueprint-parts.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/entities-enrolment.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/entities-library.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/entities-orders.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/entities-shapes.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/familytree-clinic.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/familytree-cousins.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/familytree-reunion.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/familytree-tudors.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/files-project.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/files-text.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/fishbone-backup.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/fishbone-flaky-ci.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/fishbone-late-orders.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/fishbone-signups.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-accent.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-actor-handover.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-actors.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-bands.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-blueprint-pump.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-brand-release.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-classes-context.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-classes-teams.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-critical-path.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-edge-roles.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-groups.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-hub.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-inventory.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-loops-adoption.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-loops-predators.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-loops-town.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-loops-waiting.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-mesh.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-meter-readings.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-node-roles.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-person-helpdesk.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-retry.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-status-failover.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-status-search.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-triage.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/flow-validation.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/funnel-applications.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/funnel-innovation.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/gantt-critical-path.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/journey-bug-report.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/journey-first-week.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/journey-outpatient.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/journey-parking-permit.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/lanes-appointment.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/lanes-classes-claim.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/lanes-disclosure.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/lanes-expense.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/lanes-onboarding.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/lanes-phases-loan.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/lanes-phases-purchase.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/lanes-phases-release.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/lanes-tender.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/matrix-process.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/matrix-raid.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/matrix-scale-ci.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/matrix-scale-risk.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/matrix-scale-skills.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/meter-appeal.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/meter-library.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/meter-migration.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/meter-ward.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/mindmap-essay-plan.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/mindmap-moving-house.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/mindmap-offsite.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/mindmap-photosynthesis.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/numberline-inequality.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/numberline-interval-us.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/numberline-ph.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/numberline-spectrum.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/numberline-tense.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/pie-spending.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/pie-team-week.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/pie-travel.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/pie-trip.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/pyramid-evidence.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/pyramid-top-heavy.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/quadrant-conflict.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/quadrant-priorities.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/rag-confidence.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/rag-refit.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/rag-register.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/rag-school.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/rings-scope.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/sankey-budget.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/sankey-cores.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/sankey-energy.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/sankey-tickets.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/scatter-pareto.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/sequence-actor-handover.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/sequence-actor-signin.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/sequence-async-export.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/sequence-checkout.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/sequence-dns.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/sequence-drain.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/sequence-terminal.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/sequence-upload.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/stack-decisions.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/states-blueprint-lift.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/states-brand-station.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/states-breaker.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/states-fork-onboarding.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/states-fork-order.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/states-fork-release.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/states-invoice.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/states-process.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/states-regions-keyboard.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/states-regions-order.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/states-regions-player.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/states-ticket.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/timeline-disaster.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/timeline-rise.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/timeline-work.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/tree-classes-board.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/tree-compartments.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/tree-decisions.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/tree-person-escalation.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/tree-status-reorg.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/treemap-bundle.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/treemap-disk.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/treemap-latency.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/treemap-oncall.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/venn-data-roles.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/venn-four-ikigai.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/venn-four-launch.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/venn-four-ponds.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/venn-frameworks.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/venn-parity.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/venn-telemetry.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/waterfall-budget-gap.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/waterfall-cash.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/waterfall-deficit.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/gallery/waterfall-result.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/hero.png +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/hero.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/kinds-wanted.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/logo.png +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/logo.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/plan-round-five.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/plan-round-three.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/plan-round-two.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/argument.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/barmodel.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/board.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/clock.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/coverage-vs-diagram-design.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/cycle-hub.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/entities.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/exports.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/familytree.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/filetree.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/fishbone.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/flow-loops.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/flow-status.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/gantt.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/journey.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/lanes.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/matrix-scale.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/meter.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/mindmap.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/numberline.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/pie.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/rag.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/sankey.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/sequence.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/states.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/text.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/theme-from.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/treemap.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/venn.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/venn4.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/proposals/waterfall.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/argument-congestion.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/argument-contract.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/argument-homework.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/argument-readmissions.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/barmodel-bus.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/barmodel-fraction.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/barmodel-pages.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/barmodel-ratio.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/barmodel-savings.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/board-migration.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/board-onboarding.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/board-retrospective.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/board-story-map.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/brand/tidemark.css +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/brand/tidemark.tokens.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/brand/tidemark.toml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/chart-accent.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/chart-across.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/chart-area.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/chart-bars.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/chart-brand-readings.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/chart-complaints.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/chart-responsibility.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/chart-stacked.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/clock-journey.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/clock-quarters.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/clock-roman.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/clock-worksheet.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/columns-before-after.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/columns-rise.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/curve-burndown.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/curve-hype.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/curve-variance.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/cycle-hub-flywheel.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/cycle-hub-oncall.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/cycle-hub-quality.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/cycle-review.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/cycle-wheel.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/entities-blueprint-parts.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/entities-enrolment.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/entities-library.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/entities-orders.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/entities-shapes.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/familytree-clinic.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/familytree-cousins.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/familytree-reunion.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/familytree-tudors.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/files-project.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/files-text.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/fishbone-backup.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/fishbone-flaky-ci.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/fishbone-late-orders.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/fishbone-signups.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-accent.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-actor-handover.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-actors.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-bands.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-blueprint-pump.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-brand-release.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-classes-context.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-classes-teams.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-critical-path.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-edge-roles.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-groups.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-hub.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-inventory.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-loops-adoption.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-loops-predators.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-loops-town.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-loops-waiting.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-mesh.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-meter-readings.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-node-roles.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-person-helpdesk.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-retry.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-status-failover.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-status-search.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-triage.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/flow-validation.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/funnel-applications.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/funnel-innovation.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/gantt-critical-path.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/gantt-migration.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/gantt-progress.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/gantt-semester.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/gantt-upgrade.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/journey-bug-report.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/journey-first-week.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/journey-outpatient.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/journey-parking-permit.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/lanes-appointment.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/lanes-classes-claim.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/lanes-disclosure.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/lanes-expense.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/lanes-onboarding.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/lanes-phases-loan.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/lanes-phases-purchase.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/lanes-phases-release.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/lanes-tender.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/matrix-process.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/matrix-raid.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/matrix-scale-ci.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/matrix-scale-risk.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/matrix-scale-skills.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/meter-appeal.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/meter-library.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/meter-migration.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/meter-ward.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/mindmap-essay-plan.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/mindmap-moving-house.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/mindmap-offsite.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/mindmap-photosynthesis.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/numberline-inequality.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/numberline-interval-us.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/numberline-ph.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/numberline-spectrum.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/numberline-tense.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/pie-spending.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/pie-team-week.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/pie-travel.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/pie-trip.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/pyramid-evidence.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/pyramid-top-heavy.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/quadrant-conflict.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/quadrant-priorities.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rag-confidence.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rag-refit.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rag-register.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rag-school.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rendered/cycle-review-grandalf-down.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rendered/cycle-review-grandalf-right.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rendered/cycle-review-layered-down.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rendered/cycle-review-layered-right.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rendered/flow-validation-grandalf-down.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rendered/flow-validation-grandalf-right.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rendered/flow-validation-layered-down.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rendered/flow-validation-layered-right.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rendered/tree-decisions-grandalf-down.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rendered/tree-decisions-grandalf-right.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rendered/tree-decisions-layered-down.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rendered/tree-decisions-layered-right.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/rings-scope.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/sankey-budget.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/sankey-cores.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/sankey-energy.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/sankey-tickets.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/scatter-pareto.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/sequence-actor-handover.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/sequence-actor-signin.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/sequence-async-export.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/sequence-checkout.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/sequence-dns.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/sequence-drain.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/sequence-terminal.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/sequence-upload.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/stack-decisions.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/states-blueprint-lift.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/states-brand-station.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/states-breaker.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/states-fork-onboarding.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/states-fork-order.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/states-fork-release.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/states-invoice.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/states-process.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/states-regions-keyboard.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/states-regions-order.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/states-regions-player.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/states-ticket.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/themes/algebra-us.toml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/themes/donut.toml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/themes/same-opposite.toml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/timeline-disaster.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/timeline-rise.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/timeline-work.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/tree-classes-board.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/tree-compartments.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/tree-decisions.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/tree-person-escalation.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/tree-status-reorg.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/treemap-bundle.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/treemap-disk.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/treemap-latency.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/treemap-oncall.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/venn-data-roles.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/venn-four-ikigai.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/venn-four-launch.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/venn-four-ponds.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/venn-frameworks.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/venn-parity.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/venn-telemetry.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/waterfall-budget-gap.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/waterfall-cash.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/waterfall-deficit.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/reference/waterfall-result.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/research/corpus-round2.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/research/kind-audit.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/research/kinds-survey.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/review-2026-10.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/social-preview.png +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/social-preview.svg +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/theme-requirements.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/docs/theme.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/glama.json +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/llms.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/skills/drawspec/SKILL.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/brand.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/charts.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/clearance.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/errors.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/examples.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/export.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/filetree.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/fonts/LICENSE +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/fonts/mono-bold.ttf +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/fonts/mono.ttf +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/fonts/sans-bold.ttf +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/fonts/sans.ttf +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/fonts/serif-bold.ttf +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/fonts/serif.ttf +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/geometry.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/__init__.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/clock.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/common.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/containers.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/files.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/graph.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/graphtext.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/lanes.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/meter.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/rag.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/sankey.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/sequence.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/shape.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/treemap.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/kinds/waterfall.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/layout/__init__.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/layout/base.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/layout/grandalf_engine.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/layout/layered.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/legend.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/py.typed +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/routing.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/scene.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/sheet.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/text/fontlib.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/text/measure.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/textgrid.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/theme.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/themes/accent.toml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/themes/blueprint.toml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/themes/compartment.toml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/themes/default.toml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/src/drawspec/themes/wheel.toml +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/status/plan.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/status/spec-annotated.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/status/spec-reader.html +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/status/specification.md +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/board-story-map.ascii.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/board-story-map.unicode.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/files-project.ascii.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/files-project.unicode.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/flow-retry.ascii.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/flow-retry.unicode.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/gantt-semester.ascii.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/gantt-semester.unicode.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/lanes-phases-loan.ascii.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/lanes-phases-loan.unicode.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/meter-appeal.ascii.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/meter-appeal.unicode.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/meter-library.ascii.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/meter-library.unicode.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/meter-migration.ascii.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/meter-migration.unicode.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/meter-ward.ascii.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/meter-ward.unicode.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/rag-refit.ascii.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/rag-refit.unicode.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/sequence-upload.ascii.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/sequence-upload.unicode.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/stack-decisions.ascii.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/stack-decisions.unicode.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/states-process.ascii.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/states-process.unicode.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/timeline-disaster.ascii.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/timeline-disaster.unicode.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/tree-compartments.ascii.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/golden/text/tree-compartments.unicode.txt +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_acceptance.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_actor.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_blueprint.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_box.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_brand.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_caption.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_clearance.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_cli.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_clipping.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_clock.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_docs.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_embedding.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_emit.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_export.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_failure_families.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_flow_loops.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_frame_crossings.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_gallery.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_argument.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_barmodel.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_board.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_chart.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_containers.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_family.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_files.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_fishbone.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_graph.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_journey.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_lanes.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_mindmap.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_pie.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_sankey.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_sequence.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_shape.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_states.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_treemap.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_kinds_venn.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_labels.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_layout.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_layout_spike.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_lead_rule.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_legend.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_margins.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_mcp.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_measure.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_meter.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_packaging.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_readability.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_routing.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_routing_crossings.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_schema.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_self_loops.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_skill.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_status.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_status_rag.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_text_graph.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_text_output.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_theme.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_venn4.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tests/test_waterfall.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tools/clipping.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tools/collisions.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tools/compare.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tools/docs.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tools/frames.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tools/gallery.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tools/hero.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tools/spike_layout.py +0 -0
- {drawspec-0.3.2 → drawspec-0.4.0}/tools/subset_fonts.py +0 -0
|
@@ -9,6 +9,7 @@ drawspec render diagram.json -o diagram.svg # or stdout; -o diagram.png needs
|
|
|
9
9
|
drawspec validate diagram.json # every violation, with a JSON pointer
|
|
10
10
|
drawspec schema --out schema.json # the full JSON Schema
|
|
11
11
|
drawspec theme from site.css -o house.toml # a theme from a brand's CSS or design tokens
|
|
12
|
+
drawspec render d.json --theme accent --variant dark=night.toml # one SVG, both page modes
|
|
12
13
|
```
|
|
13
14
|
|
|
14
15
|
**If your client speaks MCP**, `drawspec-mcp` serves `list_kinds`, `get_example`, `get_schema`, `validate_document` and `render_document` as tools,
|
|
@@ -71,8 +72,8 @@ Pick by what the reader must **understand**, not by what it looks like.
|
|
|
71
72
|
| The conditions something is in, and the events that move it | `states` | `states` + `initial` + `transitions` (`event`/`guard`/`action`; + `final`, `groups`, a group's `regions`, `fork`/`join` bar roles); every state reachable |
|
|
72
73
|
| Who says what to whom, in order, between a fixed set of participants | `sequence` | `participants` + `messages` (+ `fragments` `loop`/`alt`/`opt`/`par`, `groups`, `note`); a `weak` reply to a call draws the activation bar; `async` message role, `actor` participant role |
|
|
73
74
|
| A process whose hand-offs between parties are the point | `lanes` | a `flow`'s `nodes` + `edges`, `actor` required on each (+ `lanes`, their order; + `phases`: `[{text, members}]` in run order, every step in one); no `groups`, `bands`, `centre` |
|
|
74
|
-
| What a data model, schema or class holds, and how its parts relate | `entities` | `entities` (`fields` with `type`/`key`, `operations`, `tag`) + `edges` (`from_field`/`to_field` land on a row; `from_end`/`to_end`: `one`, `zero-or-many`, …) |
|
|
75
|
-
| What runs when in a plan, one row per task: overlap, phases, what waits on what | `gantt` | `axis` (numbers in a named unit, or `categories`; no dates) + `tasks` (`start`/`end`, or `at` for a milestone; `strong` on the critical path; `done` 0–100 fills the bar) (+ `groups` of consecutive tasks, `edges` finish-to-start, `marks`) |
|
|
75
|
+
| What a data model, schema or class holds, and how its parts relate | `entities` | `entities` (`fields` with `type`/`key`, `operations`, `tag`, `centre` for a star schema) + `edges` (`from_field`/`to_field` land on a row; `from_end`/`to_end`: `one`, `zero-or-many`, …) |
|
|
76
|
+
| What runs when in a plan, one row per task: overlap, phases, what waits on what | `gantt` | `axis` (numbers in a named unit, or `categories`; no dates) + `tasks` (`start`/`end`, or `at` for a milestone; `strong` on the critical path; `done` 0–100 fills the bar; `events` [{at, text}] are deliveries on the bar, `iterations` [{start, end}] loops over it) (+ `groups` of consecutive tasks, `edges` finish-to-start, `marks`) |
|
|
76
77
|
| Work sorted into columns, not joined: a kanban board, a retrospective, a story map | `board` | `columns` (a `limit` is counted for you) + `cards`, stacked in the order written (+ `rows` as slices, `cut` under the first release); no `edges` |
|
|
77
78
|
| One observed problem and the causes investigated, by category: a root-cause review | `fishbone` | `effect` + 2–6 `categories`, each with 1–5 `causes` (leaves: no third level; `emphasis` = confirmed root cause, `note` = ruled out); no `edges` |
|
|
78
79
|
| What two to four sets share, and what each holds alone | `venn` | `sets` (2 or 3 equal circles; 4 equal ellipses, region text ≤ 12 characters; no sizes) + `regions`, each named by `in`: exactly the set ids it is in; a region not listed is empty |
|
|
@@ -10,6 +10,62 @@ against it would stop working. Everything below is about the *package*.
|
|
|
10
10
|
|
|
11
11
|
## [Unreleased]
|
|
12
12
|
|
|
13
|
+
## [0.4.0] — 2026-10-19
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **`gantt` tasks take `events` and `iterations`**, so one row can be a lane of a
|
|
18
|
+
life-cycle comparison. An event (`{at, text?}`) is a diamond on the task's own bar
|
|
19
|
+
with its words under it, such as a delivery or a release; several fall on one row
|
|
20
|
+
where a milestone task would take a row each. An iteration (`{start, end}`) is a
|
|
21
|
+
curved arrow over the bar from the iteration's end back to its start, the loop a life cycle
|
|
22
|
+
draws. Both lie within the task's `start` to `end`. Iterations are in order and may
|
|
23
|
+
touch but not overlap. Neither is allowed on a milestone. Each is budgeted at 8 per
|
|
24
|
+
task. Text output draws an iteration as `▼───┐` over the bar and an event as `◆` on
|
|
25
|
+
it, with the words under the bar, or listed under the chart when they would touch.
|
|
26
|
+
Example: `reference/gantt-life-cycles.json`, the PMBOK continuum of life cycles
|
|
27
|
+
(issue #131).
|
|
28
|
+
- **`entities` star schemas**: `"centre": true` on one entity places it in the middle and
|
|
29
|
+
the rest round it, the first above and the rest clockwise in the order written, with
|
|
30
|
+
the PK/FK marks and crow's feet `entities` draws. Lines naming no field join the boxes
|
|
31
|
+
square, spread along each side of the middle; a second `centre`, or one in a class
|
|
32
|
+
hierarchy, is refused. Reference: `entities-star.json`. (#135)
|
|
33
|
+
|
|
34
|
+
- **One SVG, several themes** (#136): `render --variant dark=night.toml` (repeatable;
|
|
35
|
+
`variants=` in Python, `variants` in MCP's `render_document`) draws the document in
|
|
36
|
+
each theme and merges them into one SVG whose colours are CSS custom properties. An
|
|
37
|
+
ancestor's `data-theme="name"` selects a theme, a variant named `dark` also follows
|
|
38
|
+
`prefers-color-scheme`, and the base theme answers to `light`. A variant may change
|
|
39
|
+
colours only; one that changes the drawing is refused by name. The root carries
|
|
40
|
+
`data-drawspec-theme="light=name@digest …"`. The `<style>` this needs is admitted by
|
|
41
|
+
the embedding check only when every rule is scoped to the drawing's root and sets
|
|
42
|
+
only its own colour properties. Single-theme output is unchanged.
|
|
43
|
+
|
|
44
|
+
### Fixed
|
|
45
|
+
|
|
46
|
+
- **A `cycle` edge's `label` is drawn** (#134). It was accepted, validated and dropped.
|
|
47
|
+
It now sits beside its own arc, outside the ring and clear of every step, and a label
|
|
48
|
+
with no room there is refused by name. A new test walks every kind's field tables and
|
|
49
|
+
fails on any free-text field that is accepted and not drawn. It keeps a short, explained
|
|
50
|
+
list of exceptions, which is `note` on the kinds other than `timeline` that v1 keeps.
|
|
51
|
+
- **A `matrix` edge label no longer prints over cell text** (#132). A labelled edge
|
|
52
|
+
running along the join between two rows opens a channel there for its words. Every
|
|
53
|
+
label is tried at points along its run until one is clear of the cells' words, and is
|
|
54
|
+
refused by name when none is.
|
|
55
|
+
- **A two-line `emphasis` point on a `numberline` is bold on both lines** (#133). It
|
|
56
|
+
printed `**` raw: one bold pair spanning a newline was split into two unmatched halves.
|
|
57
|
+
Every kind that sets a whole label bold now bolds each line on its own.
|
|
58
|
+
|
|
59
|
+
## [0.3.3] — 2026-10-15
|
|
60
|
+
|
|
61
|
+
### Changed
|
|
62
|
+
|
|
63
|
+
- **Tighter MCP tool descriptions**: each now says what its arguments accept, with an
|
|
64
|
+
example value (the bundled theme names, `kind`, the document as a JSON object), how
|
|
65
|
+
`width`, `height` and `theme` behave with `format: text`, and what a call costs (local,
|
|
66
|
+
deterministic, rough answer size). Return shapes already in an output schema are no
|
|
67
|
+
longer repeated, and the refusal shape is shorter.
|
|
68
|
+
|
|
13
69
|
## [0.3.2] — 2026-10-15
|
|
14
70
|
|
|
15
71
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: drawspec
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Declarative diagram spec to clean, themeable SVG — writable by an LLM with no coordinates.
|
|
5
5
|
Project-URL: Homepage, https://github.com/nuncaeslupus/drawspec
|
|
6
6
|
Project-URL: Documentation, https://github.com/nuncaeslupus/drawspec/blob/main/docs/guide.md
|
|
@@ -83,9 +83,11 @@ pip install drawspec && drawspec render diagram.json -o diagram.svg
|
|
|
83
83
|
> hand-off between parties is an arrow crossing a lane. `entities` is the
|
|
84
84
|
> nineteenth: ER models, database schemas and class diagrams as one kind — boxes
|
|
85
85
|
> of fields, relations that can land on one row, crow's feet or multiplicities at
|
|
86
|
-
> the ends,
|
|
87
|
-
> plan, one row per task, with phases,
|
|
88
|
-
> and marks such as *today* — on a
|
|
86
|
+
> the ends, inheritance with a hollow triangle, and a star schema round its fact
|
|
87
|
+
> table. `gantt` is the twentieth: a plan, one row per task, with phases,
|
|
88
|
+
> milestones, finish-to-start dependencies and marks such as *today* — on a
|
|
89
|
+
> numbered axis in a unit you name, never dates; a task's row can carry its
|
|
90
|
+
> deliveries and the iterations it goes round, so life cycles compare lane by lane.
|
|
89
91
|
> `board` is the twenty-first: cards sorted into columns — a kanban board with
|
|
90
92
|
> work-in-progress limits drawspec counts, a retrospective, or a story map whose
|
|
91
93
|
> releases are slices across the columns with a heavy cut under the first.
|
|
@@ -159,7 +161,10 @@ result is not in the format at all:
|
|
|
159
161
|
Output is SVG that can be pasted inline into a Markdown document: colour
|
|
160
162
|
inherited from the surrounding page, no global `<style>`, no ids that collide
|
|
161
163
|
when two diagrams share a page, and no information carried by colour alone —
|
|
162
|
-
so it survives dark mode and greyscale printing.
|
|
164
|
+
so it survives dark mode and greyscale printing. A theme with colours in it can
|
|
165
|
+
bring a second theme for the dark page: `--variant dark=night.toml` writes one SVG
|
|
166
|
+
that switches with the reader's `prefers-color-scheme` and with a page's own
|
|
167
|
+
`data-theme` attribute. For anywhere an SVG cannot go —
|
|
163
168
|
a chat, a slide, an attachment — the same drawing comes out as a PNG on a light,
|
|
164
169
|
dark or transparent background (`pip install 'drawspec[png]'`, one self-contained
|
|
165
170
|
wheel; no PDF, no JPEG). And for where no picture draws — a terminal, a commit
|
|
@@ -43,9 +43,11 @@ pip install drawspec && drawspec render diagram.json -o diagram.svg
|
|
|
43
43
|
> hand-off between parties is an arrow crossing a lane. `entities` is the
|
|
44
44
|
> nineteenth: ER models, database schemas and class diagrams as one kind — boxes
|
|
45
45
|
> of fields, relations that can land on one row, crow's feet or multiplicities at
|
|
46
|
-
> the ends,
|
|
47
|
-
> plan, one row per task, with phases,
|
|
48
|
-
> and marks such as *today* — on a
|
|
46
|
+
> the ends, inheritance with a hollow triangle, and a star schema round its fact
|
|
47
|
+
> table. `gantt` is the twentieth: a plan, one row per task, with phases,
|
|
48
|
+
> milestones, finish-to-start dependencies and marks such as *today* — on a
|
|
49
|
+
> numbered axis in a unit you name, never dates; a task's row can carry its
|
|
50
|
+
> deliveries and the iterations it goes round, so life cycles compare lane by lane.
|
|
49
51
|
> `board` is the twenty-first: cards sorted into columns — a kanban board with
|
|
50
52
|
> work-in-progress limits drawspec counts, a retrospective, or a story map whose
|
|
51
53
|
> releases are slices across the columns with a heavy cut under the first.
|
|
@@ -119,7 +121,10 @@ result is not in the format at all:
|
|
|
119
121
|
Output is SVG that can be pasted inline into a Markdown document: colour
|
|
120
122
|
inherited from the surrounding page, no global `<style>`, no ids that collide
|
|
121
123
|
when two diagrams share a page, and no information carried by colour alone —
|
|
122
|
-
so it survives dark mode and greyscale printing.
|
|
124
|
+
so it survives dark mode and greyscale printing. A theme with colours in it can
|
|
125
|
+
bring a second theme for the dark page: `--variant dark=night.toml` writes one SVG
|
|
126
|
+
that switches with the reader's `prefers-color-scheme` and with a page's own
|
|
127
|
+
`data-theme` attribute. For anywhere an SVG cannot go —
|
|
123
128
|
a chat, a slide, an attachment — the same drawing comes out as a PNG on a light,
|
|
124
129
|
dark or transparent background (`pip install 'drawspec[png]'`, one self-contained
|
|
125
130
|
wheel; no PDF, no JPEG). And for where no picture draws — a terminal, a commit
|
|
@@ -41,8 +41,9 @@ Legal before the command name.
|
|
|
41
41
|
Read a document, draw it, and write the SVG to stdout or to a file. With --format png, or an -o ending in .png, write a PNG instead (needs pip install 'drawspec[png]'). With --format text, or an -o ending in .txt, write the diagram as plain text, refused when it is wider than --width.
|
|
42
42
|
|
|
43
43
|
```
|
|
44
|
-
usage: drawspec render [-h] [-o OUT] [--theme THEME] [--
|
|
45
|
-
[--
|
|
44
|
+
usage: drawspec render [-h] [-o OUT] [--theme THEME] [--variant NAME=THEME]
|
|
45
|
+
[--width WIDTH] [--height HEIGHT]
|
|
46
|
+
[--profile {inline,standalone}]
|
|
46
47
|
[--format {svg,png,text}] [--charset {unicode,ascii}]
|
|
47
48
|
[--scale SCALE] [--background {light,dark,transparent}]
|
|
48
49
|
document
|
|
@@ -53,6 +54,7 @@ usage: drawspec render [-h] [-o OUT] [--theme THEME] [--width WIDTH]
|
|
|
53
54
|
| `document` | The document to render. |
|
|
54
55
|
| `-o`, `--out` | Write here instead of stdout. |
|
|
55
56
|
| `--theme` | A bundled theme name or a theme file. |
|
|
57
|
+
| `--variant` | For svg: also draw the diagram in THEME, switched on by an ancestor's data-theme=NAME (and, for NAME dark, by prefers-color-scheme). Repeatable. --theme is the base and answers to light. |
|
|
56
58
|
| `--width` | Override the document's width; with --format text, the most terminal cells a line may take (default 80, or 100 for lanes and sequence). |
|
|
57
59
|
| `--height` | Override the document's height. |
|
|
58
60
|
| `--profile` | The embedding profile. One of `inline`, `standalone`. Default `inline`. |
|
|
@@ -177,7 +177,7 @@ ignored — a `chart` with `nodes` in it is a mistake worth hearing about.
|
|
|
177
177
|
|
|
178
178
|
| Field | Type | Required | What it is |
|
|
179
179
|
|---|---|---|---|
|
|
180
|
-
| `entities` | array of [entity](#entity-object), at least 1 | **yes** | The boxes: each a name (and a stereotype), a rule, its fields, and its operations under a second rule. Placed by their relations: general above specific when there is a hierarchy, side by side otherwise. |
|
|
180
|
+
| `entities` | array of [entity](#entity-object), at least 1 | **yes** | The boxes: each a name (and a stereotype), a rule, its fields, and its operations under a second rule. Placed by their relations: general above specific when there is a hierarchy, side by side otherwise; round the one marked `centre`, a star schema's fact table, when one is. |
|
|
181
181
|
| `edges` | array of [relation](#relation-object) | no | The relations between entities, each landing on a box — or, with `from_field` / `to_field`, on one row of it — and carrying a cardinality at either end. A hierarchy may not loop. |
|
|
182
182
|
|
|
183
183
|
### `gantt`
|
|
@@ -362,7 +362,7 @@ largest reference document of its kind, so nothing in the gallery is refused.
|
|
|
362
362
|
| `sequence` | 8 `participants`, 30 `messages` |
|
|
363
363
|
| `lanes` | 15 `nodes`, 16 `edges`, 6 `lanes`, 6 `phases`, 4 `classes` |
|
|
364
364
|
| `entities` | 8 `entities`, 12 `edges`, 12 `fields` per entity, 8 `operations` per entity |
|
|
365
|
-
| `gantt` | 16 `tasks`, 20 `edges`, 4 `marks` |
|
|
365
|
+
| `gantt` | 16 `tasks`, 20 `edges`, 4 `marks`, 8 `events` per task, 8 `iterations` per task |
|
|
366
366
|
| `board` | 6 `columns`, 4 `rows`, 32 `cards`, 8 `cards` per cell |
|
|
367
367
|
| `fishbone` | 6 `categories`, 5 `causes` per category |
|
|
368
368
|
| `venn` | 4 `sets`, 15 `regions` |
|
|
@@ -526,6 +526,7 @@ name, so a misspelt key is an error at the point it was written.
|
|
|
526
526
|
| `text` | string | **yes** | The entity's name, drawn bold over its fields. One line: may carry `code` and **bold** spans — a table name is usually `code`. |
|
|
527
527
|
| `tag` | string | no | A short stereotype drawn over the name in guillemets — `interface` is drawn «interface». Free text, 16 characters at most. |
|
|
528
528
|
| `role` | string — one of `step`, `emphasis`, `note` | no | The semantic role, which the theme resolves to an appearance. Defaults to 'step'. |
|
|
529
|
+
| `centre` | boolean | no | Whether this entity is the one the rest are arranged around: a star schema's fact table, its dimensions round it — the first above, the rest clockwise in the order written. One entity per document may say so, and not in a class hierarchy, which is drawn general above specific. |
|
|
529
530
|
| `fields` | array of [field](#field-object) | no | What the entity holds, one row each under its name: attributes, columns. A last field of `...` stands for those not shown. |
|
|
530
531
|
| `operations` | array of string | no | What a class can do — `area() → float` — drawn in a compartment of their own under the fields. Strings, not objects: an operation is read, never linked to. |
|
|
531
532
|
|
|
@@ -562,8 +563,24 @@ name, so a misspelt key is an error at the point it was written.
|
|
|
562
563
|
| `at` | number | no | Instead of `start` and `end`: makes the task a milestone, drawn as a mark at this point with no length. |
|
|
563
564
|
| `actor` | string | no | Who does it — free text, drawn as the row label's lead, so the names line up in a column. A task with an actor may not put a newline in `text`. |
|
|
564
565
|
| `done` | number | no | How much of the task is complete, 0 to 100: drawn as a solid band inside the bar from its start, MS Project's progress line. Not on a milestone. |
|
|
566
|
+
| `events` | array of [task-event](#task-event-object) | no | Moments on the task's own row — a delivery, a release, a review — each a diamond on the bar where it falls, its words under the bar. Unlike a milestone task they take no row of their own, so several fall on one row. Within the task's `start` to `end`; not on a milestone. |
|
|
567
|
+
| `iterations` | array of [iteration](#iteration-object) | no | Cycles the work goes round: each an arc over the bar from an iteration's `end` back to its `start`, the return a life cycle draws. Within the task's `start` to `end`, in order and not overlapping; not on a milestone. |
|
|
565
568
|
| `role` | string — one of `step`, `strong`, `emphasis`, `note` | no | `step` (the default bar), `strong` (on the critical path: drawn heavier, the word its dependencies take), `emphasis` (the task the diagram is about) or `note` (outside the plan, drawn lighter). |
|
|
566
569
|
|
|
570
|
+
### `task-event` object
|
|
571
|
+
|
|
572
|
+
| Field | Type | Required | What it is |
|
|
573
|
+
|---|---|---|---|
|
|
574
|
+
| `at` | number | **yes** | Where on the axis, inside the task's interval. |
|
|
575
|
+
| `text` | string | no | The words themselves. May carry inline spans — `code` for the monospace role and **bold** for emphasis — because those are semantic, not typographic. A newline says this label is a lead and a detail rather than one sentence; the theme's `[box] lead` decides what the first paragraph looks like. Prefer it to punctuating the two apart inside one line. |
|
|
576
|
+
|
|
577
|
+
### `iteration` object
|
|
578
|
+
|
|
579
|
+
| Field | Type | Required | What it is |
|
|
580
|
+
|---|---|---|---|
|
|
581
|
+
| `start` | number | **yes** | Where the cycle begins on the axis: the arc's head lands here. |
|
|
582
|
+
| `end` | number | **yes** | Where it ends and turns back, after `start`: the arc leaves from here. |
|
|
583
|
+
|
|
567
584
|
### `dependency` object
|
|
568
585
|
|
|
569
586
|
| Field | Type | Required | What it is |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-0.75 -0.75 665.5 393.975" role="img" aria-labelledby="dse4d61ee1b5-title dse4d61ee1b5-desc"><title id="dse4d61ee1b5-title">Sales, as a star</title><desc id="dse4d61ee1b5-desc">A star schema: the fact table in the middle, marked `centre`, and its four dimensions round it, the first above and the rest clockwise in the order written. Each dimension is one to the facts' many.</desc><path d="M 333.656 95.4 L 333.656 127.8" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 333.656 133.4 L 333.656 143.4" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 338.456 99 L 328.856 99" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 338.456 101.8 L 328.856 101.8" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 328.856 143.4 L 333.656 135.4 L 338.456 143.4" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 336.456 130.6 L 336.36 131.325 L 336.081 132 L 335.636 132.58 L 335.056 133.025 L 334.38 133.305 L 333.656 133.4 L 332.931 133.305 L 332.256 133.025 L 331.676 132.58 L 331.231 132 L 330.951 131.325 L 330.856 130.6 L 330.951 129.875 L 331.231 129.2 L 331.676 128.62 L 332.256 128.175 L 332.931 127.895 L 333.656 127.8 L 334.38 127.895 L 335.056 128.175 L 335.636 128.62 L 336.081 129.2 L 336.36 129.875 L 336.456 130.6" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 460.115 199.95 L 424.404 199.95" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 418.804 199.95 L 408.804 199.95" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 456.515 204.75 L 456.515 195.15" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 453.715 204.75 L 453.715 195.15" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 408.804 195.15 L 416.804 199.95 L 408.804 204.75" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 424.404 199.95 L 424.308 200.675 L 424.028 201.35 L 423.583 201.93 L 423.004 202.375 L 422.328 202.655 L 421.604 202.75 L 420.879 202.655 L 420.204 202.375 L 419.624 201.93 L 419.179 201.35 L 418.899 200.675 L 418.804 199.95 L 418.899 199.225 L 419.179 198.55 L 419.624 197.97 L 420.204 197.525 L 420.879 197.245 L 421.604 197.15 L 422.328 197.245 L 423.004 197.525 L 423.583 197.97 L 424.028 198.55 L 424.308 199.225 L 424.404 199.95" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 333.656 311.925 L 333.656 272.1" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 333.656 266.5 L 333.656 256.5" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 328.856 308.325 L 338.456 308.325" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 328.856 305.525 L 338.456 305.525" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 338.456 256.5 L 333.656 264.5 L 328.856 256.5" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 336.456 269.3 L 336.36 270.025 L 336.081 270.7 L 335.636 271.28 L 335.056 271.725 L 334.38 272.005 L 333.656 272.1 L 332.931 272.005 L 332.256 271.725 L 331.676 271.28 L 331.231 270.7 L 330.951 270.025 L 330.856 269.3 L 330.951 268.575 L 331.231 267.9 L 331.676 267.32 L 332.256 266.875 L 332.931 266.595 L 333.656 266.5 L 334.38 266.595 L 335.056 266.875 L 335.636 267.32 L 336.081 267.9 L 336.36 268.575 L 336.456 269.3" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 210.508 199.95 L 242.908 199.95" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 248.508 199.95 L 258.508 199.95" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 214.108 195.15 L 214.108 204.75" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 216.908 195.15 L 216.908 204.75" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 258.508 204.75 L 250.508 199.95 L 258.508 195.15" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 248.508 199.95 L 248.412 200.675 L 248.133 201.35 L 247.688 201.93 L 247.108 202.375 L 246.432 202.655 L 245.708 202.75 L 244.983 202.655 L 244.308 202.375 L 243.728 201.93 L 243.283 201.35 L 243.003 200.675 L 242.908 199.95 L 243.003 199.225 L 243.283 198.55 L 243.728 197.97 L 244.308 197.525 L 244.983 197.245 L 245.708 197.15 L 246.432 197.245 L 247.108 197.525 L 247.688 197.97 L 248.133 198.55 L 248.412 199.225 L 248.508 199.95" fill="none" stroke="currentColor" stroke-width="1"/><rect x="258.508" y="143.4" width="150.296" height="113.1" rx="4" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M 258.508 170.25 L 408.804 170.25" fill="none" stroke="currentColor" stroke-width="1.5"/><text x="333.656" y="160.633" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="middle"><tspan font-weight="bold">fact_sales</tspan></text><text x="270.508" y="187.483" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" font-weight="bold">FK</text><text x="290.088" y="187.483" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>date_id</tspan></text><text x="396.804" y="187.483" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">int</text><text x="270.508" y="202.333" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" font-weight="bold">FK</text><text x="290.088" y="202.333" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>product_id</tspan></text><text x="396.804" y="202.333" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">int</text><text x="270.508" y="217.183" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" font-weight="bold">FK</text><text x="290.088" y="217.183" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>store_id</tspan></text><text x="396.804" y="217.183" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">int</text><text x="270.508" y="232.033" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" font-weight="bold">FK</text><text x="290.088" y="232.033" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>customer_id</tspan></text><text x="396.804" y="232.033" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">int</text><text x="290.088" y="246.883" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>amount</tspan></text><text x="396.804" y="246.883" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">decimal</text><rect x="271.504" y="12" width="124.304" height="83.4" rx="4" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M 271.504 38.85 L 395.807 38.85" fill="none" stroke="currentColor" stroke-width="1.5"/><text x="333.656" y="29.233" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="middle"><tspan font-weight="bold">dim_date</tspan></text><text x="283.504" y="56.083" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" font-weight="bold">PK</text><text x="303.582" y="56.083" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>date_id</tspan></text><text x="383.807" y="56.083" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">int</text><text x="303.582" y="70.933" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>day</tspan></text><text x="383.807" y="70.933" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">date</text><text x="303.582" y="85.783" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>quarter</tspan></text><text x="383.807" y="85.783" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">int</text><rect x="460.115" y="158.25" width="144.171" height="83.4" rx="4" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M 460.115 185.1 L 604.286 185.1" fill="none" stroke="currentColor" stroke-width="1.5"/><text x="532.201" y="175.483" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="middle"><tspan font-weight="bold">dim_product</tspan></text><text x="472.115" y="202.333" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" font-weight="bold">PK</text><text x="492.193" y="202.333" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>product_id</tspan></text><text x="592.286" y="202.333" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">int</text><text x="492.193" y="217.183" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>name</tspan></text><text x="592.286" y="217.183" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">text</text><text x="492.193" y="232.033" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>category</tspan></text><text x="592.286" y="232.033" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">text</text><rect x="268.193" y="311.925" width="130.926" height="68.55" rx="4" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M 268.193 338.775 L 399.119 338.775" fill="none" stroke="currentColor" stroke-width="1.5"/><text x="333.656" y="329.158" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="middle"><tspan font-weight="bold">dim_store</tspan></text><text x="280.193" y="356.008" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" font-weight="bold">PK</text><text x="300.271" y="356.008" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>store_id</tspan></text><text x="387.119" y="356.008" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">int</text><text x="300.271" y="370.858" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>city</tspan></text><text x="387.119" y="370.858" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">text</text><rect x="59.714" y="158.25" width="150.794" height="83.4" rx="4" fill="none" stroke="currentColor" stroke-width="1.5"/><path d="M 59.714 185.1 L 210.508 185.1" fill="none" stroke="currentColor" stroke-width="1.5"/><text x="135.111" y="175.483" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="middle"><tspan font-weight="bold">dim_customer</tspan></text><text x="71.714" y="202.333" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" font-weight="bold">PK</text><text x="91.792" y="202.333" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>customer_id</tspan></text><text x="198.508" y="202.333" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">int</text><text x="91.792" y="217.183" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>name</tspan></text><text x="198.508" y="217.183" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">text</text><text x="91.792" y="232.033" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor"><tspan>segment</tspan></text><text x="198.508" y="232.033" font-family="'DejaVu Sans Mono', monospace" font-size="11" fill="currentColor" text-anchor="end">text</text></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-1.25 -1.25 666.5 307.778" role="img" aria-labelledby="dsafc9e4e233-title dsafc9e4e233-desc"><title id="dsafc9e4e233-title">Four life cycles over one project</title><desc id="dsafc9e4e233-desc">The continuum of project life cycles: predictive, iterative, incremental and agile, each a lane over the same twenty weeks, with its deliveries and the cycles its work goes round.</desc><defs><pattern id="dsafc9e4e233-dots" width="7" height="7" patternUnits="userSpaceOnUse"><circle cx="3" cy="3" r="1.1" fill="currentColor" fill-opacity="0.4"/></pattern><pattern id="dsafc9e4e233-hatch" width="5" height="5" patternUnits="userSpaceOnUse"><path d="M 0 5 L 5 0" stroke="currentColor" stroke-width="0.7" stroke-opacity="0.4"/></pattern></defs><polygon points="259.933,18.717 639,18.717 639,31.717 259.933,31.717" fill="url(#dsafc9e4e233-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="639,17.092 647.125,25.217 639,33.342 630.875,25.217" fill="currentColor" stroke="currentColor" stroke-width="1.5"/><polygon points="259.933,71.7 639,71.7 639,84.7 259.933,84.7" fill="url(#dsafc9e4e233-dots)" stroke="currentColor" stroke-width="1.5"/><path d="M 381.482 71.7 L 381.482 67.7 L 380.242 65.825 L 376.737 64.2 L 371.291 62.825 L 364.228 61.7 L 355.871 60.825 L 346.543 60.2 L 336.568 59.825 L 326.27 59.7 L 315.972 59.825 L 305.997 60.2 L 296.669 60.825 L 288.312 61.7 L 281.249 62.825 L 275.803 64.2 L 272.298 65.825 L 271.058 67.7 L 271.058 71.7" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="271.058,71.7 267.458,63.7 274.658,63.7" fill="currentColor" stroke="none"/><path d="M 514.155 71.7 L 514.155 67.7 L 512.915 65.825 L 509.41 64.2 L 503.965 62.825 L 496.901 61.7 L 488.544 60.825 L 479.216 60.2 L 469.242 59.825 L 458.943 59.7 L 448.645 59.825 L 438.67 60.2 L 429.343 60.825 L 420.985 61.7 L 413.922 62.825 L 408.476 64.2 L 404.972 65.825 L 403.732 67.7 L 403.732 71.7" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="403.732,71.7 400.132,63.7 407.332,63.7" fill="currentColor" stroke="none"/><path d="M 627.875 71.7 L 627.875 67.7 L 626.848 65.825 L 623.945 64.2 L 619.434 62.825 L 613.583 61.7 L 606.66 60.825 L 598.933 60.2 L 590.671 59.825 L 582.14 59.7 L 573.609 59.825 L 565.347 60.2 L 557.62 60.825 L 550.697 61.7 L 544.846 62.825 L 540.335 64.2 L 537.432 65.825 L 536.405 67.7 L 536.405 71.7" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="536.405,71.7 532.805,63.7 540.005,63.7" fill="currentColor" stroke="none"/><polygon points="639,70.075 647.125,78.2 639,86.325 630.875,78.2" fill="currentColor" stroke="currentColor" stroke-width="1.5"/><polygon points="259.933,111.966 639,111.966 639,124.966 259.933,124.966" fill="url(#dsafc9e4e233-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="392.607,110.341 400.732,118.466 392.607,126.591 384.482,118.466" fill="currentColor" stroke="currentColor" stroke-width="1.5"/><polygon points="525.28,110.341 533.405,118.466 525.28,126.591 517.155,118.466" fill="currentColor" stroke="currentColor" stroke-width="1.5"/><polygon points="639,110.341 647.125,118.466 639,126.591 630.875,118.466" fill="currentColor" stroke="currentColor" stroke-width="1.5"/><polygon points="259.933,164.231 639,164.231 639,177.231 259.933,177.231" fill="url(#dsafc9e4e233-hatch)" stroke="currentColor" stroke-width="2.5"/><path d="M 343.575 164.231 L 343.575 160.231 L 342.761 158.356 L 340.459 156.731 L 336.883 155.356 L 332.244 154.231 L 326.756 153.356 L 320.63 152.731 L 314.08 152.356 L 307.317 152.231 L 300.554 152.356 L 294.003 152.731 L 287.877 153.356 L 282.389 154.231 L 277.751 155.356 L 274.174 156.731 L 271.873 158.356 L 271.058 160.231 L 271.058 164.231" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="271.058,164.231 267.458,156.231 274.658,156.231" fill="currentColor" stroke="none"/><path d="M 438.342 164.231 L 438.342 160.231 L 437.527 158.356 L 435.226 156.731 L 431.649 155.356 L 427.011 154.231 L 421.523 153.356 L 415.397 152.731 L 408.846 152.356 L 402.083 152.231 L 395.32 152.356 L 388.77 152.731 L 382.644 153.356 L 377.156 154.231 L 372.517 155.356 L 368.941 156.731 L 366.639 158.356 L 365.825 160.231 L 365.825 164.231" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="365.825,164.231 362.225,156.231 369.425,156.231" fill="currentColor" stroke="none"/><path d="M 533.108 164.231 L 533.108 160.231 L 532.294 158.356 L 529.992 156.731 L 526.416 155.356 L 521.778 154.231 L 516.289 153.356 L 510.164 152.731 L 503.613 152.356 L 496.85 152.231 L 490.087 152.356 L 483.536 152.731 L 477.411 153.356 L 471.922 154.231 L 467.284 155.356 L 463.708 156.731 L 461.406 158.356 L 460.592 160.231 L 460.592 164.231" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="460.592,164.231 456.992,156.231 464.192,156.231" fill="currentColor" stroke="none"/><path d="M 627.875 164.231 L 627.875 160.231 L 627.061 158.356 L 624.759 156.731 L 621.183 155.356 L 616.544 154.231 L 611.056 153.356 L 604.93 152.731 L 598.38 152.356 L 591.617 152.231 L 584.854 152.356 L 578.303 152.731 L 572.177 153.356 L 566.689 154.231 L 562.051 155.356 L 558.474 156.731 L 556.173 158.356 L 555.358 160.231 L 555.358 164.231" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="555.358,164.231 551.758,156.231 558.958,156.231" fill="currentColor" stroke="none"/><polygon points="354.7,162.606 362.825,170.731 354.7,178.856 346.575,170.731" fill="currentColor" stroke="currentColor" stroke-width="1.5"/><polygon points="449.467,162.606 457.592,170.731 449.467,178.856 441.342,170.731" fill="currentColor" stroke="currentColor" stroke-width="1.5"/><polygon points="544.233,162.606 552.358,170.731 544.233,178.856 536.108,170.731" fill="currentColor" stroke="currentColor" stroke-width="1.5"/><polygon points="639,162.606 647.125,170.731 639,178.856 630.875,170.731" fill="currentColor" stroke="currentColor" stroke-width="1.5"/><path d="M 259.933 198.497 L 639 198.497" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 259.933 198.497 L 259.933 206.497" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 354.7 198.497 L 354.7 206.497" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 449.467 198.497 L 449.467 206.497" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 544.233 198.497 L 544.233 206.497" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 639 198.497 L 639 206.497" fill="none" stroke="currentColor" stroke-width="1"/><text x="12" y="29.233" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan font-weight="bold">Predictive</tspan><tspan> — fixed scope, one</tspan></text><text x="12" y="44.083" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>delivery</tspan></text><text x="12" y="74.583" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan font-weight="bold">Iterative</tspan><tspan> — refined until right, one</tspan></text><text x="12" y="89.433" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>delivery</tspan></text><text x="12" y="123.199" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan font-weight="bold">Incremental</tspan><tspan> — a piece at a time</tspan></text><text x="12" y="174.539" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan font-weight="bold">Agile</tspan><tspan> — refined and delivered often</tspan></text><text x="631.246" y="44.624" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Delivery</tspan></text><text x="631.246" y="97.607" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Delivery</tspan></text><text x="392.607" y="137.873" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Increment 1</tspan></text><text x="525.28" y="137.873" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Increment 2</tspan></text><text x="621.739" y="137.873" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Increment 3</tspan></text><text x="354.7" y="190.138" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>1</tspan></text><text x="449.467" y="190.138" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>2</tspan></text><text x="544.233" y="190.138" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>3</tspan></text><text x="639" y="190.138" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>4</tspan></text><text x="259.933" y="225.779" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>0</tspan></text><text x="354.7" y="225.779" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>5</tspan></text><text x="449.467" y="225.779" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>10</tspan></text><text x="544.233" y="225.779" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>15</tspan></text><text x="639" y="225.779" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>20</tspan></text><text x="449.467" y="247.42" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Time (weeks)</tspan></text><text x="332" y="279.99" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Arcs are cycles the work goes round; diamonds are deliveries to the customer.</tspan></text></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-1.25 -1.25 666.5 346.931" role="img" aria-labelledby="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-1.25 -1.25 666.5 346.931" role="img" aria-labelledby="dsc92af9652b-title"><title id="dsc92af9652b-title">Moving search to the new cluster</title><defs><pattern id="dsc92af9652b-dots" width="7" height="7" patternUnits="userSpaceOnUse"><circle cx="3" cy="3" r="1.1" fill="currentColor" fill-opacity="0.4"/></pattern><pattern id="dsc92af9652b-hatch" width="5" height="5" patternUnits="userSpaceOnUse"><path d="M 0 5 L 5 0" stroke="currentColor" stroke-width="0.7" stroke-opacity="0.4"/></pattern></defs><path d="M 202.431 47.925 L 202.431 42.925 L 289.744 42.925 L 289.744 47.925" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 289.744 101.625 L 289.744 96.625 L 551.686 96.625 L 551.686 101.625" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 551.686 235.875 L 551.686 230.875 L 639 230.875 L 639 235.875" fill="none" stroke="currentColor" stroke-width="1"/><polygon points="202.431,63.275 289.744,63.275 289.744,76.275 202.431,76.275" fill="url(#dsc92af9652b-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="289.744,116.975 420.715,116.975 420.715,129.975 289.744,129.975" fill="url(#dsc92af9652b-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="289.744,143.825 464.372,143.825 464.372,156.825 289.744,156.825" fill="url(#dsc92af9652b-hatch)" stroke="currentColor" stroke-width="2.5"/><polygon points="464.372,170.675 551.686,170.675 551.686,183.675 464.372,183.675" fill="url(#dsc92af9652b-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="551.686,195.9 559.811,204.025 551.686,212.15 543.561,204.025" fill="currentColor" stroke="currentColor" stroke-width="1.5"/><polygon points="551.686,251.225 639,251.225 639,264.225 551.686,264.225" fill="url(#dsc92af9652b-dots)" stroke="currentColor" stroke-width="1.5"/><path d="M 289.744 69.775 L 296.744 69.775 L 296.744 116.975" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="296.744,116.975 293.144,108.975 300.344,108.975" fill="currentColor" stroke="none"/><path d="M 289.744 69.775 L 296.744 69.775 L 296.744 83.2 L 274.744 83.2 L 274.744 150.325 L 289.744 150.325" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="289.744,150.325 281.744,153.925 281.744,146.725" fill="currentColor" stroke="none"/><path d="M 464.372 150.325 L 471.372 150.325 L 471.372 170.675" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="471.372,170.675 467.772,162.675 474.972,162.675" fill="currentColor" stroke="none"/><path d="M 551.686 177.175 L 551.686 177.175 L 551.686 195.9" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="551.686,195.9 548.086,187.9 555.286,187.9" fill="currentColor" stroke="none"/><path d="M 559.811 204.025 L 566.811 204.025 L 566.811 251.225" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="566.811,251.225 563.211,243.225 570.411,243.225" fill="currentColor" stroke="none"/><path d="M 333.401 12 L 333.401 271.15" fill="none" stroke="currentColor" stroke-width="1.5" stroke-dasharray="4 3"/><path d="M 202.431 271.15 L 639 271.15" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 202.431 271.15 L 202.431 279.15" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 289.744 271.15 L 289.744 279.15" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 377.058 271.15 L 377.058 279.15" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 464.372 271.15 L 464.372 279.15" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 551.686 271.15 L 551.686 279.15" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 639 271.15 L 639 279.15" fill="none" stroke="currentColor" stroke-width="1"/><text x="12" y="46.733" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan font-weight="bold">Prepare</tspan></text><text x="24" y="73.583" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Provision the cluster</tspan></text><text x="12" y="100.433" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan font-weight="bold">Move</tspan></text><text x="24" y="127.283" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Mirror writes to both</tspan></text><text x="24" y="154.133" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Backfill history</tspan></text><text x="24" y="180.983" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Shadow-read and compare</tspan></text><text x="24" y="207.833" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Cut reads over</tspan></text><text x="12" y="234.683" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan font-weight="bold">Finish</tspan></text><text x="24" y="261.533" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Retire the old cluster</tspan></text><text x="337.401" y="22.212" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor"><tspan>today</tspan></text><text x="202.431" y="298.432" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>0</tspan></text><text x="289.744" y="298.432" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>2</tspan></text><text x="377.058" y="298.432" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>4</tspan></text><text x="464.372" y="298.432" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>6</tspan></text><text x="551.686" y="298.432" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>8</tspan></text><text x="639" y="298.432" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>10</tspan></text><text x="420.715" y="320.073" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Week</tspan></text></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-1.25 -1.25 666.5 266.381" role="img" aria-labelledby="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-1.25 -1.25 666.5 266.381" role="img" aria-labelledby="ds02b84eabe1-title ds02b84eabe1-desc"><title id="ds02b84eabe1-title">The library refit, at week 7</title><desc id="ds02b84eabe1-desc">Where each piece of the refit has got to. The band inside a bar is how much of that task is done; the line at week 7 is today. Progress: Survey the building 100% done; Strip out old shelving 100% done; Rewire the reading room 60% done; Lay the new floor 20% done; Fit new shelving 0% done.</desc><defs><pattern id="ds02b84eabe1-dots" width="7" height="7" patternUnits="userSpaceOnUse"><circle cx="3" cy="3" r="1.1" fill="currentColor" fill-opacity="0.4"/></pattern><pattern id="ds02b84eabe1-hatch" width="5" height="5" patternUnits="userSpaceOnUse"><path d="M 0 5 L 5 0" stroke="currentColor" stroke-width="0.7" stroke-opacity="0.4"/></pattern></defs><polygon points="178.131,36.425 243.969,36.425 243.969,49.425 178.131,49.425" fill="url(#ds02b84eabe1-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="178.131,40.325 243.969,40.325 243.969,45.525 178.131,45.525" fill="currentColor" fill-opacity="0.7" stroke="none"/><polygon points="243.969,63.275 342.727,63.275 342.727,76.275 243.969,76.275" fill="url(#ds02b84eabe1-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="243.969,67.175 342.727,67.175 342.727,72.375 243.969,72.375" fill="currentColor" fill-opacity="0.7" stroke="none"/><polygon points="309.808,90.125 474.404,90.125 474.404,103.125 309.808,103.125" fill="url(#ds02b84eabe1-hatch)" stroke="currentColor" stroke-width="2.5"/><polygon points="309.808,94.025 408.565,94.025 408.565,99.225 309.808,99.225" fill="currentColor" fill-opacity="0.7" stroke="none"/><polygon points="375.646,116.975 507.323,116.975 507.323,129.975 375.646,129.975" fill="url(#ds02b84eabe1-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="375.646,120.875 401.982,120.875 401.982,126.075 375.646,126.075" fill="currentColor" fill-opacity="0.7" stroke="none"/><polygon points="507.323,143.825 606.081,143.825 606.081,156.825 507.323,156.825" fill="url(#ds02b84eabe1-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="639,169.05 647.125,177.175 639,185.3 630.875,177.175" fill="currentColor" stroke="currentColor" stroke-width="1.5"/><path d="M 243.969 42.925 L 250.969 42.925 L 250.969 63.275" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="250.969,63.275 247.369,55.275 254.569,55.275" fill="currentColor" stroke="none"/><path d="M 507.323 123.475 L 514.323 123.475 L 514.323 143.825" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="514.323,143.825 510.723,135.825 517.923,135.825" fill="currentColor" stroke="none"/><path d="M 606.081 150.325 L 613.081 150.325 L 613.081 177.175 L 630.875 177.175" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="630.875,177.175 622.875,180.775 622.875,173.575" fill="currentColor" stroke="none"/><path d="M 408.565 12 L 408.565 190.6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-dasharray="4 3"/><path d="M 178.131 190.6 L 639 190.6" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 178.131 190.6 L 178.131 198.6" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 342.727 190.6 L 342.727 198.6" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 507.323 190.6 L 507.323 198.6" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 639 190.6 L 639 198.6" fill="none" stroke="currentColor" stroke-width="1"/><text x="12" y="46.733" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Survey the building</tspan></text><text x="12" y="73.583" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Strip out old shelving</tspan></text><text x="12" y="100.433" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Rewire the reading room</tspan></text><text x="12" y="127.283" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Lay the new floor</tspan></text><text x="12" y="154.133" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Fit new shelving</tspan></text><text x="12" y="180.983" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Reopen to readers</tspan></text><text x="412.565" y="22.212" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor"><tspan>today</tspan></text><text x="178.131" y="217.882" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>0</tspan></text><text x="342.727" y="217.882" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>5</tspan></text><text x="507.323" y="217.882" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>10</tspan></text><text x="639" y="217.882" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>14</tspan></text><text x="408.565" y="239.523" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Week</tspan></text></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-1.25 -1.25 666.5 353.441" role="img" aria-labelledby="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-1.25 -1.25 666.5 353.441" role="img" aria-labelledby="dsdd5954130a-title"><title id="dsdd5954130a-title">A research methods module, term by term</title><defs><pattern id="dsdd5954130a-dots" width="7" height="7" patternUnits="userSpaceOnUse"><circle cx="3" cy="3" r="1.1" fill="currentColor" fill-opacity="0.4"/></pattern></defs><path d="M 195.427 47.925 L 195.427 42.925 L 385.529 42.925 L 385.529 47.925" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 385.529 159.975 L 385.529 154.975 L 639 154.975 L 639 159.975" fill="none" stroke="currentColor" stroke-width="1"/><polygon points="195.427,63.275 385.529,63.275 385.529,76.275 195.427,76.275" fill="url(#dsdd5954130a-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="258.794,90.125 385.529,90.125 385.529,103.125 258.794,103.125" fill="url(#dsdd5954130a-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="385.529,116.05 395.279,125.8 385.529,135.55 375.779,125.8" fill="currentColor" stroke="currentColor" stroke-width="2.5"/><polygon points="385.529,175.325 448.897,175.325 448.897,188.325 385.529,188.325" fill="none" stroke="currentColor" stroke-width="1" stroke-dasharray="3 2"/><polygon points="448.897,202.175 575.632,202.175 575.632,215.175 448.897,215.175" fill="url(#dsdd5954130a-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="512.265,229.025 639,229.025 639,242.025 512.265,242.025" fill="url(#dsdd5954130a-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="639,254.25 647.125,262.375 639,270.5 630.875,262.375" fill="currentColor" stroke="currentColor" stroke-width="1.5"/><path d="M 385.529 96.625 L 385.529 96.625 L 385.529 116.05" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="385.529,116.05 381.929,108.05 389.129,108.05" fill="currentColor" stroke="none"/><path d="M 395.279 125.8 L 402.279 125.8 L 402.279 175.325" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="402.279,175.325 398.679,167.325 405.879,167.325" fill="currentColor" stroke="none"/><path d="M 448.897 181.825 L 455.897 181.825 L 455.897 202.175" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="455.897,202.175 452.297,194.175 459.497,194.175" fill="currentColor" stroke="none"/><path d="M 639 235.525 L 639 235.525 L 639 254.25" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="639,254.25 635.4,246.25 642.6,246.25" fill="currentColor" stroke="none"/><path d="M 417.213 12 L 417.213 275.8" fill="none" stroke="currentColor" stroke-width="1.5" stroke-dasharray="4 3"/><path d="M 195.427 275.8 L 639 275.8" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 195.427 275.8 L 195.427 283.8" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 258.794 275.8 L 258.794 283.8" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 322.162 275.8 L 322.162 283.8" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 385.529 275.8 L 385.529 283.8" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 448.897 275.8 L 448.897 283.8" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 512.265 275.8 L 512.265 283.8" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 575.632 275.8 L 575.632 283.8" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 639 275.8 L 639 283.8" fill="none" stroke="currentColor" stroke-width="1"/><text x="12" y="46.733" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan font-weight="bold">Autumn term</tspan></text><text x="24" y="73.583" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Lectures on study design</tspan></text><text x="24" y="100.433" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Write a research proposal</tspan></text><text x="24" y="129.608" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Proposal due</tspan></text><text x="12" y="158.783" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan font-weight="bold">Spring term</tspan></text><text x="24" y="185.633" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Ethics review</tspan></text><text x="24" y="212.483" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Collect data</tspan></text><text x="24" y="239.333" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Analyse and write up</tspan></text><text x="24" y="266.183" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Final report due</tspan></text><text x="421.213" y="22.212" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor"><tspan>winter break</tspan></text><text x="227.11" y="304.012" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Sep</tspan></text><text x="290.478" y="304.012" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Oct</tspan></text><text x="353.846" y="304.012" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Nov</tspan></text><text x="417.213" y="304.012" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Dec</tspan></text><text x="480.581" y="304.012" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Jan</tspan></text><text x="543.949" y="304.012" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Feb</tspan></text><text x="607.316" y="304.012" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Mar</tspan></text><text x="417.213" y="326.582" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Month</tspan></text></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-1.25 -1.25 666.5 355.481" role="img" aria-labelledby="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-1.25 -1.25 666.5 355.481" role="img" aria-labelledby="dsb534476146-title"><title id="dsb534476146-title">Saturday's database upgrade</title><defs><pattern id="dsb534476146-dots" width="7" height="7" patternUnits="userSpaceOnUse"><circle cx="3" cy="3" r="1.1" fill="currentColor" fill-opacity="0.4"/></pattern><pattern id="dsb534476146-hatch" width="5" height="5" patternUnits="userSpaceOnUse"><path d="M 0 5 L 5 0" stroke="currentColor" stroke-width="0.7" stroke-opacity="0.4"/></pattern></defs><polygon points="187.691,42.225 195.816,50.35 187.691,58.475 179.566,50.35" fill="currentColor" stroke="currentColor" stroke-width="1.5"/><polygon points="187.691,85.55 287.982,85.55 287.982,98.55 187.691,98.55" fill="url(#dsb534476146-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="287.982,127.25 438.418,127.25 438.418,140.25 287.982,140.25" fill="url(#dsb534476146-hatch)" stroke="currentColor" stroke-width="2.5"/><polygon points="438.418,168.95 563.782,168.95 563.782,181.95 438.418,181.95" fill="url(#dsb534476146-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="438.418,210.65 513.636,210.65 513.636,223.65 438.418,223.65" fill="url(#dsb534476146-dots)" stroke="currentColor" stroke-width="1.5"/><polygon points="538.709,250.725 546.834,258.85 538.709,266.975 530.584,258.85" fill="currentColor" stroke="currentColor" stroke-width="1.5"/><path d="M 195.816 50.35 L 202.816 50.35 L 202.816 85.55" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="202.816,85.55 199.216,77.55 206.416,77.55" fill="currentColor" stroke="none"/><path d="M 287.982 92.05 L 294.982 92.05 L 294.982 127.25" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="294.982,127.25 291.382,119.25 298.582,119.25" fill="currentColor" stroke="none"/><path d="M 438.418 133.75 L 445.418 133.75 L 445.418 168.95" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="445.418,168.95 441.818,160.95 449.018,160.95" fill="currentColor" stroke="none"/><path d="M 438.418 133.75 L 445.418 133.75 L 445.418 154.6 L 423.418 154.6 L 423.418 217.15 L 438.418 217.15" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="438.418,217.15 430.418,220.75 430.418,213.55" fill="currentColor" stroke="none"/><path d="M 513.636 217.15 L 538.709 217.15 L 538.709 250.725" fill="none" stroke="currentColor" stroke-width="1.5"/><polygon points="538.709,250.725 535.109,242.725 542.309,242.725" fill="currentColor" stroke="none"/><path d="M 488.564 12 L 488.564 279.7" fill="none" stroke="currentColor" stroke-width="1.5" stroke-dasharray="4 3"/><path d="M 187.691 279.7 L 639 279.7" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 187.691 279.7 L 187.691 287.7" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 287.982 279.7 L 287.982 287.7" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 388.273 279.7 L 388.273 287.7" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 488.564 279.7 L 488.564 287.7" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 588.855 279.7 L 588.855 287.7" fill="none" stroke="currentColor" stroke-width="1"/><path d="M 639 279.7 L 639 287.7" fill="none" stroke="currentColor" stroke-width="1"/><text x="12" y="46.733" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan font-weight="bold">On-call</tspan></text><text x="12" y="61.583" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Announce read-only mode</tspan></text><text x="12" y="88.433" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan font-weight="bold">DBA</tspan></text><text x="12" y="103.283" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Take and verify a backup</tspan></text><text x="12" y="130.133" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan font-weight="bold">DBA</tspan></text><text x="12" y="144.983" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Upgrade the primary</tspan></text><text x="12" y="171.833" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan font-weight="bold">DBA</tspan></text><text x="12" y="186.683" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Rebuild replicas</tspan></text><text x="12" y="213.533" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan font-weight="bold">On-call</tspan></text><text x="12" y="228.383" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Run smoke tests</tspan></text><text x="12" y="255.233" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan font-weight="bold">On-call</tspan></text><text x="12" y="270.083" font-family="'DejaVu Sans', sans-serif" font-size="11" fill="currentColor"><tspan>Lift read-only mode</tspan></text><text x="492.564" y="22.212" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor"><tspan>rollback deadline</tspan></text><text x="187.691" y="306.982" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>0</tspan></text><text x="287.982" y="306.982" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>20</tspan></text><text x="388.273" y="306.982" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>40</tspan></text><text x="488.564" y="306.982" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>60</tspan></text><text x="588.855" y="306.982" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>80</tspan></text><text x="639" y="306.982" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>90</tspan></text><text x="413.346" y="328.623" font-family="'DejaVu Sans', sans-serif" font-size="10" fill="currentColor" text-anchor="middle"><tspan>Minutes after 02:00</tspan></text></svg>
|