Skip to content

Commit 2909a32

Browse files
alanbldclaude
andcommitted
docs: update playground to v0.10.0 with Temporal Regimes syntax
- Update version numbers in index.html, syntax.html, package.json - Add Constraints section documenting all 6 constraint types - Add Temporal Regimes section (RFC-0012) with work/event/deadline - Update Milestone section with regime and constraint attributes - Add regime: keyword to Task section example Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent d524f17 commit 2909a32

File tree

3 files changed

+70
-3
lines changed

3 files changed

+70
-3
lines changed

playground/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ <h1>utf8proj <span class="badge">Playground</span></h1>
108108
<span id="schedule-info"></span>
109109
</div>
110110
<div class="status-right">
111-
<span class="version">v0.9.0</span>
111+
<span class="version">v0.10.0</span>
112112
<span class="separator">|</span>
113113
<a href="syntax.html" target="_blank" title="Syntax Reference">Syntax</a>
114114
<span class="separator">|</span>

playground/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "utf8proj-playground",
3-
"version": "0.9.1",
3+
"version": "0.10.0",
44
"description": "Browser-based playground for utf8proj project scheduling",
55
"type": "module",
66
"scripts": {

playground/syntax.html

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@
189189
</head>
190190
<body>
191191
<header>
192-
<h1>utf8proj Syntax Reference <span class="version">v0.2.0</span></h1>
192+
<h1>utf8proj Syntax Reference <span class="version">v0.10.0</span></h1>
193193
<p>Native DSL grammar for project scheduling. File extension: <code>.proj</code></p>
194194
<p><a href="index.html">&larr; Back to Playground</a> | <a href="https://github.com/alanbld/utf8proj">GitHub Repository</a></p>
195195
</header>
@@ -203,6 +203,8 @@ <h2>Contents</h2>
203203
<li><a href="#task">Task</a></li>
204204
<li><a href="#dependencies">Dependencies</a></li>
205205
<li><a href="#milestone">Milestone</a></li>
206+
<li><a href="#constraints">Constraints</a></li>
207+
<li><a href="#regimes">Temporal Regimes</a></li>
206208
<li><a href="#duration">Duration &amp; Dates</a></li>
207209
</ul>
208210
</nav>
@@ -278,6 +280,7 @@ <h2>Task Declaration</h2>
278280
<span class="keyword">priority:</span> <span class="number">800</span> <span class="comment"># higher = scheduled first</span>
279281
<span class="keyword">complete:</span> <span class="number">50</span>% <span class="comment"># progress tracking</span>
280282
<span class="keyword">remaining:</span> <span class="number">3d</span> <span class="comment"># explicit remaining work</span>
283+
<span class="keyword">regime:</span> work <span class="comment"># temporal regime (work/event/deadline)</span>
281284
<span class="keyword">summary:</span> <span class="string">"Impl"</span> <span class="comment"># short display name</span>
282285
<span class="keyword">note:</span> <span class="string">"Detailed notes"</span>
283286
<span class="keyword">tag:</span> backend, critical
@@ -332,10 +335,74 @@ <h2>Milestone Declaration</h2>
332335
<p>Zero-duration markers for key dates.</p>
333336
<pre><span class="keyword">milestone</span> go_live <span class="string">"Go-Live Date"</span> {
334337
<span class="keyword">depends:</span> testing, documentation
338+
<span class="keyword">regime:</span> event <span class="comment"># can be scheduled on any day</span>
339+
<span class="keyword">start_no_earlier_than:</span> <span class="number">2026-06-01</span> <span class="comment"># date constraint</span>
335340
<span class="keyword">payment:</span> <span class="number">50000</span>
336341
<span class="keyword">note:</span> <span class="string">"Production deployment"</span>
337342
}</pre>
338343
<p>Alternatively, set <code>milestone: true</code> on any task.</p>
344+
<table>
345+
<tr><th>Attribute</th><th>Description</th></tr>
346+
<tr><td><code>depends</code></td><td>Dependencies on tasks or milestones</td></tr>
347+
<tr><td><code>regime</code></td><td>Temporal regime: <code>work</code>, <code>event</code>, or <code>deadline</code></td></tr>
348+
<tr><td><code>start_no_earlier_than</code></td><td>Earliest date the milestone can occur</td></tr>
349+
<tr><td><code>finish_no_later_than</code></td><td>Latest date the milestone can occur</td></tr>
350+
<tr><td><code>payment</code></td><td>Payment amount triggered by milestone</td></tr>
351+
<tr><td><code>note</code></td><td>Description or notes</td></tr>
352+
</table>
353+
</section>
354+
355+
<section id="constraints">
356+
<h2>Task Constraints</h2>
357+
<p>Constrain when tasks can be scheduled.</p>
358+
<pre><span class="keyword">task</span> deploy <span class="string">"Deployment"</span> {
359+
<span class="keyword">effort:</span> <span class="number">2d</span>
360+
<span class="keyword">start_no_earlier_than:</span> <span class="number">2026-03-01</span>
361+
<span class="keyword">finish_no_later_than:</span> <span class="number">2026-03-15</span>
362+
}</pre>
363+
<table>
364+
<tr><th>Constraint</th><th>Meaning</th></tr>
365+
<tr><td><code>must_start_on</code></td><td>Task must start on exact date</td></tr>
366+
<tr><td><code>must_finish_on</code></td><td>Task must finish on exact date</td></tr>
367+
<tr><td><code>start_no_earlier_than</code></td><td>Task cannot start before date</td></tr>
368+
<tr><td><code>start_no_later_than</code></td><td>Task must start by date</td></tr>
369+
<tr><td><code>finish_no_earlier_than</code></td><td>Task cannot finish before date</td></tr>
370+
<tr><td><code>finish_no_later_than</code></td><td>Task must finish by date</td></tr>
371+
</table>
372+
</section>
373+
374+
<section id="regimes">
375+
<h2>Temporal Regimes</h2>
376+
<p>Control how tasks interact with calendars (RFC-0012).</p>
377+
<pre><span class="comment"># Effort-bearing task: respects working days</span>
378+
<span class="keyword">task</span> develop <span class="string">"Development"</span> {
379+
<span class="keyword">regime:</span> work
380+
<span class="keyword">effort:</span> <span class="number">10d</span>
381+
<span class="keyword">assign:</span> dev
382+
}
383+
384+
<span class="comment"># Event: can occur on any calendar day (including weekends)</span>
385+
<span class="keyword">milestone</span> release <span class="string">"Product Release"</span> {
386+
<span class="keyword">regime:</span> event
387+
<span class="keyword">depends:</span> develop
388+
<span class="keyword">start_no_earlier_than:</span> <span class="number">2026-06-15</span>
389+
}
390+
391+
<span class="comment"># Deadline: contractual/regulatory date</span>
392+
<span class="keyword">milestone</span> compliance <span class="string">"Compliance Deadline"</span> {
393+
<span class="keyword">regime:</span> deadline
394+
<span class="keyword">finish_no_later_than:</span> <span class="number">2026-06-30</span>
395+
}</pre>
396+
<table>
397+
<tr><th>Regime</th><th>Calendar Behavior</th><th>Use Case</th></tr>
398+
<tr><td><code>work</code></td><td>Respects working days</td><td>Effort-bearing tasks (default)</td></tr>
399+
<tr><td><code>event</code></td><td>Any calendar day</td><td>Releases, launches, go-lives</td></tr>
400+
<tr><td><code>deadline</code></td><td>Exact date required</td><td>Contractual, regulatory dates</td></tr>
401+
</table>
402+
<div class="note">
403+
<strong>Default:</strong> All tasks and milestones use <code>regime: work</code> unless specified.<br>
404+
<strong>Event regime</strong> allows scheduling on weekends/holidays when constraints require it.
405+
</div>
339406
</section>
340407

341408
<section id="duration">

0 commit comments

Comments
 (0)