Skip to content

Commit fbd4bf5

Browse files
author
semantic-release
committed
chore(release): v0.4.0
1 parent b852c96 commit fbd4bf5

File tree

3 files changed

+170
-3
lines changed

3 files changed

+170
-3
lines changed

CHANGELOG.md

Lines changed: 168 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,174 @@
1-
<!-- CHANGELOG.md -->
21
# CHANGELOG
32

43

4+
## v0.4.0 (2026-03-14)
5+
6+
### Chores
7+
8+
- **scripts**: Refactor check-headers.py to extract logging module
9+
([`7d9fd76`](https://github.com/tracer-mohist/workflow-as-list/commit/7d9fd76ab420b48c400aa6cf3af9ce74bde67418))
10+
11+
- Extract Log class to scripts/logging.py (42 lines) - Reduce check-headers.py from 286 to 239 lines
12+
- Add headers to 23 files via check-headers.py run - Passes check-code-quality.py limit (256
13+
lines)
14+
15+
Why: - Modularity: logging reusable across scripts - Maintainability: smaller, focused files -
16+
Consistency: all scripts under 256 line limit
17+
18+
- **scripts**: Remove emoji from logging output
19+
([`5b0e9eb`](https://github.com/tracer-mohist/workflow-as-list/commit/5b0e9ebfde240457130471a6c594cc524bba63a9))
20+
21+
- Replace emoji with ASCII markers in logging.py - ✓ → [OK], ✗ → [FAIL], ⚠ → [WARN], → → >> - Add
22+
prompt-engineering compliance note - REFERENCE: docs/prompt-engineering/README.md (no emoji in
23+
content)
24+
25+
Why: - Cross-platform consistency (emoji rendering varies) - Tool call pollution prevention -
26+
Encoding compatibility
27+
28+
- **workflow**: Add main.workflow.list (minimal entry point)
29+
([`dfb830d`](https://github.com/tracer-mohist/workflow-as-list/commit/dfb830d2ec6e097459d505b0e92ba5b59cb07f4a))
30+
31+
Design principles: - Design by Contract (pre/post/invariant documented) - Unix comment style (WHY
32+
not WHAT) - YAGNI (no meta-layer, no auto-learning yet) - KISS (20 steps, 3 decision points)
33+
34+
Changes: - Add workflow/main.workflow.list (minimal viable) - Remove workflow/commit.workflow.list
35+
(not needed now)
36+
37+
Why: - Need entry point for self-hosting - Complexity added when needed, not before - Comments
38+
explain rationale, not mechanics
39+
40+
### Documentation
41+
42+
- Add Agent integration guide ([#33](https://github.com/tracer-mohist/workflow-as-list/pull/33),
43+
[`9520536`](https://github.com/tracer-mohist/workflow-as-list/commit/952053602619cea922380e3686bb05a3ca5373b5))
44+
45+
- Create docs/AGENT-INTEGRATION.md - Document progressive reading workflow - CLI integration
46+
examples - API integration examples - Agent workflow pseudocode - Output storage guide - Best
47+
practices and error handling
48+
49+
Apply prompt-engineering framework: - Layer 1: Simple English, ASCII - Layer 2: Lists over tables,
50+
no **, no emoji - Layer 6: LABEL: annotation format (NOTE:, REFERENCE:, TIP:)
51+
52+
Closes: #33
53+
54+
- Add language name (WorkflowAsList DSL)
55+
([`c12bf09`](https://github.com/tracer-mohist/workflow-as-list/commit/c12bf094eb94dbd3c5fdf6b7db4279c5f785e940))
56+
57+
- README.md: Add language name and file extension - SYNTAX.md: Add language name and file extension
58+
- No abbreviations (follows 'no shorthand' principle)
59+
60+
Why: - Clear language identity - Consistent naming across docs - Avoids confusion (WAL has other
61+
meanings) - File extension .workflow.list is descriptive
62+
63+
- Refactor READMEs as functor definitions
64+
([`6c0cc74`](https://github.com/tracer-mohist/workflow-as-list/commit/6c0cc7421573ae224a0993f59585e262f682e300))
65+
66+
- Remove directory tree enumeration (lazy evaluation) - Add naming rules (path/action decomposition)
67+
- Add constraints (what must be true) - Add query commands (ls -R for structure)
68+
69+
Why: - README is a functor (mapping rules), not a cache - Enumeration becomes stale (maintenance
70+
debt) - Rules are stable (zero maintenance)
71+
72+
examples/README.md: 179 → 52 lines (-127) workflow/README.md: 178 → 47 lines (-131)
73+
74+
- Simplify README.md (point to live docs)
75+
([`ae96bb6`](https://github.com/tracer-mohist/workflow-as-list/commit/ae96bb63b57df2afcd38b76280f92914ef092602))
76+
77+
- Remove CLI Commands list (point to workflow --help) - Remove Server API list (point to /docs) -
78+
Remove Repository Structure tree (ls is better) - Add Quick Start section (Install + Explore +
79+
Write) - Add Core Concept section (Progressive Reading) - Reduce from ~4400 to ~1800 bytes (60%
80+
reduction)
81+
82+
Why: - Live docs (--help, /docs) never go stale - README teaches how to explore, not what exists -
83+
Follows intermediate layer principle (equivalent substitution) - Follows prompt-engineering
84+
framework (lists, no **, no emoji)
85+
86+
Result: - 2-3 minute read time - Long-term maintainable - High readability
87+
88+
- Update README.md (pipx install, file structure, remove license)
89+
([`3519d1a`](https://github.com/tracer-mohist/workflow-as-list/commit/3519d1aa7cc7e0ad9366130259db3800529b0043))
90+
91+
- Update Installation section: - pipx for users (GitHub Releases) - uv for contributors
92+
(development) - Remove License section (LICENSE file exists) - Add Repository Structure section
93+
(file navigation) - Verify API and CLI lists match code
94+
95+
Why: - pipx is simpler for end users - Clear separation: users vs contributors - File structure
96+
helps navigation - DRY principle (no duplicate license)
97+
98+
Closes: #38
99+
100+
- Update README.md with progressive reading model (#25, #29)
101+
([`64d04a7`](https://github.com/tracer-mohist/workflow-as-list/commit/64d04a7ccfd2638103bb5caf5b6610324c2219de))
102+
103+
- Add execution model section (progressive reading metaphor) - Update CLI commands (exec read/next,
104+
remove serve) - Add Server API reference - Update directory structure - Apply prompt-engineering
105+
framework: - Layer 1: Simple English, ASCII - Layer 2: Lists over tables, no **, no emoji - Layer
106+
6: LABEL: annotation format (NOTE:, REFERENCE:, TIP:)
107+
108+
Closes: #25, #29
109+
110+
- **examples**: Add README.md with design philosophy
111+
([`e1b7b4a`](https://github.com/tracer-mohist/workflow-as-list/commit/e1b7b4a2c2523b4441b69903d06af8ec2fe3b8a7))
112+
113+
- Document naming convention (domain/action.workflow.list) - Explain layer separation (examples vs
114+
workflow) - Record bootstrap principle and progressive design - REFERENCE: memory/2026-03-13.md
115+
(naming discussion)
116+
117+
Why: - Examples need clear guidance for users - Design decisions should be documented - Future
118+
contributors need context
119+
120+
- **workflow**: Add README.md explaining self-hosted workflows
121+
([`315b09a`](https://github.com/tracer-mohist/workflow-as-list/commit/315b09a637a6873ca35bcf33d158e04e12565e1f))
122+
123+
- Document purpose (manage workflow-as-list development) - Explain why self-hosting (validation,
124+
feedback, trust) - Describe relationship with examples/ - List current and TODO workflows
125+
126+
Why: - workflow/ needs clear documentation - Distinguish from examples/ (self vs generic) - Future
127+
contributors need context
128+
129+
- **workflow**: Simplify README.md
130+
([`763bd35`](https://github.com/tracer-mohist/workflow-as-list/commit/763bd35fa6123320aeee3bf612b4fcff92e24705))
131+
132+
- Remove detailed directory structure (hard to maintain) - Remove TODO list (becomes stale) - Keep
133+
only core purpose and why - Focus on principles, not instructions
134+
135+
Why: - Less maintenance burden - Core message stays relevant longer
136+
137+
### Features
138+
139+
- **workflow**: Add decision-capture workflow (Issue vs Docs routing)
140+
([`73e4b60`](https://github.com/tracer-mohist/workflow-as-list/commit/73e4b607c3ac82f54984d5304027a0633e0420c1))
141+
142+
Philosophy: - Issue = Temporary decisions (short lifetime, project-specific) - Docs = Permanent
143+
rules (long lifetime, general principles)
144+
145+
Contract: - Pre: Have information/decision to record - Post: Information stored in appropriate place
146+
- Invariant: No decision lost, no docs polluted with tmp
147+
148+
Workflow: 1. Classify by lifetime and scope 2. Route to Issue (temporary) or Docs (permanent) 3.
149+
Cross-reference for traceability 4. Verify recording is complete
150+
151+
Why: - Temporary decisions need structured tracking (issues) - Permanent rules need stable storage
152+
(docs) - Prevents docs clutter and decision loss
153+
154+
Part of: Traceflux bootstrap plan (.tmp/traceflux-plan.md)
155+
156+
### Refactoring
157+
158+
- Move decision-capture to examples/decision/route (generic template)
159+
([`05c348c`](https://github.com/tracer-mohist/workflow-as-list/commit/05c348c7c05fc846968ddf7f3258d4f3792379a7))
160+
161+
- Moved from workflow/ to examples/decision/route.workflow.list - Updated to be project-agnostic
162+
(removes workflow-as-list specific assumptions) - Enables reuse across projects via import: URL
163+
164+
NOTE: workflow/ is for project-specific workflows, examples/ is for reusable templates
165+
166+
### Testing
167+
168+
- Add integration and E2E tests (#14, #15)
169+
([`4bb9e17`](https://github.com/tracer-mohist/workflow-as-list/commit/4bb9e1742ec4dac0e83158e74c4f5c6d4da0f1d1))
170+
171+
5172
## v0.3.0 (2026-03-13)
6173

7174
### Features

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# pyproject.toml
22
[project]
33
name = "workflow-as-list"
4-
version = "0.3.0"
4+
version = "0.4.0"
55
description = "A thinking constraint DSL for structuring LLM interactions"
66
requires-python = ">=3.12"
77
dependencies = [

src/workflow_as_list/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# src/workflow_as_list/__init__.py
22
"""WorkflowAsList - A thinking constraint DSL for structuring LLM interactions."""
33

4-
__version__ = "0.3.0"
4+
__version__ = "0.4.0"

0 commit comments

Comments
 (0)