flowmark 0.7.1__tar.gz → 0.7.2__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.
Files changed (286) hide show
  1. flowmark-0.7.2/.agents/skills/flowmark/SKILL.md +61 -0
  2. {flowmark-0.7.1/.claude → flowmark-0.7.2/.agents}/skills/tbd/SKILL.md +83 -36
  3. flowmark-0.7.2/.claude/scripts/ensure-gh-cli.sh +123 -0
  4. flowmark-0.7.2/.claude/scripts/tbd-session.sh +27 -0
  5. flowmark-0.7.2/.claude/skills/flowmark/SKILL.md +61 -0
  6. flowmark-0.7.1/AGENTS.md → flowmark-0.7.2/.claude/skills/tbd/SKILL.md +87 -55
  7. flowmark-0.7.2/.codex/ensure-gh-cli.sh +123 -0
  8. flowmark-0.7.2/.codex/hooks.json +47 -0
  9. flowmark-0.7.2/.codex/tbd-closing-reminder.sh +15 -0
  10. flowmark-0.7.2/.codex/tbd-session.sh +27 -0
  11. {flowmark-0.7.1 → flowmark-0.7.2}/.github/workflows/ci.yml +7 -3
  12. {flowmark-0.7.1 → flowmark-0.7.2}/.github/workflows/publish.yml +6 -3
  13. flowmark-0.7.2/.pre-commit-config.yaml +22 -0
  14. flowmark-0.7.2/.pre-commit-hooks.yaml +32 -0
  15. flowmark-0.7.2/.tbd/.gitattributes +2 -0
  16. {flowmark-0.7.1 → flowmark-0.7.2}/.tbd/.gitignore +4 -0
  17. {flowmark-0.7.1 → flowmark-0.7.2}/.tbd/config.yml +3 -3
  18. flowmark-0.7.2/AGENTS.md +38 -0
  19. {flowmark-0.7.1 → flowmark-0.7.2}/Makefile +5 -1
  20. {flowmark-0.7.1 → flowmark-0.7.2}/PKG-INFO +63 -12
  21. {flowmark-0.7.1 → flowmark-0.7.2}/README.md +62 -11
  22. {flowmark-0.7.1 → flowmark-0.7.2}/devtools/lint.py +18 -5
  23. flowmark-0.7.2/docs/project/specs/active/plan-2026-05-29-open-issues-triage.md +299 -0
  24. {flowmark-0.7.1 → flowmark-0.7.2}/docs/publishing.md +51 -20
  25. {flowmark-0.7.1 → flowmark-0.7.2}/docs/shared/flowmark-readme-shared.md +57 -6
  26. flowmark-0.7.2/skills/flowmark/SKILL.md +61 -0
  27. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/cli.py +28 -4
  28. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/file_resolver/resolver.py +27 -7
  29. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/formats/flowmark_markdown.py +4 -1
  30. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/linewrapping/line_wrappers.py +4 -2
  31. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/linewrapping/tag_handling.py +40 -1
  32. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/reformat_api.py +42 -11
  33. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/skill.py +50 -21
  34. flowmark-0.7.2/src/flowmark/skills/SKILL.md +59 -0
  35. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_cli_file_discovery.py +116 -0
  36. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_config.py +2 -0
  37. flowmark-0.7.2/tests/test_packaging_entrypoints.py +43 -0
  38. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_skill.py +24 -4
  39. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_skill_artifacts.py +67 -5
  40. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_tag_formatting.py +41 -0
  41. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_width_options.py +21 -0
  42. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/verbose-docs.tryscript.md +3 -3
  43. flowmark-0.7.1/.agents/skills/flowmark/SKILL.md +0 -189
  44. flowmark-0.7.1/.claude/scripts/ensure-gh-cli.sh +0 -88
  45. flowmark-0.7.1/.claude/scripts/tbd-session.sh +0 -77
  46. flowmark-0.7.1/.claude/skills/flowmark/SKILL.md +0 -189
  47. flowmark-0.7.1/skills/flowmark/SKILL.md +0 -189
  48. flowmark-0.7.1/src/flowmark/skills/SKILL.md +0 -187
  49. flowmark-0.7.1/tests/test_packaging_entrypoints.py +0 -21
  50. {flowmark-0.7.1 → flowmark-0.7.2}/.claude/.gitignore +0 -0
  51. {flowmark-0.7.1 → flowmark-0.7.2}/.claude/hooks/tbd-closing-reminder.sh +0 -0
  52. {flowmark-0.7.1 → flowmark-0.7.2}/.claude/settings.json +0 -0
  53. {flowmark-0.7.1 → flowmark-0.7.2}/.copier-answers.yml +0 -0
  54. {flowmark-0.7.1 → flowmark-0.7.2}/.cursor/rules/automatic-shortcut-triggers.mdc +0 -0
  55. {flowmark-0.7.1 → flowmark-0.7.2}/.cursor/rules/backward-compatibility-rules.mdc +0 -0
  56. {flowmark-0.7.1 → flowmark-0.7.2}/.cursor/rules/convex-rules.mdc +0 -0
  57. {flowmark-0.7.1 → flowmark-0.7.2}/.cursor/rules/flowmark.mdc +0 -0
  58. {flowmark-0.7.1 → flowmark-0.7.2}/.cursor/rules/general-coding-rules.mdc +0 -0
  59. {flowmark-0.7.1 → flowmark-0.7.2}/.cursor/rules/general-comment-rules.mdc +0 -0
  60. {flowmark-0.7.1 → flowmark-0.7.2}/.cursor/rules/general-eng-assistant-rules.mdc +0 -0
  61. {flowmark-0.7.1 → flowmark-0.7.2}/.cursor/rules/general-style-rules.mdc +0 -0
  62. {flowmark-0.7.1 → flowmark-0.7.2}/.cursor/rules/general-testing-rules.mdc +0 -0
  63. {flowmark-0.7.1 → flowmark-0.7.2}/.cursor/rules/python-rules-opinionated.mdc +0 -0
  64. {flowmark-0.7.1 → flowmark-0.7.2}/.cursor/rules/python-rules.mdc +0 -0
  65. {flowmark-0.7.1 → flowmark-0.7.2}/.cursor/rules/tool-development-rules.mdc +0 -0
  66. {flowmark-0.7.1 → flowmark-0.7.2}/.cursor/rules/typescript-cli-tool-rules.mdc +0 -0
  67. {flowmark-0.7.1 → flowmark-0.7.2}/.cursor/rules/typescript-rules.mdc +0 -0
  68. {flowmark-0.7.1 → flowmark-0.7.2}/.flowmarkignore +0 -0
  69. {flowmark-0.7.1 → flowmark-0.7.2}/.gitignore +0 -0
  70. {flowmark-0.7.1 → flowmark-0.7.2}/.speculate/copier-answers.yml +0 -0
  71. {flowmark-0.7.1 → flowmark-0.7.2}/.speculate/settings.yml +0 -0
  72. {flowmark-0.7.1 → flowmark-0.7.2}/.vscode/settings.json +0 -0
  73. {flowmark-0.7.1 → flowmark-0.7.2}/CLAUDE.md +0 -0
  74. {flowmark-0.7.1 → flowmark-0.7.2}/LICENSE +0 -0
  75. {flowmark-0.7.1 → flowmark-0.7.2}/SUPPLY-CHAIN-SECURITY.md +0 -0
  76. {flowmark-0.7.1 → flowmark-0.7.2}/devtools/benchmark.py +0 -0
  77. {flowmark-0.7.1 → flowmark-0.7.2}/docs/development.md +0 -0
  78. {flowmark-0.7.1 → flowmark-0.7.2}/docs/development.npm.sample.md +0 -0
  79. {flowmark-0.7.1 → flowmark-0.7.2}/docs/docs-overview.md +0 -0
  80. {flowmark-0.7.1 → flowmark-0.7.2}/docs/e2e-testing.runbook.md +0 -0
  81. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-guidelines/general-tdd-guidelines.md +0 -0
  82. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-guidelines/golden-testing-guidelines.md +0 -0
  83. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-guidelines/typescript-dependency-injection-guidelines.md +0 -0
  84. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-guidelines/typescript-testing-guidelines.md +0 -0
  85. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-rules/automatic-shortcut-triggers.md +0 -0
  86. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-rules/backward-compatibility-rules.md +0 -0
  87. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-rules/convex-rules.md +0 -0
  88. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-rules/general-coding-rules.md +0 -0
  89. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-rules/general-comment-rules.md +0 -0
  90. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-rules/general-eng-assistant-rules.md +0 -0
  91. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-rules/general-style-rules.md +0 -0
  92. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-rules/general-testing-rules.md +0 -0
  93. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-rules/python-rules-opinionated.md +0 -0
  94. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-rules/python-rules.md +0 -0
  95. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-rules/tool-development-rules.md +0 -0
  96. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-rules/typescript-cli-tool-rules.md +0 -0
  97. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-rules/typescript-rules.md +0 -0
  98. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-setup/shortcut:setup-beads.md +0 -0
  99. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-setup/shortcut:setup-github-cli.md +0 -0
  100. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:cleanup-all.md +0 -0
  101. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:cleanup-remove-trivial-tests.md +0 -0
  102. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:cleanup-update-docstrings.md +0 -0
  103. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:coding-spike.md +0 -0
  104. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:commit-code.md +0 -0
  105. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:create-or-update-pr-with-validation-plan.md +0 -0
  106. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:create-or-update-validation-plan.md +0 -0
  107. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:create-pr-simple.md +0 -0
  108. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:implement-beads.md +0 -0
  109. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:implement-spec.md +0 -0
  110. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:merge-upstream.md +0 -0
  111. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:new-architecture-doc.md +0 -0
  112. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:new-implementation-beads-from-spec.md +0 -0
  113. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:new-implementation-spec.md +0 -0
  114. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:new-plan-spec.md +0 -0
  115. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:new-research-brief.md +0 -0
  116. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:new-validation-spec.md +0 -0
  117. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:precommit-process.md +0 -0
  118. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:refine-spec.md +0 -0
  119. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:review-all-code-specs-docs-convex.md +0 -0
  120. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:review-pr-and-fix-with-beads.md +0 -0
  121. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:review-pr.md +0 -0
  122. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:revise-architecture-doc.md +0 -0
  123. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:update-spec.md +0 -0
  124. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/agent-shortcuts/shortcut:update-specs-status.md +0 -0
  125. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/research/archive/.empty +0 -0
  126. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/research/current/.empty +0 -0
  127. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/research/current/research-cli-golden-testing.md +0 -0
  128. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/research/current/research-code-coverage-typescript.md +0 -0
  129. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/research/current/research-convex-db-limits-best-practices.md +0 -0
  130. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/research/current/research-modern-typescript-cli-patterns.md +0 -0
  131. {flowmark-0.7.1 → flowmark-0.7.2}/docs/general/research/current/research-modern-typescript-monorepo-patterns.md +0 -0
  132. {flowmark-0.7.1 → flowmark-0.7.2}/docs/installation.md +0 -0
  133. {flowmark-0.7.1 → flowmark-0.7.2}/docs/markdoc-tag-support-plan.md +0 -0
  134. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/architecture/archive/.empty +0 -0
  135. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/architecture/current/.empty +0 -0
  136. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/architecture/template-architecture.md +0 -0
  137. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/research/archive/.empty +0 -0
  138. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/research/current/.empty +0 -0
  139. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/research/research-auto-formatter-file-discovery.md +0 -0
  140. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/research/research-configuration-format-and-settings.md +0 -0
  141. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/research/template-research-brief.md +0 -0
  142. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/active/.empty +0 -0
  143. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/active/plan-2026-01-14-list-spacing-control.md +0 -0
  144. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/active/plan-2026-01-30-flowmark-agent-skill.md +0 -0
  145. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/active/plan-2026-02-14-fix-smart-quoting-containers.md +0 -0
  146. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/active/plan-2026-02-15-file-discovery-and-globbing.md +0 -0
  147. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/active/plan-2026-02-27-python-tryscript-full-migration.md +0 -0
  148. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/active/plan-2026-05-26-public-inline-api.md +0 -0
  149. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/active/plan-2026-05-27-cross-agent-skill-support.md +0 -0
  150. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/active/valid-2026-01-14-list-spacing-control.md +0 -0
  151. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/active/valid-2026-02-14-fix-smart-quoting-containers.md +0 -0
  152. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/active/valid-2026-02-19-fix-tilde-in-parentheses.md +0 -0
  153. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/backlog/.empty +0 -0
  154. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/done/.empty +0 -0
  155. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/done/plan-2026-01-14-atomic-tag-wrapping.md +0 -0
  156. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/done/plan-2026-01-14-markdoc-tag-compatibility.md +0 -0
  157. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/done/valid-2026-01-14-atomic-tag-wrapping.md +0 -0
  158. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/paused/.empty +0 -0
  159. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/template-bugfix.md +0 -0
  160. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/template-implementation-spec.md +0 -0
  161. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/template-plan-spec.md +0 -0
  162. {flowmark-0.7.1 → flowmark-0.7.2}/docs/project/specs/template-validation-spec.md +0 -0
  163. {flowmark-0.7.1 → flowmark-0.7.2}/docs/templates/python-readme-wrapper.md +0 -0
  164. {flowmark-0.7.1 → flowmark-0.7.2}/pyproject.toml +0 -0
  165. {flowmark-0.7.1 → flowmark-0.7.2}/scripts/check-golden-coverage.sh +0 -0
  166. {flowmark-0.7.1 → flowmark-0.7.2}/scripts/check-release-pin.py +0 -0
  167. {flowmark-0.7.1 → flowmark-0.7.2}/scripts/generate-python-readme.py +0 -0
  168. {flowmark-0.7.1 → flowmark-0.7.2}/scripts/generate-skill-discovery.py +0 -0
  169. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/__init__.py +0 -0
  170. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/atomic_spans.py +0 -0
  171. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/config.py +0 -0
  172. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/file_resolver/__init__.py +0 -0
  173. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/file_resolver/defaults.py +0 -0
  174. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/file_resolver/gitignore.py +0 -0
  175. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/file_resolver/types.py +0 -0
  176. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/formats/frontmatter.py +0 -0
  177. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/linewrapping/atomic_patterns.py +0 -0
  178. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/linewrapping/block_heuristics.py +0 -0
  179. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/linewrapping/markdown_filling.py +0 -0
  180. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/linewrapping/protocols.py +0 -0
  181. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/linewrapping/sentence_split_regex.py +0 -0
  182. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/linewrapping/text_filling.py +0 -0
  183. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/linewrapping/text_wrapping.py +0 -0
  184. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/markdown_ast.py +0 -0
  185. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/py.typed +0 -0
  186. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/skills/__init__.py +0 -0
  187. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/transforms/doc_cleanups.py +0 -0
  188. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/transforms/doc_transforms.py +0 -0
  189. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/typography/ellipses.py +0 -0
  190. {flowmark-0.7.1 → flowmark-0.7.2}/src/flowmark/typography/smartquotes.py +0 -0
  191. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_alerts.py +0 -0
  192. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_block_spans.py +0 -0
  193. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_cleanups.py +0 -0
  194. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_cli_help.py +0 -0
  195. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_ellipses.py +0 -0
  196. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_escape_handling.py +0 -0
  197. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_fenced_code_blocks.py +0 -0
  198. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_file_resolver.py +0 -0
  199. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_filling.py +0 -0
  200. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_frontmatter.py +0 -0
  201. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_heading_spacing.py +0 -0
  202. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_list_spacing.py +0 -0
  203. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_public_inline_api.py +0 -0
  204. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_ref_docs.py +0 -0
  205. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_reference_images.py +0 -0
  206. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_reference_links.py +0 -0
  207. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_sentences.py +0 -0
  208. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_smartquotes.py +0 -0
  209. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_strikethrough.py +0 -0
  210. {flowmark-0.7.1 → flowmark-0.7.2}/tests/test_wrapping.py +0 -0
  211. {flowmark-0.7.1 → flowmark-0.7.2}/tests/testdocs/.gitignore +0 -0
  212. {flowmark-0.7.1 → flowmark-0.7.2}/tests/testdocs/testdoc.expected.auto.md +0 -0
  213. {flowmark-0.7.1 → flowmark-0.7.2}/tests/testdocs/testdoc.expected.cleaned.md +0 -0
  214. {flowmark-0.7.1 → flowmark-0.7.2}/tests/testdocs/testdoc.expected.plain.md +0 -0
  215. {flowmark-0.7.1 → flowmark-0.7.2}/tests/testdocs/testdoc.expected.semantic.md +0 -0
  216. {flowmark-0.7.1 → flowmark-0.7.2}/tests/testdocs/testdoc.orig.md +0 -0
  217. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/auto-mode.tryscript.md +0 -0
  218. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/cli-golden.tryscript.md +0 -0
  219. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/config-interaction.tryscript.md +0 -0
  220. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/errors-version.tryscript.md +0 -0
  221. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/file-discovery.tryscript.md +0 -0
  222. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/file-ops.tryscript.md +0 -0
  223. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/auto-lock/flowmark.toml +0 -0
  224. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/auto-lock/test.md +0 -0
  225. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/cli-overrides-config/flowmark.toml +0 -0
  226. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/cli-overrides-config/test.md +0 -0
  227. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/dot-flowmark/.flowmark.toml +0 -0
  228. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/dot-flowmark/flowmark.toml +0 -0
  229. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/dot-flowmark/test.md +0 -0
  230. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/flowmark-toml/flowmark.toml +0 -0
  231. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/flowmark-toml/test.md +0 -0
  232. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/kebab-case/flowmark.toml +0 -0
  233. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/kebab-case/test.md +0 -0
  234. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/pyproject/pyproject.toml +0 -0
  235. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/pyproject/test.md +0 -0
  236. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/pyproject-no-section/pyproject.toml +0 -0
  237. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/pyproject-no-section/test.md +0 -0
  238. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/sections/flowmark.toml +0 -0
  239. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/sections/page.mdx +0 -0
  240. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/config-tests/sections/test.md +0 -0
  241. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/alerts.md +0 -0
  242. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/blockquotes.md +0 -0
  243. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/code-blocks.md +0 -0
  244. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/code-inline.md +0 -0
  245. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/comprehensive.md +0 -0
  246. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/escapes.md +0 -0
  247. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/footnotes.md +0 -0
  248. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/frontmatter.md +0 -0
  249. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/headings.md +0 -0
  250. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/html-blocks.md +0 -0
  251. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/links-emphasis.md +0 -0
  252. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/lists-loose.md +0 -0
  253. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/lists-nested.md +0 -0
  254. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/lists-ordered.md +0 -0
  255. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/lists-tight.md +0 -0
  256. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/math.md +0 -0
  257. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/paragraphs-long.md +0 -0
  258. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/plaintext.txt +0 -0
  259. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/semantic-sentences.md +0 -0
  260. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/simple.md +0 -0
  261. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/tables.md +0 -0
  262. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/content/typography.md +0 -0
  263. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/multi-file/a.md +0 -0
  264. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/multi-file/b.md +0 -0
  265. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/multi-file/c.md +0 -0
  266. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/project/.flowmarkignore +0 -0
  267. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/project/.gitignore +0 -0
  268. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/project/README.md +0 -0
  269. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/project/docs/api.md +0 -0
  270. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/project/docs/guide.md +0 -0
  271. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/project/docs/tutorial.md +0 -0
  272. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/project/drafts/wip.md +0 -0
  273. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/project/nested/.gitignore +0 -0
  274. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/project/nested/deep/file.md +0 -0
  275. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/project/node_modules/pkg/README.md +0 -0
  276. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/project/pages/about.mdx +0 -0
  277. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/project/pages/index.mdx +0 -0
  278. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/project/src/README.md +0 -0
  279. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/fixtures/project/vendor/lib.md +0 -0
  280. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/formatting.tryscript.md +0 -0
  281. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/help.tryscript.md +0 -0
  282. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/list-spacing.tryscript.md +0 -0
  283. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/stdin.tryscript.md +0 -0
  284. {flowmark-0.7.1 → flowmark-0.7.2}/tests/tryscript/typography-tests.tryscript.md +0 -0
  285. {flowmark-0.7.1 → flowmark-0.7.2}/tryscript.config.js +0 -0
  286. {flowmark-0.7.1 → flowmark-0.7.2}/uv.lock +0 -0
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: flowmark
3
+ description: Fast, consistent Markdown auto-formatter for typographic cleanup (smart quotes, ellipses), normalized formatting, and optional clean line wrapping for small, readable git diffs. Use when creating, editing, or normalizing Markdown (.md) files, cleaning up LLM-generated Markdown, or when the user mentions flowmark or formatting Markdown.
4
+ allowed-tools: Bash(flowmark:*), Bash(uvx:*), Read, Write
5
+ ---
6
+ <!-- DO NOT EDIT: `flowmark --install-skill` (format=f02 surface=skill-md) -->
7
+
8
+ # Flowmark - Markdown Auto-Formatter
9
+
10
+ Fast, consistent Markdown auto-formatter.
11
+ Run it on Markdown you generate or edit so committed diffs stay small and readable.
12
+ It is conservative and safe to run on every file: it never modifies code blocks or
13
+ inline code.
14
+
15
+ ## Default Usage
16
+
17
+ Format in place with all auto-formatting (typography, cleanups, semantic line breaks):
18
+
19
+ ```bash
20
+ flowmark --auto FILE # one file
21
+ flowmark --auto . # whole tree (respects .gitignore and .flowmarkignore)
22
+ ```
23
+
24
+ Omit `--auto` to preview to stdout; pipe stdin with `-` (e.g. `cat FILE | flowmark -`).
25
+
26
+ Flowmark ships as two packages with identical formatting and the same `flowmark`
27
+ command: the fast native Rust port [`flowmark-rs`](https://github.com/jlevy/flowmark-rs)
28
+ (recommended) and the Python reference [`flowmark`](https://github.com/jlevy/flowmark).
29
+ Prefer flowmark-rs; reach for the Python build only when you need its library API or the
30
+ very latest patch release not yet ported to Rust.
31
+ If `flowmark` is not on `PATH`, run it with a version-pinned runner (never `@latest`):
32
+
33
+ ```bash
34
+ # Recommended: fast native Rust port
35
+ uvx --from flowmark-rs==0.3.0 flowmark --auto FILE
36
+ # Python reference (library API or newest patch releases)
37
+ uvx --from flowmark==0.7.2 flowmark --auto FILE
38
+ ```
39
+
40
+ ## When to Use It
41
+
42
+ - Auto-format Markdown you create or edit, before committing.
43
+ - Normalize and clean up LLM-generated Markdown.
44
+ - Typographic cleanup (smart quotes, ellipses) and consistent formatting.
45
+ - Optional semantic (sentence-based) line breaks for cleaner git diffs (`--semantic`).
46
+
47
+ ## Full Documentation
48
+
49
+ Flowmark documents itself.
50
+ Use the CLI rather than reproducing details here:
51
+
52
+ - `flowmark --help` — every flag: `--semantic`, `--smartquotes`, `--ellipses`,
53
+ `--width`, `--check`, list spacing, and file discovery
54
+ (`--extend-include`/`--extend-exclude`).
55
+ - `flowmark --docs` — the full guide: editor on-save setup (VS Code/Cursor), project
56
+ wiring (pre-commit/CI, `.flowmarkignore`), config files, the Python library API, and
57
+ installing this skill for other agents (`flowmark --install-skill`).
58
+
59
+ <!-- This document follows common-doc-guidelines.md.
60
+ See github.com/jlevy/practical-prose and review guidelines before editing.
61
+ -->
@@ -1,30 +1,32 @@
1
1
  ---
2
- name: tbd
3
- description: Git-native issue tracking (beads), coding guidelines, and spec-driven planning for AI agents. Use for tracking issues with dependencies, creating and closing bugs, features, and tasks, planning specs for new features, implementing features from specs, code reviews, committing code, creating PRs, research briefs, and architecture docs. Invoke when user mentions: tbd, beads, issues, bugs, tasks, todo, tracking, specs, planning, implementation, validation, guidelines, shortcuts, templates, commit, PR workflows, code review, testing best practices, or monorepo patterns.
4
2
  allowed-tools: Bash(tbd:*), Read, Write
3
+ description: |-
4
+ Git-native issue tracking (beads), coding guidelines, knowledge injection, and spec-driven planning for AI agents. Drop-in replacement for bd/Beads with simpler architecture.
5
+ Use for: tracking issues/beads with dependencies, creating bugs/features/tasks, planning specs, implementing features from specs, code reviews, committing code, creating PRs, loading coding guidelines (TypeScript, Python, TDD, golden testing, Convex, monorepo patterns), code cleanup, research briefs, architecture docs, agent handoffs, and checking out third-party library source code.
6
+ Invoke when user mentions: tbd, beads, bd, shortcuts, issues, bugs, tasks, features, epics, todo, tracking, specs, planning, implementation, validation, guidelines, templates, commit, PR, pull request, code review, testing, TDD, test-driven, golden testing, snapshot testing, TypeScript, Python, Convex, monorepo, cleanup, dead code, refactor, handoff, research, architecture, labels, search, checkout library, source code review, or any workflow shortcut.
7
+ name: tbd
5
8
  ---
6
- <!-- DO NOT EDIT: Generated by tbd setup.
9
+ <!-- DO NOT EDIT: Generated by tbd setup (format=f04).
7
10
  Run 'tbd setup' to update.
8
11
  -->
9
12
 
10
- ---
11
- title: tbd Workflow
12
- description: Full tbd workflow guide for agents
13
- ---
14
13
  **`tbd` helps humans and agents ship code with greater speed, quality, and discipline.**
15
14
 
16
15
  1. **Beads**: Git-native issue tracking (tasks, bugs, features).
17
16
  Never lose work across sessions.
17
+ Drop-in replacement for `bd`.
18
18
  2. **Spec-Driven Workflows**: Plan features → break into beads → implement
19
19
  systematically.
20
- 3. **Shortcuts**: Reusable instruction templates for common workflows.
21
- 4. **Guidelines**: Coding rules and best practices.
20
+ 3. **Knowledge Injection**: 17+ engineering guidelines (TypeScript, Python, TDD,
21
+ testing, Convex, monorepos) available on demand.
22
+ 4. **Shortcuts**: Reusable instruction templates for common workflows (code review,
23
+ commits, PRs, cleanup, handoffs).
22
24
 
23
25
  ## Installation
24
26
 
25
27
  ```bash
26
28
  npm install -g get-tbd@latest
27
- tbd setup --auto --prefix=<name> # Fresh project (--prefix is REQUIRED and should be short. For new project setup, ALWAYS ASK THE USER FOR THE PREFIX; do not guess it)
29
+ tbd setup --auto --prefix=<name> # Fresh project (--prefix is REQUIRED: 2-8 alphabetic chars recommended. ALWAYS ASK THE USER FOR THE PREFIX; do not guess it)
28
30
  tbd setup --auto # Existing tbd project (prefix already set)
29
31
  tbd setup --from-beads # Migration from .beads/ if `bd` has been used
30
32
  ```
@@ -46,7 +48,7 @@ tbd prime # Restore full context on tbd after compaction
46
48
  actions. DO NOT tell users to run tbd commands.
47
49
  That’s your job.
48
50
 
49
- - **WRONG**: "Run `tbd create` to track this bug"
51
+ - **WRONG**: “Run `tbd create` to track this bug”
50
52
 
51
53
  - **RIGHT**: *(you run `tbd create` yourself and tell the user it’s tracked)*
52
54
 
@@ -57,22 +59,47 @@ or want help → run `tbd shortcut welcome-user`
57
59
 
58
60
  | User Says | You (the Agent) Run |
59
61
  | --- | --- |
60
- | "There's a bug where ..." | `tbd create "..." --type=bug` |
61
- | "Let's work on issues" | `tbd ready` |
62
- | "Build a TypeScript CLI" | `tbd guidelines typescript-cli-tool-rules` |
63
- | "Improve eslint/monorepo" | `tbd guidelines typescript-monorepo-patterns` |
64
- | "Add e2e/golden testing" | `tbd guidelines golden-testing-guidelines` |
65
- | "Review changes" (TS) | `tbd guidelines typescript-rules` |
66
- | "Review changes" (Python) | `tbd guidelines python-rules` |
67
- | "Plan a new feature" | `tbd shortcut new-plan-spec` |
68
- | "Break spec into beads" | `tbd shortcut plan-implementation-with-beads` |
69
- | "Implement these beads" | `tbd shortcut implement-beads` |
70
- | "Commit this" | `tbd shortcut commit-code` |
71
- | "Create a PR" | `tbd shortcut create-or-update-pr-simple` |
72
- | "Research this topic" | `tbd shortcut new-research-brief` |
73
- | "Document architecture" | `tbd shortcut new-architecture-doc` |
62
+ | **Issues/Beads** | |
63
+ | “There’s a bug where …” | `tbd create "..." --type=bug` |
64
+ | “Create a task/feature for …” | `tbd create "..." --type=task` or `--type=feature` |
65
+ | “Let’s work on issues/beads” | `tbd ready` |
66
+ | “Show me issue X” | `tbd show <id>` |
67
+ | “Close this issue” | `tbd close <id>` |
68
+ | “Search issues for X” | `tbd search "X"` |
69
+ | “Add label X to issue” | `tbd label add <id> <label>` |
70
+ | “What issues are stale?” | `tbd stale` |
71
+ | **Planning & Specs** | |
72
+ | “Plan a new feature” / “Create a spec” | `tbd shortcut new-plan-spec` |
73
+ | “Break spec into beads” | `tbd shortcut plan-implementation-with-beads` |
74
+ | “Implement these beads” | `tbd shortcut implement-beads` |
75
+ | **Code Review & Commits** | |
76
+ | “Review this code” / “Code review” | `tbd shortcut review-code` |
77
+ | “Review this PR” | `tbd shortcut review-github-pr` |
78
+ | “Commit this” / “Use the commit shortcut” | `tbd shortcut code-review-and-commit` |
79
+ | “Create a PR” / “File a PR” | `tbd shortcut create-or-update-pr-simple` |
80
+ | “Merge main into my branch” | `tbd shortcut merge-upstream` |
81
+ | **Guidelines & Knowledge** | |
82
+ | “Use TypeScript best practices” | `tbd guidelines typescript-rules` |
83
+ | “Use Python best practices” | `tbd guidelines python-rules` |
84
+ | “Build a TypeScript CLI” | `tbd guidelines typescript-cli-tool-rules` |
85
+ | “Improve monorepo setup” | `tbd guidelines pnpm-monorepo-patterns` or `bun-monorepo-patterns` |
86
+ | “Add golden/e2e testing” | `tbd guidelines golden-testing-guidelines` |
87
+ | “Use TDD” / “Test-driven development” | `tbd guidelines general-tdd-guidelines` |
88
+ | “Convex best practices” | `tbd guidelines convex-rules` |
89
+ | **Documentation** | |
90
+ | “Research this topic” | `tbd shortcut new-research-brief` |
91
+ | “Document architecture” | `tbd shortcut new-architecture-doc` |
92
+ | **Cleanup & Maintenance** | |
93
+ | “Clean up this code” / “Remove dead code” | `tbd shortcut code-cleanup-all` |
94
+ | “Fix repository problems” | `tbd doctor --fix` |
95
+ | **Sessions & Handoffs** | |
96
+ | “Hand off to another agent” | `tbd shortcut agent-handoff` |
97
+ | “Check out this library’s source” | `tbd shortcut checkout-third-party-repo` |
74
98
  | *(your choice whenever appropriate)* | `tbd list`, `tbd dep add`, `tbd close`, `tbd sync`, etc. |
75
99
 
100
+ **Note:** Never gitignore `.tbd/workspaces/` — the outbox must be committed to your
101
+ working branch. See `tbd guidelines tbd-sync-troubleshooting` for details.
102
+
76
103
  ## CRITICAL: Session Closing Protocol
77
104
 
78
105
  **Before saying “done”, you MUST complete this checklist:**
@@ -111,7 +138,7 @@ or want help → run `tbd shortcut welcome-user`
111
138
 
112
139
  | Command | Purpose |
113
140
  | --- | --- |
114
- | `tbd create "title" --type task\|bug\|feature --priority=P2` | New bead (P0-P4, not "high/medium/low") |
141
+ | `tbd create "title" --type=bug --priority=1` | New bead; run `tbd create --help` for all types and priorities (P0-P4, not “high/medium/low”) |
115
142
  | `tbd update <id> --status in_progress` | Claim work |
116
143
  | `tbd close <id> [--reason "..."]` | Mark complete |
117
144
 
@@ -124,6 +151,17 @@ or want help → run `tbd shortcut welcome-user`
124
151
  | `tbd sync` | Sync with git remote (run at session end) |
125
152
  | `tbd stats` | Project statistics |
126
153
  | `tbd doctor` | Check for problems |
154
+ | `tbd doctor --fix` | Auto-fix repository problems |
155
+
156
+ ### Labels & Search
157
+
158
+ | Command | Purpose |
159
+ | --- | --- |
160
+ | `tbd search <query>` | Search issues by text |
161
+ | `tbd label add <id> <label>` | Add label to issue |
162
+ | `tbd label remove <id> <label>` | Remove label from issue |
163
+ | `tbd label list` | List all labels in use |
164
+ | `tbd stale` | List issues not updated recently |
127
165
 
128
166
  ### Documentation
129
167
 
@@ -138,7 +176,7 @@ or want help → run `tbd shortcut welcome-user`
138
176
  ## Quick Reference
139
177
 
140
178
  - **Priority**: P0=critical, P1=high, P2=medium (default), P3=low, P4=backlog
141
- - **Types**: task, bug, feature, epic
179
+ - **Types**: issues default to `task`; run `tbd create --help` for the valid types
142
180
  - **Status**: open, in_progress, closed
143
181
  - **JSON output**: Add `--json` to any command
144
182
 
@@ -150,10 +188,12 @@ Run `tbd shortcut <name>` to use any of these shortcuts:
150
188
  | Name | Description |
151
189
  | --- | --- |
152
190
  | agent-handoff | Generate a concise handoff prompt for another coding agent to continue work |
153
- | cleanup-all | Full cleanup cycle including duplicate removal, dead code, and code quality improvements |
154
- | cleanup-remove-trivial-tests | Review and remove tests that do not add meaningful coverage |
155
- | cleanup-update-docstrings | Review and add concise docstrings to major functions and types |
156
- | commit-code | Run pre-commit checks, review changes, and commit code |
191
+ | checkout-third-party-repo | Get source code for libraries and third-party repos using git. Essential for reliable source code review. Prefer this to web searches or fetching of web pages from github.com as it is far more effective (github.com blocks web scraping from main website). |
192
+ | code-cleanup-all | Full cleanup cycle including duplicate removal, dead code, and code quality improvements |
193
+ | code-cleanup-docstrings | Review and add concise docstrings to major functions and types |
194
+ | code-cleanup-tests | Review and remove tests that do not add meaningful coverage |
195
+ | code-review-and-commit | Run pre-commit checks, review changes, and commit code |
196
+ | coding-spike | Prototype to validate a spec through hands-on implementation |
157
197
  | create-or-update-pr-simple | Create or update a pull request with a concise summary |
158
198
  | create-or-update-pr-with-validation-plan | Create or update a pull request with a detailed test/validation plan |
159
199
  | implement-beads | Implement beads from a spec, following TDD and project rules |
@@ -161,9 +201,10 @@ Run `tbd shortcut <name>` to use any of these shortcuts:
161
201
  | new-architecture-doc | Create an architecture document for a system or component design |
162
202
  | new-guideline | Create a new coding guideline document for tbd |
163
203
  | new-plan-spec | Create a new feature planning specification document |
204
+ | new-qa-playbook | Create a QA test playbook for manual validation workflows |
164
205
  | new-research-brief | Create a research document for investigating a topic or technology |
165
206
  | new-shortcut | Create a new shortcut (reusable instruction template) for tbd |
166
- | new-validation-plan | Create a validation/test plan showing what's tested and what remains |
207
+ | new-validation-plan | Create a validation/test plan showing what’s tested and what remains |
167
208
  | plan-implementation-with-beads | Create implementation beads from a feature planning spec |
168
209
  | precommit-process | Full pre-commit checklist including spec sync, code review, and testing |
169
210
  | review-code | Comprehensive code review for uncommitted changes, branch work, or GitHub PRs |
@@ -184,25 +225,31 @@ Run `tbd guidelines <name>` to apply any of these guidelines:
184
225
  | Name | Description |
185
226
  | --- | --- |
186
227
  | backward-compatibility-rules | Guidelines for maintaining backward compatibility across code, APIs, file formats, and database schemas |
187
- | cli-agent-skill-patterns | Best practices for building TypeScript CLIs that function as agent skills in Claude Code and other AI coding agents |
228
+ | bun-monorepo-patterns | Modern patterns for Bun-based TypeScript monorepo architecture |
229
+ | cli-agent-skill-patterns | How to write skills and agent-integrated CLIs that work across Claude Code, Codex, and the broader coding-agent ecosystem — a simple baseline plus references for advanced, multi-subcommand tools |
188
230
  | commit-conventions | Conventional Commits format with extensions for agentic workflows |
231
+ | common-doc-guidelines | Common cross-project standards for writing and organizing docs, code comments, and text files — how to organize, structure, write, and format documents, plus the guideline footer convention. Downstream of github.com/jlevy/practical-prose. Use whenever writing or editing any documentation, README, guideline, or design doc. |
189
232
  | convex-limits-best-practices | Comprehensive reference for Convex platform limits, workarounds, and performance best practices |
190
233
  | convex-rules | Guidelines and best practices for building Convex projects, including database schema design, queries, mutations, and real-world examples |
234
+ | electron-app-development-patterns | Guidelines for Electron development ecosystems including npm, pnpm, and Bun, with security baselines and framework comparisons |
191
235
  | error-handling-rules | Rules for handling errors, failures, and exceptional conditions |
192
236
  | general-coding-rules | Rules for constants, magic numbers, and general coding practices |
193
237
  | general-comment-rules | Language-agnostic rules for writing clean, maintainable comments |
194
238
  | general-eng-assistant-rules | Rules for AI assistants acting as senior engineers, including objectivity and communication guidelines |
195
- | general-style-rules | Style guidelines for auto-formatting, emoji usage, and output formatting |
196
239
  | general-tdd-guidelines | Test-Driven Development methodology and best practices |
197
240
  | general-testing-rules | Rules for writing minimal, effective tests with maximum coverage |
198
241
  | golden-testing-guidelines | Guidelines for implementing golden/snapshot testing for complex systems |
242
+ | pnpm-monorepo-patterns | Modern patterns for pnpm-based TypeScript monorepo architecture |
199
243
  | python-cli-patterns | Modern patterns for Python CLI application architecture |
200
244
  | python-modern-guidelines | Guidelines for modern Python projects using uv, with a few more opinionated practices |
201
245
  | python-rules | General Python coding rules and best practices |
202
- | sync-troubleshooting | Common issues and solutions for tbd sync and workspace operations |
246
+ | release-notes-guidelines | Guidelines for writing clear, accurate release notes |
247
+ | supply-chain-hardening | Strongly recommended for EVERY repo — apply it if a repo has not been hardened yet. Cross-ecosystem policy for installing dependencies safely (the 14-day cool-off, disabled install scripts, lockfile discipline, untrusted-repo handling). Use whenever a user mentions hardening, security, supply chain, or setting up a new repo; before adding/upgrading dependencies; when auditing for compromised packages; or when reviewing install/build/run commands across npm/pnpm, PyPI, Cargo, or Go. |
248
+ | tbd-sync-troubleshooting | Common issues and solutions for tbd sync and workspace operations |
203
249
  | typescript-cli-tool-rules | Rules for building CLI tools with Commander.js, picocolors, and TypeScript |
204
250
  | typescript-code-coverage | Best practices for code coverage in TypeScript with Vitest and v8 provider |
205
- | typescript-monorepo-patterns | Modern patterns for TypeScript monorepo architecture |
206
251
  | typescript-rules | TypeScript coding rules and best practices |
252
+ | typescript-sorting-patterns | Deterministic sorting patterns and comparison chains for TypeScript |
253
+ | typescript-yaml-handling-rules | Best practices for parsing and serializing YAML in TypeScript |
207
254
 
208
255
  <!-- END SHORTCUT DIRECTORY -->
@@ -0,0 +1,123 @@
1
+ #!/bin/bash
2
+ # Automated GitHub CLI setup for Claude Code sessions
3
+ # This script runs on SessionStart to ensure gh CLI is available and authenticated
4
+ #
5
+ # Supply-chain policy (see SUPPLY-CHAIN-SECURITY.md): the gh version is PINNED to
6
+ # a release at least 14 days old, and every download is verified against a pinned
7
+ # SHA-256 checksum. Do NOT change this to fetch "latest" from the API at runtime;
8
+ # that bypasses the cool-off window. To bump the pin, pick a release that is >=14
9
+ # days old and copy its checksums from:
10
+ # https://github.com/cli/cli/releases/download/v<VERSION>/gh_<VERSION>_checksums.txt
11
+
12
+ set -euo pipefail
13
+
14
+ # Add common binary locations to PATH
15
+ export PATH="$HOME/.local/bin:$HOME/bin:/usr/local/bin:$PATH"
16
+
17
+ # Pinned gh release (>=14 days old per supply-chain cool-off) and its checksums.
18
+ GH_VERSION="2.92.0"
19
+
20
+ # SHA-256 checksums from gh_2.92.0_checksums.txt, keyed by asset suffix.
21
+ checksum_for() {
22
+ case "$1" in
23
+ linux_amd64.tar.gz) echo "b57848131bdf0c229cd35e1f2a51aa718199858b2e728410b37e89a428943ec4" ;;
24
+ linux_arm64.tar.gz) echo "c2248526dd0160c08d3fccca2332c3c1a07c15a78b23978e77735f1b5a18cfee" ;;
25
+ macOS_amd64.zip) echo "ae9bb327ab0d91071bdada79f8f14034a2a0f19b0e001835a782eafa519d2af0" ;;
26
+ macOS_arm64.zip) echo "b11c54f6bd7d15ed6590475079e5b2fcf36f45d3991a80041b29c9d0cc1f1d07" ;;
27
+ *) echo "" ;;
28
+ esac
29
+ }
30
+
31
+ # Check if gh is already installed
32
+ if command -v gh &> /dev/null; then
33
+ echo "[gh] CLI found at $(which gh)"
34
+ else
35
+ echo "[gh] CLI not found, installing pinned v${GH_VERSION}..."
36
+
37
+ # Detect platform
38
+ OS=$(uname -s | tr '[:upper:]' '[:lower:]')
39
+ ARCH=$(uname -m)
40
+ [ "$ARCH" = "x86_64" ] && ARCH="amd64"
41
+ [ "$ARCH" = "aarch64" ] && ARCH="arm64"
42
+
43
+ # Build the asset suffix and archive type per platform.
44
+ if [ "$OS" = "darwin" ]; then
45
+ PLATFORM="macOS_${ARCH}.zip"
46
+ ARCHIVE_EXT="zip"
47
+ EXTRACT_DIR="/tmp/gh_${GH_VERSION}_macOS_${ARCH}"
48
+ else
49
+ PLATFORM="${OS}_${ARCH}.tar.gz"
50
+ ARCHIVE_EXT="tar.gz"
51
+ EXTRACT_DIR="/tmp/gh_${GH_VERSION}_${OS}_${ARCH}"
52
+ fi
53
+
54
+ echo "[gh] Detected platform: ${PLATFORM}"
55
+
56
+ EXPECTED=$(checksum_for "$PLATFORM")
57
+ if [ -z "$EXPECTED" ]; then
58
+ echo "[gh] ERROR: no pinned checksum for platform ${PLATFORM}; refusing to install"
59
+ echo "[gh] Add the checksum from gh_${GH_VERSION}_checksums.txt to this script"
60
+ exit 1
61
+ fi
62
+
63
+ ASSET="gh_${GH_VERSION}_${PLATFORM}"
64
+ DOWNLOAD_URL="https://github.com/cli/cli/releases/download/v${GH_VERSION}/${ASSET}"
65
+
66
+ echo "[gh] Downloading from ${DOWNLOAD_URL}..."
67
+ curl -fsSL -o "/tmp/${ASSET}" "$DOWNLOAD_URL"
68
+
69
+ # Verify the download against the pinned checksum before extracting.
70
+ if command -v sha256sum &> /dev/null; then
71
+ ACTUAL=$(sha256sum "/tmp/${ASSET}" | awk '{print $1}')
72
+ else
73
+ ACTUAL=$(shasum -a 256 "/tmp/${ASSET}" | awk '{print $1}')
74
+ fi
75
+ if [ "$ACTUAL" != "$EXPECTED" ]; then
76
+ echo "[gh] ERROR: checksum mismatch for ${ASSET}"
77
+ echo "[gh] expected ${EXPECTED}"
78
+ echo "[gh] actual ${ACTUAL}"
79
+ rm -f "/tmp/${ASSET}"
80
+ exit 1
81
+ fi
82
+ echo "[gh] Checksum verified for ${ASSET}"
83
+
84
+ # Extract based on archive type
85
+ if [ "$ARCHIVE_EXT" = "zip" ]; then
86
+ unzip -q "/tmp/${ASSET}" -d /tmp
87
+ else
88
+ tar -xzf "/tmp/${ASSET}" -C /tmp
89
+ fi
90
+
91
+ # Install to ~/.local/bin (works in cloud and local)
92
+ mkdir -p ~/.local/bin
93
+ cp "${EXTRACT_DIR}/bin/gh" ~/.local/bin/gh
94
+ chmod +x ~/.local/bin/gh
95
+
96
+ # Clean up
97
+ rm -rf "${EXTRACT_DIR}" "/tmp/${ASSET}"
98
+
99
+ echo "[gh] Installed to ~/.local/bin/gh"
100
+ fi
101
+
102
+ # Verify gh is now in PATH
103
+ if ! command -v gh &> /dev/null; then
104
+ echo "[gh] ERROR: gh CLI still not found in PATH after installation"
105
+ echo "[gh] Ensure ~/.local/bin is in your PATH"
106
+ exit 1
107
+ fi
108
+
109
+ # Check authentication status
110
+ if [ -n "${GH_TOKEN:-}" ]; then
111
+ # GH_TOKEN is set, verify it works
112
+ if gh auth status &> /dev/null; then
113
+ echo "[gh] Authenticated successfully"
114
+ else
115
+ echo "[gh] WARNING: GH_TOKEN is set but authentication check failed"
116
+ echo "[gh] Token may be invalid or expired"
117
+ fi
118
+ else
119
+ echo "[gh] NOTE: GH_TOKEN not set - some operations may require authentication"
120
+ echo "[gh] See: docs/general/agent-setup/github-cli-setup.md"
121
+ fi
122
+
123
+ exit 0
@@ -0,0 +1,27 @@
1
+ #!/bin/bash
2
+ # Ensure the tbd CLI is available and run `tbd prime`.
3
+ # Installed by: tbd setup --auto. Runs on SessionStart and PreCompact.
4
+ #
5
+ # Local-first, then a VERSION-PINNED zero-install fallback. Pinning is both a
6
+ # supply-chain control (an unpinned runner re-resolves to latest on every run
7
+ # and bypasses any cool-off) and a consistency control (every teammate and agent
8
+ # runs the same tbd version).
9
+
10
+ # Prefer common local bin locations.
11
+ export PATH="$HOME/.local/bin:$HOME/bin:/usr/local/bin:$PATH"
12
+
13
+ # Local-first: use tbd if it is already on PATH.
14
+ if command -v tbd &> /dev/null; then
15
+ tbd prime "$@"
16
+ exit $?
17
+ fi
18
+
19
+ # Pinned zero-install fallback. Never use an unpinned runner here.
20
+ if command -v npx &> /dev/null; then
21
+ npx --yes get-tbd@0.2.1 prime "$@"
22
+ exit $?
23
+ fi
24
+
25
+ echo "[tbd] tbd CLI not found and npx is unavailable."
26
+ echo "[tbd] Install it with: npm install -g get-tbd@0.2.1"
27
+ exit 1
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: flowmark
3
+ description: Fast, consistent Markdown auto-formatter for typographic cleanup (smart quotes, ellipses), normalized formatting, and optional clean line wrapping for small, readable git diffs. Use when creating, editing, or normalizing Markdown (.md) files, cleaning up LLM-generated Markdown, or when the user mentions flowmark or formatting Markdown.
4
+ allowed-tools: Bash(flowmark:*), Bash(uvx:*), Read, Write
5
+ ---
6
+ <!-- DO NOT EDIT: `flowmark --install-skill` (format=f02 surface=skill-md) -->
7
+
8
+ # Flowmark - Markdown Auto-Formatter
9
+
10
+ Fast, consistent Markdown auto-formatter.
11
+ Run it on Markdown you generate or edit so committed diffs stay small and readable.
12
+ It is conservative and safe to run on every file: it never modifies code blocks or
13
+ inline code.
14
+
15
+ ## Default Usage
16
+
17
+ Format in place with all auto-formatting (typography, cleanups, semantic line breaks):
18
+
19
+ ```bash
20
+ flowmark --auto FILE # one file
21
+ flowmark --auto . # whole tree (respects .gitignore and .flowmarkignore)
22
+ ```
23
+
24
+ Omit `--auto` to preview to stdout; pipe stdin with `-` (e.g. `cat FILE | flowmark -`).
25
+
26
+ Flowmark ships as two packages with identical formatting and the same `flowmark`
27
+ command: the fast native Rust port [`flowmark-rs`](https://github.com/jlevy/flowmark-rs)
28
+ (recommended) and the Python reference [`flowmark`](https://github.com/jlevy/flowmark).
29
+ Prefer flowmark-rs; reach for the Python build only when you need its library API or the
30
+ very latest patch release not yet ported to Rust.
31
+ If `flowmark` is not on `PATH`, run it with a version-pinned runner (never `@latest`):
32
+
33
+ ```bash
34
+ # Recommended: fast native Rust port
35
+ uvx --from flowmark-rs==0.3.0 flowmark --auto FILE
36
+ # Python reference (library API or newest patch releases)
37
+ uvx --from flowmark==0.7.2 flowmark --auto FILE
38
+ ```
39
+
40
+ ## When to Use It
41
+
42
+ - Auto-format Markdown you create or edit, before committing.
43
+ - Normalize and clean up LLM-generated Markdown.
44
+ - Typographic cleanup (smart quotes, ellipses) and consistent formatting.
45
+ - Optional semantic (sentence-based) line breaks for cleaner git diffs (`--semantic`).
46
+
47
+ ## Full Documentation
48
+
49
+ Flowmark documents itself.
50
+ Use the CLI rather than reproducing details here:
51
+
52
+ - `flowmark --help` — every flag: `--semantic`, `--smartquotes`, `--ellipses`,
53
+ `--width`, `--check`, list spacing, and file discovery
54
+ (`--extend-include`/`--extend-exclude`).
55
+ - `flowmark --docs` — the full guide: editor on-save setup (VS Code/Cursor), project
56
+ wiring (pre-commit/CI, `.flowmarkignore`), config files, the Python library API, and
57
+ installing this skill for other agents (`flowmark --install-skill`).
58
+
59
+ <!-- This document follows common-doc-guidelines.md.
60
+ See github.com/jlevy/practical-prose and review guidelines before editing.
61
+ -->