specflo 0.2.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.
Files changed (57) hide show
  1. specflo-0.2.0/.gitignore +19 -0
  2. specflo-0.2.0/CHANGELOG.md +74 -0
  3. specflo-0.2.0/LICENSE +625 -0
  4. specflo-0.2.0/PKG-INFO +173 -0
  5. specflo-0.2.0/README.md +161 -0
  6. specflo-0.2.0/hatch_build.py +57 -0
  7. specflo-0.2.0/pyproject.toml +50 -0
  8. specflo-0.2.0/skills/brainstorm/SKILL.md +150 -0
  9. specflo-0.2.0/skills/execute/SKILL.md +131 -0
  10. specflo-0.2.0/skills/plan/SKILL.md +112 -0
  11. specflo-0.2.0/skills/research/SKILL.md +99 -0
  12. specflo-0.2.0/skills/shelve/SKILL.md +70 -0
  13. specflo-0.2.0/skills/spec/SKILL.md +124 -0
  14. specflo-0.2.0/src/specflo/__init__.py +3 -0
  15. specflo-0.2.0/src/specflo/brainstorm.py +179 -0
  16. specflo-0.2.0/src/specflo/checkpoint.py +183 -0
  17. specflo-0.2.0/src/specflo/cli.py +1310 -0
  18. specflo-0.2.0/src/specflo/config.py +86 -0
  19. specflo-0.2.0/src/specflo/errors.py +9 -0
  20. specflo-0.2.0/src/specflo/guide.py +142 -0
  21. specflo-0.2.0/src/specflo/hook.py +246 -0
  22. specflo-0.2.0/src/specflo/markdown.py +203 -0
  23. specflo-0.2.0/src/specflo/plan.py +1108 -0
  24. specflo-0.2.0/src/specflo/projects.py +218 -0
  25. specflo-0.2.0/src/specflo/skills/.gitkeep +13 -0
  26. specflo-0.2.0/src/specflo/spec.py +281 -0
  27. specflo-0.2.0/src/specflo/status.py +121 -0
  28. specflo-0.2.0/src/specflo/validators.py +25 -0
  29. specflo-0.2.0/src/specflo/workflow.py +118 -0
  30. specflo-0.2.0/tests/conftest.py +21 -0
  31. specflo-0.2.0/tests/fixtures/research-digest.md +28 -0
  32. specflo-0.2.0/tests/test_brainstorm.py +298 -0
  33. specflo-0.2.0/tests/test_checkpoint.py +371 -0
  34. specflo-0.2.0/tests/test_cli.py +2081 -0
  35. specflo-0.2.0/tests/test_config.py +90 -0
  36. specflo-0.2.0/tests/test_docs_ascii.py +28 -0
  37. specflo-0.2.0/tests/test_entrypoint.py +26 -0
  38. specflo-0.2.0/tests/test_execute_skill.py +32 -0
  39. specflo-0.2.0/tests/test_guide.py +135 -0
  40. specflo-0.2.0/tests/test_hook.py +333 -0
  41. specflo-0.2.0/tests/test_markdown.py +92 -0
  42. specflo-0.2.0/tests/test_packaging.py +209 -0
  43. specflo-0.2.0/tests/test_plan.py +1145 -0
  44. specflo-0.2.0/tests/test_plan_skill.py +32 -0
  45. specflo-0.2.0/tests/test_projects.py +270 -0
  46. specflo-0.2.0/tests/test_research_skill.py +56 -0
  47. specflo-0.2.0/tests/test_shelve_skill.py +34 -0
  48. specflo-0.2.0/tests/test_skill.py +55 -0
  49. specflo-0.2.0/tests/test_skill_roots.py +40 -0
  50. specflo-0.2.0/tests/test_skills_lifecycle.py +97 -0
  51. specflo-0.2.0/tests/test_spec.py +301 -0
  52. specflo-0.2.0/tests/test_spec_skill.py +30 -0
  53. specflo-0.2.0/tests/test_stale_notice.py +137 -0
  54. specflo-0.2.0/tests/test_status.py +161 -0
  55. specflo-0.2.0/tests/test_validators.py +60 -0
  56. specflo-0.2.0/tests/test_workflow.py +144 -0
  57. specflo-0.2.0/uv.lock +263 -0
