Add: Agent Task Skills + Merge Protection. - #248
Conversation
Agents: Task Master, Result Orchestrator, Milestone Tracker, Blocker Resolver, Handoff Coordinator, Summary Reporter -- runnable modules under knowledge/agents/ with tests (40 passing). Protect: .gitattributes merge strategy, CODEOWNERS, merge_rules.json. Policy: additive only -- no file replacement, history preserved. Note: protect-merge.yml is delivered separately -- the GitHub App for this repo lacks the workflows permission, and a push touching .github/workflows/ is rejected in full at the tree level.
knowledge/sync_knowledge_index.py walks knowledge/**/*.md and requires title, description, tags, doc_kind, status, owner, last_reviewed. The six new SKILL.md files had none, so the repo's own index gate failed on them. With front matter added the gate passes: 12 notes, 200 records. Tests unchanged: 40 passed.
| """Summary Reporter -- executive updates from structured task state.""" | ||
| from __future__ import annotations | ||
|
|
||
| from dataclasses import dataclass, field |
| """Blocker Resolver -- obstacle classification and recovery routing.""" | ||
| from __future__ import annotations | ||
|
|
||
| from dataclasses import dataclass, field |
| from __future__ import annotations | ||
|
|
||
| from dataclasses import dataclass, field | ||
| from typing import Dict, List, Optional, Sequence |
| import sys | ||
| from pathlib import Path | ||
|
|
||
| import pytest |
🛡️ Manual install:
|
zyntromedia
left a comment
There was a problem hiding this comment.
14 September 2026 13:24PM.
🚀 Agent Task Skills + Merge Protection
Additive-only PR. No existing file is modified or deleted (verified:
git diff --cached --name-statusreturns additions only).🧠 Agent Task Skills —
knowledge/agents/Six composable, dependency-free skills covering a unit of work end to end. Each ships as
SKILL.md(contract) +main.py(logic) +tests/(pytest), with a machine-readablemanifest.ymlindex.task-masterTaskMaster.plan()result-orchestratorResultOrchestrator.aggregate()milestone-trackerMilestoneTracker.health()blocker-resolverBlockerResolver.triage()handoff-coordinatorHandoffCoordinator.receipt()summary-reporterSummaryReporter.report()Tests: 40 passed (
python -m pytest knowledge/agents -q)Design rules: deterministic (no clocks, no randomness); explicit failure (a cycle, an unknown dependency, an unknown status, or an incomplete handoff is rejected, never tolerated); no hidden state.
🛡️ Merge Protection
.gitattributes—merge=unionfor documentation so two branches appending to the same note cannot conflict; strictmerge=textfor code;merge=binary -difffor lock files; normalised LF endings; binary asset handling..github/CODEOWNERS— review routing forknowledge/**,.github/workflows/**,security/**,deliverables/**, and app code. Paths changed by this PR are owned by@ZyntroAI..github/merge_rules.json— the merge policy as machine-readable config:MERGE_COMMITdefault, squash/rebase disallowed onmain, 2 approvals, stale-review dismissal, required checks, protected paths, additivity rules, and delete protection.protect-merge.yml— the CI enforcement workflow is deliberately excluded. Thefig-ai-agentGitHub App on this repo does not hold theworkflowspermission, and GitHub rejects an entire push at the tree level if any commit touches.github/workflows/. The file is delivered separately as a drop-in for manual installation.merge_rules.jsondocuments the checks it declares (protect-merge,CI,secret-scan); the workflow itself must be added before those checks can gate.mainasknowledge/supabase-*.md, merged 2026-09-13 with front matter, sha256 hashes,knowledge/manifest.yml, and a README index. Re-adding them would create duplicates.CONTRIBUTING.md/.github/PULL_REQUEST_TEMPLATE.md— specified in the brief but already present (212 and 60 lines respectively). Shipping the brief's versions would have overwritten them, which contradicts this PR's own no-replacement policy.✅ Verification
mainis untouched.manifest.ymlandmerge_rules.jsonparse cleanly (YAML/JSON validated).