Skip to content

feat: v8 — flow-based delivery system with consistency audit fixes#126

Merged
nullhack merged 13 commits intomainfrom
v8_release
May 1, 2026
Merged

feat: v8 — flow-based delivery system with consistency audit fixes#126
nullhack merged 13 commits intomainfrom
v8_release

Conversation

@nullhack
Copy link
Copy Markdown
Owner

Summary

  • Flow-driven architecture: Replace monolithic agents/skills with hierarchical state-machine flows (main → discovery → architecture → feature-development → planning/development/delivery/post-mortem)
  • Identity-only agents: 5 agents (PO, DE, SA, R, SE) matching flow owners — no routing, artifacts, or skill lists in agent files
  • Procedure-only skills: 26 skills mapped to flow states — no identity or routing logic
  • Progressive knowledge: Split/rewrote 15+ knowledge files with #key-takeaways/#concepts fragments
  • Consistency audit fixes: pyproject.toml (validate-flows, removed deleted scripts, deduped deps), AGENTS.md (template instance table), .gitignore (literal \n fix), template-config.yaml (removed non-existent Docker refs), generate-flowviz-data.py (9 lint fixes), select-feature/SKILL.md (stale path), opencode.json (SE agent entry)
  • Delivery flow v3: publish-decision replaces batch-decision; simplified exits; removed main-flow self-loop
  • Flowviz: Interactive D3+dagre visualization for all 10 flows

Key Changes

Flows

  • New hierarchical flow system: main-flow → discovery-flow, architecture-flow, feature-development-flow (with planning/development/delivery/post-mortem subflows)
  • delivery-flow v3: publish-decision state, next-feature exit (no accumulate/continue split)
  • main-flow v4: removed next-feature self-loop (feature-development-flow handles it internally)

Agents

  • Recreated software-engineer.md (identity-only per design principles)
  • Added SE subagent entry to opencode.json
  • All 5 flow owners (PO, DE, SA, R, SE) now have matching agent + config entries

Templates & Conventions

  • AGENTS.md: Added Template Instances table mapping 11 templates to their output paths
  • Feature files convention: docs/features/<name>/<name>.feature (no in-progress/completed subdirs)
  • select-feature/SKILL.md: Fixed stale docs/features/in-progress/ reference

Cleanup

  • Deleted stale docs (old research/, features/completed/, ADRs, glossary.md, product-definition.md, system.md)
  • Deleted 11 obsolete scripts (assign_ids, check_adrs, check_version, etc.)
  • Deleted FLOW.md, WORK.md (replaced by .flowr/flows/)

nullhack added 13 commits April 26, 2026 05:43
…stem

- Replace static FLOW.md/WORK.md with YAML flow definitions in docs/flows/
- Add .flowception/ for session state tracking (gitignored)
- Extract knowledge from skills into .opencode/knowledge/ wikilink system
- Add create-knowledge skill for knowledge management
- Add docs/flows/ with feature-flow, scope-cycle, arch-cycle, tdd-cycle YAMLs
- Add scripts/check_knowledge.py for knowledge validation
- Add docs/assets/workflow.svg visual asset
- Update all skills to reference knowledge via wikilinks instead of inline content
- Update AGENTS.md to reflect new workflow structure
- Simplify FLOW.md and WORK.md to redirects
- Add version, exits, attrs to all flow YAML files
- Remove type field (subflow implied by flow: presence)
- Remove state-level requires/params/agent (moved to when/attrs)
- Move agent assignments to flow-level attrs.agents mapping
- Add flow-version constraints to subflow references
- Convert requires (state-level) to when (transition-level) guards
- Update flow skill to v3.0 with v1 format rules
- Update state-machine knowledge with v1 spec
…files

Move change tracking from centralized docs/discovery.md into a ## Changes
section at the bottom of each .feature file. The Changes table uses three
columns (Session, Q-IDs, Change) and is append-only per session.

- Delete docs/discovery.md and discovery.md.template
- Add ## Changes section to feature.md.template
- Migrate existing cli-entrypoint data to ## Changes
- Update all references in AGENTS.md, define-scope, run-session,
  product-owner, update-docs, verify skills
- Remove Discovery doc card from update_index_html.py and index.html
The Gherkin parser silently drops content after the last Rule: block.
Move ## Changes to the description area (before Rule: blocks) alongside
Status, Rules (Business), and Constraints.
…cally

