Repository navigation
Releases
v0.23.0 — Batch bugfix orchestrator + spawnable harness agents
Added — Batch bugfix orchestrator
-
bug-fix-orchestrator: leader điều phối batch bug từ Jira (JQL, board, sprint, danh sách key). Lấy spec Confluence, Figma node và docs tham chiếu của repo một lần; scout codebase một lần và lưu cache dùng lại giữa các batch; phân loạikind(code/ui/content/spec-gap/needs-info/…) và mức verify (none/unit/preview/device); gom group theo root cause, xếp lane worktree song song (mỗi lane 1 PR gom nhiều bug); bug cần thiết bị vào hàng chờ, chỉ chạy khi thiết bị rảnh. Stateplans/bugfix-batch-<id>/quascripts/bfo_state.py(kiểm plan cơ học, giới hạn số lane, hàng chờ thiết bị), resume được. -
Agent
bug-scout(read-only, scout batch) vàbug-fixer(Architect + Coder, 1 lane → 1 PR, cũng là worker 1 bug củabug-note): agent native có frontmatter, nạp sẵn skill harness.bug-fixerbắt buộc đọc rule project, viếtfix-design.md(root cause ở layer nào, fix đặt ở đâu, vì sao) và không dùng các mẫu fix ngọn (delay né race, catch nuốt lỗi, guard UI, flag rời, logic trong Composable…). -
Agent
bug-reviewer(read-only): review độc lập mọi PR fix bug theo checklist A–J củacoding-reviewvà tiêu chí gốc/ngọn; PR củabug-fix-orchestratorvàbug-notegiữ draft tới khi APPROVE (tối đa 2 vòng sửa). -
bug-note(chuyển từ~/.claude/skills/vào harness): ghi bug liên tục trong chat, mỗi bug 1 worker nền fix trong worktree riêng rồi mở PR; bug chung file thì chờ hoặc stack PR. Sửa kèm: worker không dùnggit stash(stash dùng chung mọi worktree) mà commit WIP; tierT2-uiso preview với Figma bằngcompare-ui-board+ui-diff-reviewthay vìui-diff; khóa thiết bị không bị chiếm khi bug giữ khóa chưa xong, bug bị chặn chuyểnwaitingthay vì poll, thêmdevice-release. Worker giờ là agent harnessbug-fixerthay chogeneral-purpose.
Changed
bug --mode fix --parallelchuyển sangbug-fix-orchestrator; xoáskills/bug/references/mode-fix-parallel.md. Evidence validator + schema vẫn ởskills/bug/.bug-fix-orchestrator— leader chỉ điều phối: đọc code, tìm root cause, fix, review, chạy thiết bị và phân tích log/APK đều giao chobug-scout,bug-fixer,bug-reviewer,artemis-android; job thiết bị fail trả vềbug-fixercủa lane thay vì leader tự điều tra.bug-fix-orchestrator— spec verdict gate: Phase 3 so từng bug 1-1 với spec/Figma; chỉ fix bug cóspec_verdict=confirmedkèmspec_reftrích dẫn, bug còn nghi ngờ vàoconfirm-checklist.mddạngneeds-confirmmà không chặn lane khác.check-plankiểm cơ học các trường này.bug-fix-orchestrator— Jira status flow: In Progress khi lane bắt đầu, Resolved sau khi reviewer APPROVE và device pass, Reviewing khi PR head đã vào base branch; set assignee ở mọi transition.- 16 agent role có frontmatter (
architect,coder,orchestrator,tech-lead,qa,reviewer,ui-judge, …): trước đây file mở đầu bằng# Agent Rolenên Claude Code không đăng ký,subagent_type: architectlỗi. Giờ spawn trực tiếp được;reviewer,ui-judge,architectcó allowlist tool (read-only/không sửa code, vẫn tra KB).
Fixed
coding-orchestratorspawn agent không tồn tại (architect-mindset,implementer-mindset,qa-mindset,reviewer-mindset) → đổi thànharchitect,coder,qa,reviewer.
v0.22.0 — UI verification skills + skill dispatchers + KB MCP
Bản này gộp luôn [0.21.0], vì 0.21.0 chưa từng được tag hay release riêng.
Added — UI verification skills
ui-diff: so sánh UI theo mode. Modevideo-to-figmalấy danh sách màn từ Figma trước, sau đó tách frame từ video bằng ffmpeg, ghép từng cặp màn [actual|expected] và chấm điểm từng cặp.ui-diff-review: nhận xét diff, tự chấmmatch_score0-100 theo rubric và trả verdict pass/fail theo ngưỡng. Pass 2 crop/zoom từng component và đo màu vùng (sample_region.py). Kết quả ghi vàoresult.json.ui-fix-loop: vòng lặp chỉ ra bug UI → fix → render lại → compare lại, tối đa 3 vòng cho mỗi bug và chạy được nhiều bug song song. Có registry lưu link Figma, spec, source và preview FQN.compare-ui-board: ghép ≥ 2 ảnh UI vào một canvas có nhãn để so trực tiếp, xuất findings JSON.testing-preview: gate render Compose@Previewheadless qua Android CLI rồi so với design/spec. Module có product flavor dùng":app@<flavorBuildType>".
Added — Feature Store, SDK library và KB tooling
- Feature Store framework: agent
feature-store-architect, workflowagents/workflows/feature-store-flow.md(12 stage, greenfield + extract). - SDK library pipeline: agent
library-architect(agent thứ 15), workflowagents/workflows/library-flow.md(10 stage), Phase 0 brainstorm gate. - KB migration scripts:
scripts/migrate-knowledge-to-kb.py,update-knowledge-refs.py,rename-kb-scope.py,rename-kb-scope-nested.py. docs/knowledge-base-ops.md: hướng dẫn cài đặt, scope convention, workflow push/fetch/conflict.coding-database: thêm guide key-value storage, mặc định dùng Room.coding-compose,coding-featurevàcoding-vibecó thêm gatetesting-previewtùy chọn.
Changed — Skill gộp thành dispatcher theo mode
| Cũ | Mới |
|---|---|
bugfix, bug-triage |
/bug --mode fix|triage (+ --parallel cho batch bug, có evidence schema + validate_evidence.py) |
parallel-features |
/feature --parallel |
library-new, library-extract |
/library --mode new|extract |
feature-store-new, feature-store-extract |
/feature-store --mode new|extract |
AGENTS.md, CLAUDE.md, agents/* và skills/release đã được cập nhật routing theo bảng trên.
Changed — Knowledge chuyển sang KB MCP
- Đã bỏ
knowledge/,constitution/vàbriefs/khỏi repo. Nội dung chuyển sang repo team-knowledge, agent đọc khi chạy qua MCPteam-knowledge+basic-memory. - Các reference trong agent/skill dùng locator
[KB → <scope>, kb_search "<query>"], scope phân 2 cấp (develop/…,product/…,testing/…). - Knowledge chia 2 tầng: 7 category × 18 domain.
Breaking changes
- Các skill
bugfix,bug-triage,parallel-features,library-new,library-extract,feature-store-new,feature-store-extractđã bị xóa. Hãy dùng dispatcher mới theo bảng ở trên. - Đường dẫn
knowledge/…cục bộ không còn. Consumer phải cấu hình MCPteam-knowledge(xemdocs/knowledge-base-ops.md).
Bản 0.21.0 (software-factory 14-agent model + 5 workflow routing) chưa từng release riêng nên đi kèm bản này. Chi tiết ở mục [0.21.0] trong CHANGELOG.md.
v0.20.0 — harness-init + D-full overlay runtime
Consumer onboarding thu về 1 skill invocation. Harness source giữ nguyên 17 placeholder; model resolve runtime từ .harness-overlay/overlay.yaml.
Highlights
/harness-init skill (new)
Auto-detect gradle stack + interactive branding + render overlay + validate schema + install project-local Claude Code symlinks (21 skills + 11 agents) + SessionStart hook. 9-step procedure, single entry cho consumer bootstrap.
D-full placeholder resolution
AGENTS.md §Overlay bootstrap check+§Placeholder resolution(mapping table 17 placeholder → overlay key).## Overlay gate (D-full)+## Harness contextsections append cho 20 SKILL.md.install.sh initsubcommand mark DEPRECATED, prefer skill harness-init.
Consumer install/uninstall scripts
scripts/activate-claude-agents.sh— symlink agents vào.claude/agents/.scripts/check-overlay.sh— SessionStart hook check overlay existence.scripts/install-session-hook.sh— patch consumer.claude/settings.json.scripts/uninstall-all.sh— one-command teardown với--purgeflag.
Workflow + session skills (từ CHANGELOG v0.20.0 WIP)
coding-scout— fast codebase scouting.coding-brainstorm— outcome contract gate trước implementation.coding-vibe— end-to-end pipeline orchestrator.harness-handoff— portable session continuation contract.
Breaking changes
Skill naming (android-* → coding-/testing-, input-* → business-*)
| Cũ | Mới |
|---|---|
| android-feature, -mvi, -compose, -coroutines, -network, -database, -refactor, -code-review, -orchestrator | coding-feature, -mvi, -compose, -coroutines, -network, -database, -refactor, -review, -orchestrator |
| android-testing | testing-android |
| android-debug + android-performance | coding-diagnose (consolidated) |
| input-prepare-feature, -validate-brief | business-prepare-feature, -validate-brief |
| input-analyze-design + -analyze-spec + -reconcile | business-analyze (consolidated) |
| input-fetch-confluence + -fetch-figma | business-fetch (consolidated) |
Consumer với symlinks hiện tại cần chạy:
.harness-overlay/upstream/scripts/uninstall-all.sh --target .
# fetch latest harness
.harness-overlay/upstream/scripts/activate-claude-skills.sh install --target .claude/skills
.harness-overlay/upstream/scripts/activate-claude-agents.sh install --target .claude/agentsHoặc skill-based: gọi /harness-init để tự reinstall.
Rationale (D-full vs D-lite)
Giữ 17 placeholder + auto-trigger harness-init (D-full) thay vì bỏ 9 placeholder hardcode default (D-lite):
- Zero code change trong 39 harness source file.
- Overlay là explicit audit trail cho consumer convention.
- Multi-product mỗi overlay riêng, không chia default.
- Rollback khi default sai: sửa overlay 1 file thay vì bulk patch 39 file.
Mitigation ~5% miss-resolve risk: SessionStart hook deterministic + ## Overlay gate ở top mỗi SKILL.md + full mapping table ở AGENTS.md.
Commits
8f7d906refactor(skills): task-oriented naming + 7 new workflow/business skillsb941047feat(skills): add harness-init for consumer overlay bootstrapfc975b2feat(harness): D-full placeholder resolution + consumer install orchestrator7043c2cchore(release): v0.20.0 CHANGELOG for harness-init + D-full + consumer install flow
Full CHANGELOG: v0.20.0 entry
v0.17.0 — Custom APK Driver Pattern
Added — Custom APK Driver Pattern
Pattern cho custom APK driver — hiệu suất cao (~30-100ms/call) cho E2E test volume lớn (200+ cases/round) hoặc yêu cầu Unicode input chuẩn (dấu tiếng Việt). Thay thế ARTEMIS MCP (~1-2s/call) khi scale vượt threshold.
Harness không ship binary APK. Document pattern + architecture + protocol spec để downstream product build APK driver riêng, hoặc tham khảo implementation có sẵn (learn-app-plugin private repo).
Knowledge (1)
- `knowledge/e2e-runtime/custom-apk-driver.md` (~500 LoC):
- Decision matrix khi nào cần APK driver (volume threshold, latency, Unicode)
- Architecture overview: host runner ↔ ADB forward ↔ instrumentation HTTP server trên device
- HTTP protocol spec: `/ping /tree /shot /tap /settext` + extensions `/swipe /long_press /launch /shell /broadcast`
- UiAutomation API cheat sheet (getWindows, walk tree, injectInputEvent, ACTION_SET_TEXT, takeScreenshot)
- Project structure (Android library module với instrumentation entry)
- Unicode input strategies: clipboard-based vs accessibility `ACTION_SET_TEXT`
- Element locator priority (resource id → test-tag → content-description → text → regex → fallback)
- Jetpack Compose semantics considerations
- Build + sign + install workflow
- CI integration example (GitHub Actions pipeline)
- Testing driver reliability (self-test suite + metrics endpoint)
- 3 acquisition options: build riêng (recommended, 2-3 tuần), fork learn-app (nhanh nhất với access), vendor binary APK (temporary PoC)
- Integration mapping APK endpoints → 10 methods driver contract
- 7 anti-patterns
Changed
- `device-driver-contract.md`: thêm section Implementation paths với bảng so sánh 5 paths:
| Path | Latency/call | Setup | Use case |
|---|---|---|---|
| ARTEMIS MCP | ~1-2s | Zero | Default, < 50 cases |
| Maestro CLI | ~200-500ms | Install Maestro | 50-200 cases |
| Appium server | ~1-3s | Appium + driver | Team có skill |
| Custom APK | ~30-100ms | 2-3 tuần | 200+ cases |
| ADB + vision | ~3-5s | Zero | Fallback SDK closed |
- `AGENTS.md`: file index add `custom-apk-driver.md`
Rationale
User chọn APK path cho downstream product scale 200+ cases/round. ARTEMIS 2.5 giờ/round → APK 3 phút/round, giảm 50x.
Scope decisions:
- Pattern-only, không ship binary — giữ harness repo nature (markdown + minimal Python/Bash)
- HTTP over ADB forward: simpler hơn broadcast intent / content provider
- Persistent UiAutomation: 1 instrumentation process giữ connection suốt run
- Accessibility `setText` cho Unicode: avoid `adb shell input text` limitations
- 3 acquisition options: flexibility cho long-term build / nhanh fork / PoC vendor
Migration from 0.16.0
Zero breaking change. Pure documentation addition.
Scope boundaries
- IN scope: Documentation pattern + protocol spec + acquisition options
- OUT scope: Shipping binary APK, Android project trong harness repo, auto-install workflow
- Future Wave: `tools/harness-device-driver/` scaffold, APK CI build pipeline
Not implemented
- No actual APK built (downstream responsibility)
- No install script (downstream orchestrator)
- No example product repo demonstrating Option A build
Reference implementation
Learn-app-plugin `tools/device-driver/` (private repo) là reference implementation:
- Port 7912 default
- ServerSocket bind 127.0.0.1 only
- Endpoints matching protocol spec trong doc
- UiAutomation với FLAG_RETRIEVE_INTERACTIVE_WINDOWS + FLAG_INCLUDE_NOT_IMPORTANT_VIEWS
Downstream có access learn-app-plugin có thể fork trực tiếp (Option B).
v0.16.0 — Learn-plugin E2E Pattern Port (Wave 1)
Added — Learn-plugin E2E Pattern Port (Wave 1)
Port cốt lõi E2E patterns từ hung-apero/learn-app-plugin sang harness dưới dạng pattern + schema + agent template, zero runtime code. Downstream product build runner theo pattern khi cần.
Agents (3)
agents/ui-judge.md— Visual compare screenshot vs Figma + ui-spec, verdict chặn (critical) vs nên sửa (minor)agents/e2e-author.md— Write runner-neutral JSON step files, enforce 4 forbidden ops (force-stop $APP_ID, pm clear, hardcode packageId, raw locale change)agents/lesson-miner.md— Distill bugs từ Jira/GitHub/Linear thành structured lessons (symptom + cause + rule + how_to_test)
Blueprints (2)
blueprints/e2e-step-contract/— Runner-neutral JSON step file:- README, template, JSON Schema Draft 2020-12 với forbidden ops regex enforce, FORBID-001..004 chi tiết
blueprints/ui-spec/— Per-node UI contract:- Sections: Reach + Door + Elements + Tokens + Copy + Assets
- Template per node + manifest schema
Knowledge (5)
knowledge/e2e-runtime/device-driver-contract.md— 10 abstract methods, performance targets, ARTEMIS adapter exampleknowledge/e2e-runtime/guard-round-pattern.md— Full vs verify round, early-stop (3 same-fingerprint), APK cache, streaming bugsknowledge/e2e-runtime/interruption-patterns.md— Ad / permission / dialog auto-dismiss, watch mode cho rewarded adsknowledge/e2e-runtime/runner-neutral-step.md— Design rationale, so sánh với Maestro / Appium / Espresso / Detoxknowledge/visual-compare/figma-vs-screenshot.md— Perceptual hash + SSIM, thresholds, preprocessing
Workflows (2)
workflows/guard-round.md— E2E runtime orchestration pattern (5 stages: Open → Build → Install → Run → Close)workflows/mine-lessons.md— Bug tracker → lessons pipeline (5 stages: Fetch → Classify → Distill → Merge → PR)
Verification extension
stage-5-ui-visual.sh+validate_ui_visual.py— Pillow + imagehash visual compare validator
Rationale
learn-app-plugin là product-specific orchestrator với full runtime E2E stack. Harness generic không nên copy infrastructure specific, nhưng pattern + schema + agent template là valuable universally.
Portable (DID port):
- UI judge pattern
- E2E step schema runner-neutral
- Device driver contract (abstract)
- Guard round orchestration pattern
- Interruption handling
- Lesson mining pipeline
- Visual compare technique
Product-specific (DID NOT port):
- Built-in APK driver
- Feature Store catalog
- Firebase Remote Config hook
- Discord bot integration
- Google Play compliance checks
- Learn SDK vendored
Key design decisions
- Zero runtime code: harness ship pattern + schema + agent markdown. Downstream build runner adapter khi cần.
- Schema enforcement 4 layers: step file forbidden ops ở JSON Schema regex + author lint + driver pre-exec scan + report trace
- Visual compare pre-filter: perceptual hash fast + deterministic, call ui-judge LLM chỉ khi distance >= 6
- Dev-review gate cho lessons: lesson-miner không auto-publish; PR cho dev approve
Smoke test
- Pillow + imagehash validator chạy OK với synthetic fixture
- JSON schema step-file validated syntax
- Stage 5 skip gracefully khi missing config
Migration from 0.15.0
Zero breaking change. Pure addition.
Scope boundaries
- IN scope: Patterns, schemas, agent templates, visual compare validator
- OUT scope (Wave 2+): ARTEMIS MCP adapter wrap, real device runner implementation, state CLI tool, autopilot hooks, pool emulator parallel
Usage examples
Visual compare với fixture có screenshots + Figma:
```bash
./verification/e2e/scripts/stage-5-ui-visual.sh verification/e2e/fixtures/book-detail /tmp/results.yaml
```
Invoke agents manual qua Claude Code:
```
"ui-judge grade node book-detail-content với Figma: ... Shot: ... Spec: ..."
"e2e-author write step file cho test case TC-001 với UI spec: ..."
"lesson-miner mine bugs cho app ABC từ Jira project ABC since 2026-07-01"
```
Not implemented in Wave 1
- No actual runner (downstream build theo pattern)
- No ARTEMIS adapter wrap (Wave 2)
- No streaming bug coordination infrastructure
- No pool emulator parallel runner
v0.15.0 — E2E Verification Suite
Added — E2E Verification Suite
Full pipeline regression test cho harness. Chạy fixtures qua 5 stages với hybrid validation (golden snapshot structural + semantic assertion content quality). Bash orchestrator + Python validators, không spawn agent — CI-friendly deterministic.
Workflow
workflows/verify-e2e.md— 5-stage pipeline với fix loop, rollback, report format
Scripts (bash)
scripts/run-e2e.sh— entry point với--all,--stages,--update-golden,--verbosescripts/stage-1-brief.sh— schema + semantic + golden diffscripts/stage-2-plan.sh— task-contract validation (optional)scripts/stage-3-code.sh— dry Konsist static check (optional)scripts/stage-4-gates.sh— cross-reference gates
Validators (Python)
validators/validate_brief.py— JSON schema + semantic rules (min_confirmed_requirements, max_blocker_issues, all_ac_bind_confirmed, components_ambiguous_resolved)validators/validate_plan.py— task-contract + expected structurevalidators/validate_code_structure.py— static regex check cho Konsist rulesvalidators/diff_golden.py— snapshot comparator, ignore timestamps + checksumsvalidators/report_builder.py— consolidate markdown report
Fixture
fixtures/book-detail/— pilot với intentional conflicts (SOURCE_CONFLICT, MISSING_DESIGN, AMBIGUOUS_COMPONENT, MISSING_BEHAVIOR) để test gate enforcement- Golden snapshot + semantic rules + plan structure + code konsist expected
Documentation
README.md— layout + hybrid validation strategyrunbook.md— how-to-run, exit codes, troubleshoot
Rationale
Trước v0.15: harness không có integration test. Khi update skill/schema/workflow, maintainer phải chạy manual check qua product repo thật để confirm không regression.
v0.15 bridge gap:
- Automated regression detect:
./run-e2e.sh --allconfirm fixtures stable - Hybrid validation: golden catch structural drift, semantic catch quality degrade
- No agent dependency: static validators → deterministic, CI-friendly
- Fixture ownership:
book-detailpilot là canonical example cho downstream
Key design decisions
- Bash + Python stack match install.sh convention, zero extra dependency
- Static code check Stage 3 không spawn Gradle/Konsist thật
- Golden ignore noise (timestamps, checksums)
--update-goldenkhông chạy auto trong CI- Stage 2+3 skip gracefully nếu artifact missing
Smoke test
Pilot book-detail chạy local pass end-to-end (actual=golden identity test).
Migration from 0.14.1
Zero breaking change. Additive tool.
Usage:
pip3 install pyyaml jsonschema
./verification/e2e/scripts/run-e2e.sh book-detail
./verification/e2e/scripts/run-e2e.sh --allScope boundaries
- IN scope: bash orchestrator, Python validators, book-detail pilot, 5 stages
- OUT scope (Wave 2+): agent spawn integration, multi-fixture parallel, GitHub Actions, benchmark mode
v0.14.1 — Update to latest workflow docs
Added
README.md: section "Update to latest" consolidate update workflow cho downstream product consume harness.
Nội dung
- Workflow symlink mode (6 bước:
mehcli version→self-update→update --overlay→ review diff → verify → commit delta) - Workflow submodule mode (CI pin):
git submodule update --remotethay choself-update - Rollback procedure cho cả 2 mode (checkout tag cũ + re-render)
- Breaking change check (đọc CHANGELOG Migration section trước khi update major/minor)
- Pin strategy khuyến nghị:
maincho dev, tag cụ thể cho CI, shared install cho multi-product org
Rationale
Trước v0.14.1: workflow update rải trên 3 chỗ trong README (Install, CLI reference, Best practices "Khi update harness" — section này thực chất là checklist cho harness maintainer release version mới, không phải user downstream). User downstream phải tự ghép commands. Rollback + pin strategy chưa document.
Zero code change. Pure documentation consolidation.
Migration from 0.14.0
Zero breaking change.
v0.14.0 — Confluence + Figma MCP Adapters
Added — Confluence + Figma MCP Adapters
Mở rộng input layer với 2 remote source adapters qua MCP. Spec có thể fetch từ Confluence, design có thể fetch từ Figma với node tree + variables + image export. Vẫn tuân thủ "adapter fetch-only" principle: không analyze business logic trong fetch layer.
Skills (2)
skills/input-fetch-confluence/SKILL.md— Fetch Confluence page + children + attachments + inline images + comments quamcp-atlassian. Normalize sang markdown + binary vàoassets/sources/. Hỗ trợ URL/page_id/CQL input.skills/input-fetch-figma/SKILL.md— Fetch Figma file + node tree + variables + styles + PNG screenshots + SVG icons quaframelink-figma(primary) hoặcTalkToFigma(fallback live canvas). Build structuredscreen-contracts.json.
Knowledge (2)
knowledge/input-analysis/confluence-fetch-rules.md— CONF-RULE-001..012 (permission check, snapshot immutable, preserve revision, markdown normalize, attachment handling, multi-page spec, flag open items)knowledge/input-analysis/figma-fetch-rules.md— FIG-RULE-001..008 (snapshot, record version, explicit node selection, variables = authoritative token, component instance resolution, image export, variants, preserve auto-layout)
Design rule overrides khi có Figma variables
- DESIGN-RULE-OVERRIDE-001: color từ variable → confirmed
- DESIGN-RULE-OVERRIDE-005: dimension fixed → confirmed
- DESIGN-RULE-OVERRIDE-007: layout mode auto-layout → confirmed
Vẫn giữ không override: DESIGN-RULE-002 (không infer navigation), DESIGN-RULE-003 (chỉ states có variant), DESIGN-RULE-004 (ambiguous → candidates).
Changed
skills/input-prepare-featurePhase P1 — adapter routing matrix (7 combinations)skills/input-analyze-design— Figma mode procedure (F1..F5)workflows/prepare-feature-brief— entry conditions + input artifacts + routing matrixverification/brief-schema/brief.schema.json— thêmfetch_notes+origin_metadatafields
Rationale
Trước v0.14: brief chỉ accept local markdown + screenshots. Team dùng Confluence cho spec + Figma cho design phải export manual rồi copy vào product repo → extra step, lose metadata.
v0.14 bridge gap:
- Metadata preservation (Confluence version/author + Figma variables)
- Deterministic re-fetch (origin URI + checksum → detect source drift)
- Permission guard (Confluence read restriction check)
- Instruction injection safe (adapter flag suspicious pattern)
Migration from 0.13.0
Zero breaking change. Additive.
Scope boundaries
- IN scope: Confluence (
mcp-atlassian), Figma (framelink-figma+TalkToFigma) - OUT scope (Wave 4+): Google Docs, Jira, PDF, OpenAPI adapters, Figma Code Connect, multi-team profiles, TypeScript CLI
v0.13.0 — Input Layer MVP (Markdown + Screenshot)
Added — Input Layer (Markdown + Screenshot MVP)
Lớp chuẩn hóa spec + design nguồn thành Feature Brief package trước khi handoff vào feature-development. Upstream của mọi workflow build feature.
Skills (5)
skills/input-prepare-feature/SKILL.md— orchestrator 5-phase pipeline (fetch → analyze spec → analyze design → reconcile → validate)skills/input-analyze-spec/SKILL.md— extract requirement + AC từ spec markdown với evidence_status (confirmed/inferred/unresolved)skills/input-analyze-design/SKILL.md— extract screen contract từ screenshots: components, states, ambiguity, assetsskills/input-reconcile/SKILL.md— cross-reference spec + design, classify severity, resolve bằng project defaultskills/input-validate-brief/SKILL.md— 12 quality gates (INPUT/SPEC/DESIGN/RECON/CONTRACT/HANDOFF)
Agents (2)
agents/input-analyst.md— role spec analysisagents/design-analyst.md— role screenshot analysis
Workflow
workflows/prepare-feature-brief.md— 5-phase pipeline với parallel P2+P3, blocker gate P4, 12-gate validation P5
Blueprint
blueprints/feature-brief/— README + 5 template files (brief.yaml, requirements.md, design.md, acceptance-criteria.md, issues.md)
Knowledge
knowledge/input-analysis/requirement-extraction-rules.md— REQ-RULE-001..006knowledge/input-analysis/screenshot-reading-rules.md— DESIGN-RULE-001..012knowledge/input-analysis/reconciliation-matrix.md— issue matrix + severity decision tree
Verification
verification/brief-schema/brief.schema.json— JSON Schema Draft 2020-12 validate brief.yaml
Output location
briefs/— tách khỏiplans/. Brief = input contract (what to build + why), Plan = how to build.
Rationale
Trước v0.13: downstream workflow đọc spec thô + screenshot adhoc, agent phải guess structure mỗi feature. Spec + design conflict không detect systematic → scope drift, missing requirement silent.
v0.13 giải quyết:
- Contract giữa input và execution (schema-validated brief.yaml)
- Confidence tagging (evidence_status) → downstream biết tin cậy đến đâu
- Blocker gating (issues severity=blocker) chặn implement start
- Traceability (source quote + checksum snapshot) → detect spec drift
Migration from 0.12.0
Zero breaking change. Input layer là addition purely. Existing feature-development workflow vẫn work với spec adhoc; brief là optional upgrade path.
v0.12.0 — Harness Guardian meta-agent
Twelfth release — Dedicated meta-agent cho harness self-maintenance.
New
Harness Guardian
Meta-agent chuyên maintain + evolve chính harness. Khác biệt critical:
- 5 roles khác (Architect/Implementer/Reviewer/Test-Engineer/Orchestrator) — DÙNG harness để develop product
- Harness Guardian — PHÁT TRIỂN + BẢO TRÌ chính harness itself
3 modes
- audit (scheduled): health check, knowledge/policy audit — report only
- maintain (on-demand): fix L0-L2 changes
- evolve (user-triggered): propose L2-L3 changes với benchmark
6 capability areas
- Knowledge audit (track Android/Kotlin/Compose doc changes)
- Policy audit (rule conflict, ADR consistency)
- Skill maintenance (procedure improve, length check)
- Blueprint maintenance (build check, pattern sync)
- Harness evaluation (benchmark + regression)
- Release management (versioning, changelog, rollback)
Permission levels (L0-L3)
- L0 (typo/link/format): auto-commit
- L1 (docs/examples): PR auto-merge
- L2 (skill/workflow/Konsist rule): PR + independent review required
- L3 (constitution/ADR): PR + USER approval mandatory
Protected Baseline
12 ADR cốt lõi không Guardian tự modify. Prevent architecture drift.
Files added
- agents/harness-guardian.md
- skills/harness-maintenance/SKILL.md
- workflows/harness-maintenance.md
- knowledge/harness-governance/essentials.md
Design highlights
- No self-approve: Guardian không approve own PR; independent reviewer required L2+
- Infrastructure enforcement: GitHub branch protection + CODEOWNERS + token scope
- Protected eval fixtures: Guardian không được modify test để pass benchmark do mới broke
- Signal filtering: evidence-based (official docs + 3+ reports + measured delta)
Changed
- AGENTS.md: task routing + workflows table + agent roles + file index
Migration from v0.11.0
Zero migration. Guardian là addition purely, không change existing rule/skill.
Usage
Prompt: "Harness Guardian, audit mode: review knowledge/coroutines/ với Kotlin 2.1 changes"
Prompt: "Harness Guardian, maintain mode: fix broken links"
Prompt: "Harness Guardian, evolve mode: propose rule cho Compose SharedTransitionLayout"
Install / upgrade
curl -fsSL https://raw.githubusercontent.com/huypqapero/mobile-engineering-harness/main/bootstrap.sh | bash
mehcli self-update
Full changelog
See CHANGELOG.md.