@@ -0,0 +1,19 @@
1
+ # Python bytecode
2
+ __pycache__/
3
+ *.py[cod]
4
+
5
+ # Virtual environment
6
+ .venv/
7
+
8
+ # Test / build artifacts
9
+ .pytest_cache/
10
+ *.egg-info/
11
+ build/
12
+ dist/
13
+
14
+ # Editor / backup cruft
15
+ *.OLD
16
+
17
+ # Local feedback / scratch notes — never commit (they'd leak: top-level, not
18
+ # under an EXCLUDE_PATHS dir, so publish-to-github.sh would NOT strip them).
19
+ specflo-feedback*
@@ -0,0 +1,74 @@
1
+ # Changelog
2
+
3
+ All notable changes to specflo are documented here. The format is based on
4
+ [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project follows
5
+ [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ The version is kept in sync across `version` in `pyproject.toml` and
8
+ `__version__` in `src/specflo/__init__.py`; `specflo --version` derives from the
9
+ latter. Release tags are of the form `vX.Y.Z`.
10
+
11
+ ## [0.2.0]
12
+
13
+ ### Added
14
+ - **`specflo skills` command group.** specflo now carries its 6 workflow skills
15
+ (brainstorm, execute, plan, research, shelve, spec) as bundled package data and
16
+ installs them into whatever agent harness is present (Claude Code, pi, Hermes,
17
+ opencode): `specflo skills install` / `status` / `update` / `uninstall`. Each
18
+ install is a plain copy carrying a specflo provenance stamp, honors
19
+ `--scope user|project` (default user) and `--harness`, and never clobbers a
20
+ locally-modified skill without `--force`. Powered by agentsquire, now a runtime
21
+ dependency (`agentsquire>=0.5.0`).
22
+ - **Startup stale-skills notice.** When installed skills have an update
23
+ available, any specflo command prints a single advisory line on stderr pointing
24
+ at `specflo skills update`. It is notice-only: it never prompts, never updates
25
+ anything, never writes stdout, and never changes the exit code, and it stays
26
+ silent for a symlinked live-edit dev install. Suppress it with `CI` or
27
+ `AGENTSQUIRE_NO_UPDATE_CHECK` set to any non-empty value.
28
+ - **`specflo --version`.** A top-level `--version` option prints the released
29
+ version (`specflo <X.Y.Z>`) and exits 0.
30
+
31
+ ### Changed
32
+ - **`click` is now a declared dependency** (`click>=8.1`). The CLI imports it
33
+ directly to catch click's control-flow exceptions; previously it relied on
34
+ typer and agentsquire to pull it in transitively. No behaviour change - the
35
+ same click was already being installed.
36
+
37
+ ## [0.1.1]
38
+
39
+ ### Added
40
+ - **Paste-ready memory snippet in `specflo guide`.** The guide output (and its
41
+ `--json` payload) now leads with a thin, version-less block you paste once into
42
+ an agent memory file (CLAUDE.md / AGENTS.md) so a cold agent discovers specflo
43
+ without being told. It points at `specflo guide` / `specflo status` rather than
44
+ embedding the command surface, so it never goes stale and never needs
45
+ re-committing on upgrade.
46
+
47
+ ### Changed
48
+ - **README rewrite.** Stronger intro pitch (why on-disk structure matters, the
49
+ local-model angle, multi-project/switching) plus a "point your agent at this
50
+ repo and ask it to install" path. README and CHANGELOG are now pure ASCII,
51
+ enforced by `tests/test_docs_ascii.py`.
52
+
53
+ ## [0.1.0]
54
+
55
+ Initial public release.
56
+
57
+ ### Added
58
+ - **Spec-driven pipeline CLI.** `specflo` drives a linear
59
+ **brainstorm -> spec -> plan -> execute** loop over markdown artifacts on disk,
60
+ with active-project tracking and switch-anytime support (monorepo-friendly).
61
+ - **Orientation & scaffolding.** `specflo guide` (runs cold, before `init`),
62
+ `specflo init`, `new`, `list`, `switch`, `status`.
63
+ - **Artifact commands.** `brainstorm start` + `decision add`; `spec start` +
64
+ `requirement add`; `plan start` + `task add`/`start`/`done`/`block`/`reopen`/
65
+ `list`/`show`; per-phase `validate` (brainstorm, spec, plan, execute) with
66
+ bidirectional REQ<->task coverage and acyclic dependency checks.
67
+ - **Phase transitions.** `advance` (validate-then-move) and `reopen` (reversible
68
+ phases), plus `checkpoint` for a resume prompt refreshed after every
69
+ state-mutating command.
70
+ - **Session-start integration.** `specflo hook reseed` / `hook print [--install]`
71
+ wire a clear-and-continue bridge into Claude Code's `SessionStart` hook,
72
+ re-grounding an agent from on-disk state after `/clear` or resume.
73
+ - **Skills.** `brainstorm`, `spec`, `plan`, `execute`, and a `research` subagent
74
+ that drive each phase over the CLI.