- Remove pytest-beehave[html] from pyproject.toml dev deps
- Remove [tool.beehave] config section
- Remove -p no:beehave from test-build command
- Reimplement assign_ids.py without pytest-beehave import:
  generates 8-char hex IDs for untagged Examples, writes them
  into .feature files, verifies global uniqueness
- Add deprecated marker skip hook to tests/conftest.py
- Remove pytest_html_report_title hook (was pytest-beehave provided)
- Update AGENTS.md stub generation and deprecated marker docs
… cards

- Create docs/product-definition.md with template structure (What IS/IS
  NOT, Why, Users, Out of Scope, Delivery Order) matching flowr pattern
- Trim README.md: remove delivery cycle, living documentation views, and
  development standards sections; add documentation links section
- Add Product Definition and Scope Journal doc cards to
  scripts/update_index_html.py; regenerate docs/index.html
- Add Product definition line to AGENTS.md header; add product-definition.md
  to filesystem structure
- Fix lint issues in scripts/assign_ids.py (secrets instead of random,
  simplify tag detection logic)
Change flow-version to flow_version (underscore) and add .yaml extension
to subflow references so flowr's loader can resolve them correctly.
Add flowr>=0.3 as dev dependency for flow YAML validation.
Add validate-flows task that validates all 4 .flowr/ YAML files.
Add validate-flows to AGENTS.md development commands.
…ions/ subdirs

Move flow definitions to .flowr/flows/ and session files to
.flowr/sessions/session.yaml. Delete .flowception/ directory.

- Move 4 flow YAML files from .flowr/ to .flowr/flows/
- Move session file to .flowr/sessions/session.yaml
- Update subflow references in feature-flow.yaml to flows/ prefix
- Update all 50+ references across 14 files
- Update .gitignore, validate-flows task, AGENTS.md filesystem structure
- Single session file pattern (overwrite on each transition)
…ut attrs, and real flowr commands

- Flow-based delivery: 12 flow YAMLs with in/out attrs, 41 skills mapped to states
- Research library: 71+ research files in v8 template format with verified citations
- Flow attrs: simplified from input/edited/output to in/out across all flows and skills
- Artifact naming: descriptive runtime names (typed_source_stubs, test_skeletons, etc.)
- Two-phase stubs: SA creates typed stubs + test stubs per feature in planning flow
- Test location: tests/features/ for @id BDD tests, tests/unit/ for coverage tests
- Semantic depth: @id tests must exercise entry point described in AC
- Verify-traceability: 1-1 @id-to-test correspondence check
- Spec compliance: define-done verifies technical design interfaces exist in implementation
- MoSCoW prevention: internal triage only, must NOT appear as Gherkin tags
- Minimum stub principle: Protocol + raise NotImplementedError, no docstrings/type hints
- Reviewer role: MUST NOT modify files, 'minor' is not a pass
- Spec doc protection: read-only during TDD, gaps flagged in output notes
- On-demand reading: in artifacts read selectively, not eagerly
- Real flowr commands: AGENTS.md uses python -m flowr check/next/transition
- Generic exit steps: skills say 'advance with evidence' not hardcoded transitions
- Owner dispatch: promoted to step 2 in Session Protocol
- Knowledge: workflow/flowr-operations, full loading for review skills
- Terminology: 'cosmetic' → 'conventions', 'Completion Phase' → 'Conventions Phase'
- Flowviz moved to .flowr/viz/, removed scripts/ directory
- Design system: design agent, branding flow, visual harmony, colour theory knowledge
- Setup project flow: Setup Agent, 4 setup skills, template config
- Branding: identity design, colour systems, project assets knowledge files
- WSJF: Dependency=0 only, ties broken by Value
- Architecture: assessment conditions fixed, ATAM, C4, Team Topologies, Hexagonal research
- Design: Wertheimer, Biederman, Kare, Müller-Brockmann, Lupton, Hicks research
- Psychology: Miller 7±2, Flanagan CIT, Gollwitzer implementation intentions research
- Template: feature test stub, CHANGELOG, branding, ADR, interview note, post-mortem
- Versioning: semver v8.0.0 in pyproject.toml, +YYYYMMDD in git tags
@nullhack nullhack merged commit c12eb2b into main May 1, 2026
2 checks passed
@nullhack nullhack deleted the v8_release branch May 1, 2026 16:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant