Skip to content

feat: add policies to all example files#2

Merged
fyodoriv merged 1 commit into
mainfrom
feat/example-policies
Apr 5, 2026
Merged

feat: add policies to all example files#2
fyodoriv merged 1 commit into
mainfrom
feat/example-policies

Conversation

@fyodoriv
Copy link
Copy Markdown
Collaborator

@fyodoriv fyodoriv commented Apr 5, 2026

Summary

Follow-up to the policies spec PR. Every example file now demonstrates context-appropriate policies so users see the feature in action regardless of which example they look at.

Examples updated (7 files)

Example Policies
cli-tool Error messages must be clear + exit non-zero; new flags need help + tests
mobile-app Test on both platforms; native module changes require clean rebuilds
monorepo Build from root to verify; use workspace:* for shared deps
multi-agent Push claims immediately; avoid files listed in other agents' tasks
python-api Run pytest + mypy; DB changes need reversible migrations
rust-cli No panics in release; run clippy + test
web-app Middleware changes need integration tests; no hardcoded secrets

Also

  • Made TaskFile.policies optional for backward compatibility — existing code constructing TaskFile objects doesn't need updating
  • All 41 parser tests pass, all 4 packages build

Generated with Devin

Every example now demonstrates context-appropriate policies:
- cli-tool: error messages, flag testing
- mobile-app: dual-platform testing, native rebuilds
- monorepo: root build verification, workspace versions
- multi-agent: immediate claim pushing, file conflict avoidance
- python-api: pytest+mypy, reversible migrations
- rust-cli: no panics, clippy+test
- web-app: integration tests, no hardcoded secrets

Also make TaskFile.policies optional for backward compatibility —
existing code constructing TaskFile objects won't need updating.

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@fyodoriv fyodoriv merged commit bfee56b into main Apr 5, 2026
@fyodoriv fyodoriv deleted the feat/example-policies branch April 5, 2026 00:28
fyodoriv added a commit that referenced this pull request May 3, 2026
Mid-grind refill #2 at 12:50 EDT. Sessions 1-2 shipped 12 PRs in
~80 min, draining the queue to 1 unblocked task. Restocking with
4 tasks heavier on simplification this round.

P1:
- cli-simplify-lint-entrypoints — two lint entry points exist
  (tasks lint, tasks-lint binary). Pick one canonical surface and
  delete or alias the other.

P2:
- cli-help-text-parallel-structure — every command's description
  should be verb-first, noun-second, <=60 chars; pin with a
  regex-based CLI test.
- user-stories-sync-walkthrough — story 06 needs an end-to-end
  walkthrough (gh issue -> sync -> pick -> close -> idempotent
  re-sync) using the unified tasks sync command.
- user-stories-crosslink-audit — verify every cross-story
  reference still resolves after the recent restructuring.

Each task is sized for one PR. Doc batches respect Rule 9.

---
_🤖 Written by an agent, not Fyodor. Ping me if this looks off._
fyodoriv added a commit that referenced this pull request May 3, 2026
…#68)

closes user-stories-crosslink-audit

After the recent additions (story 08, runnable demos, install table,
worked example) several stories reference each other. Audit walked
every Markdown link in docs/user-stories/, README.md, packages/cli/
README.md, packages/mcp/README.md, and the package READMEs and
verified each path + anchor against the live tree.

Findings:

  Working: every cross-story link in docs/user-stories/ + README.md
  resolves to an existing file and a real heading slug. The
  Auto-detect anchor cross-link added in PR #62 still works; the
  story 06/07 anchor links in user-stories/README.md still work.

  Broken paths fixed:
    packages/mcp/README.md:81  [MIT](../LICENSE)   -> ../../LICENSE
    packages/lint/README.md:102 [MIT](../LICENSE)  -> ../../LICENSE
    Both pointed at packages/LICENSE which doesn't exist;
    LICENSE lives at the repo root, two dirs up.

  Inverse / back-links added:
    Story 02 metadata table now links **ID** + **Blocked by** to
    Story 04 (the source of truth for blocker ordering) and **Tags**
    to Story 05 #tag-based-routing (the routing contract). The
    table footer points at Story 08 for the agent-managed fields
    (**Blocked**, **Research**, **Last-enriched**, **Parent**) and
    project-level policies — closing the loop that those fields
    are defined in detail elsewhere.

    Story 04 #2 ("Tag preference") was a plain-prose "see Story 05"
    sentence; now a Markdown hyperlink to Story 05 #tag-based-
    routing so a reader can jump to the routing contract directly.

Verified by a Python anchor-checker that walks every Markdown
link in the audited files and asserts:
  - the path component resolves to an existing file
  - the anchor matches a heading slug or {#explicit-anchor} in
    the target

Output: "All cross-links resolve cleanly!" on the post-fix tree.

Verified: npm run lint, npx -y @tasks-md/lint TASKS.md — 0 errors.

---
_🤖 Written by an agent, not Fyodor. Ping me if this looks off._
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