Skip to content

v3.5.0 — E2E Quality Gate + Mini-App Chấm Công Showcase

Latest

Choose a tag to compare

@olbboy olbboy released this 13 Apr 21:36

Release v3.5.0 — E2E Quality Gate + Mini-App Chấm Công Showcase + Anti-Rationalization Unified

Date: 2026-04-14
Marketing version: v3.5.0
CHANGELOG version: 1.5.0
Branch: feat/mini-app-cham-cong-docsmain (merged via --no-ff)
Merge commit: c9c31e3 (local, not pushed)
Tag: v3.5.0 (local, not pushed)
Agent count post-merge: 44 (33 with anti-rationalization + 11 sprint spine)

Reconciliation note: This release merges TWO parallel development tracks
that diverged from cabccd6 (2026-04-12). The initial intent was a simple
merge of the feat branch into main, but surveying revealed main had shipped
significant work (v3.2 + v3.3 Anti-Rationalization Framework, license
change, docs rewrite) that feat branch never absorbed. Both tracks are now
unified into v3.5.0.

Reconciliation audit

Stat Value
Feat branch commits (absorbed) 15 (14 original + 1 release prep)
Main branch commits (absorbed) 9
Files in overlap (both sides modified) 104
Hand-resolved UU conflicts 11 (4 root + 6 docs/ + 1 ba-master SKILL)
Auto-merged SKILL.md files 25
Modify-delete conflicts resolved (keep feat) 65 (outputs/mini-app-cham-cong/*)
Smoke test verdict PASS — 243/0/0/4/247

TL;DR

Two major capabilities land on top of the v3.4 Sprint Spine:

  1. Phase 08 CI quality gate — BA artifacts (skills, docs, fixtures) now validated on every PR via GitHub Actions, 5-layer lint orchestrator, JSON + Markdown reports
  2. Mini-App Chấm Công end-to-end showcase — 12 modules, 4 BRDs, 53 US files, EAMS v2.1, RTM, 111/111 Confluence pages — proves the kit dogfooded on a real enterprise attendance system

Zero breaking changes. Drop-in upgrade from v3.4.0.


Release highlights

1. CI-integrated E2E quality gate (Phase 08)

Orchestrator.agent/scripts/ba_e2e_test.py (1,389 LOC, stdlib only)

  • 5 lint layers:
    • L1 — script smoke (syntax/import for all ba_*.py helpers)
    • L2 — helper stdlib interface smoke (14 test cases covering ba_as_built, ba_retro, ba_learn, ba_baseline, ba_second_opinion, ba_setup)
    • L3 — skill frontmatter + canonical sections (Input Validation, System Instructions, etc.)
    • L4 — deep BRD↔US↔API↔test consistency (6 lint families: duplicate US IDs, BRD→US xref, API-spec US refs, test-case US refs, RTM US refs, orphaned test cases)
    • L5 — fixture coverage (US ID extraction, lowercase tolerance)
  • --report markdown output, --json stable schema v1.0.0 (ensure_ascii=False for Vietnamese round-trip), --fixture selector

Workflow.github/workflows/e2e-skills.yml

  • Triggers on PR + push to main/feat/** touching .agent/, docs/, outputs/, or the workflow itself
  • Python 3.11, actions/checkout@v4 fetch-depth: 0 (ba_retro needs git history)
  • Writes markdown to GITHUB_STEP_SUMMARY for inline PR review UX
  • Uploads reports/ artifact (14-day retention)
  • Sticky PR comment via marocchino/sticky-pull-request-comment@v2
  • Fails job only on FAIL / CRASH verdict — WARN doesn't block
  • 10-min timeout, zero external deps

README badge — GitHub Actions status badge linked to e2e-skills.yml, now tracking main branch.

2. Mini-App Chấm Công — comprehensive BA showcase

Location: outputs/mini-app-cham-cong/

Overview artifacts

  • 4 BRDs — Nhân viên / Quản lý / HR-Admin / IT-System-Admin
  • Demo Plan Sprint 8
  • Modules overview
  • Confluence manifest (111 pages)

12 modules (M01-M12) — each with README.md + api-spec.md + db-schema.md + test-cases.md + US files:

  • M01 Chấm công — check-in/out, GPS, selfie, anti-spoofing
  • M02 OT — overtime request/approval/settlement
  • M03 Nghỉ phép — leave types, balance, approval chain
  • M04 Công tác — business trip, expense
  • M05 Phân ca — shift scheduling, rotation, swap
  • M06 Chính sách — policy engine, rules
  • M07 Mobile — offline sync, push, deep-link
  • M08 (reserved)
  • M09 (reserved)
  • M10 (reserved)
  • M11 Báo cáo — weekly, monthly, compliance, payroll lock
  • M12 Quản trị hệ thống — chi nhánh, audit log, offboarding, chốt công tháng, onboarding, data retention

User stories — 53 total

  • M01-M11: 47 US files rewritten R3 with concrete Gherkin scenarios sourced from Edge Cases tables
  • M12: 6 US files (us-sys-01 → us-sys-06)

Supporting docs

  • eams-v2-comprehensive.md — EAMS v2.1 (§15.3 attendance anomalies, §17.5 leave accrual, §17.6 payroll lock)
  • RTM.md — full requirements traceability matrix
  • AUDIT-REPORT.md — R3 remediation audit trail
  • INDEX.md — navigation entry

Confluence sync — 111/111 pages pushed, 0 rendering errors. Unblocked by language-mapping fix (json/gherkin) + mermaid-macro support in push scripts.

3. Skill hygiene

  • ba-wiki/SKILL.md — canonical ## Input Validation + ## System Instructions added. L3 frontmatter lint 6/8 → 8/8 (operation-based template was missing headers because it uses Ingest/Query/Lint instead of the cognitive-loop template)
  • coverage_checker.py — accepts lowercase us-* + test-cases.md filenames

Commit log (14 commits)

SHA Summary
9c79110 feat(ci): Phase 08 — JSON reporter + GitHub Actions workflow + badges
00032e8 fix(skills): ba-wiki add canonical Input Validation + System Instructions
a8bb262 feat(scripts): ba_e2e_test L4 deep lints — BRD↔US↔API↔test consistency
7c7be35 feat(scripts): ba_e2e_test L2 — script helper smoke tests (14 tests)
4cd41e1 feat(scripts): ba_e2e_test.py orchestrator — L1 + L3 + L5 layers
682e8bd fix(scripts): coverage_checker recognizes lowercase us-* and test-cases.md
6784853 chore: rename release v3.2.0 → v3.4.0 (tag conflict reconciliation)
2fb7392 docs: v3.2 release refresh — badges, sprint spine, cheat-sheet, changelog
9d4821f feat: v3.2 sprint spine — 11 new agents + 6 helpers + setup wizard
e1a0625 fix: YAML frontmatter quotes + BA-fit polish across 26 skills
0420b82 docs: Confluence sync complete — 111/111 pages updated, 0 rendering errors
2823845 fix: Confluence DC rendering blockers — json/gherkin lang mapping + mermaid-macro
37cc552 docs: R3 Gherkin remediation — M01-M11 (47 US files)
3eb75b8 docs: R3 remediation — M12 Gherkin rewrite (6 US), EAMS v2.1, API/BRD/RTM fixes

Plus the release prep commit (added on merge): chore(release): v3.5.0 — CHANGELOG + badges


Upgrade path

From v3.4.0 — drop-in, no breaking changes. To activate the new CI quality gate on a fork:

  1. git pull origin main
  2. Ensure .agent/scripts/ba_e2e_test.py is present
  3. Copy .github/workflows/e2e-skills.yml into your repo (or fork will inherit on first PR)
  4. First PR touching .agent/, docs/, or outputs/ triggers the gate automatically

From <v3.4.0 — see CHANGELOG.md §1.4.0 for Sprint Spine migration (11 new agents, ba-setup wizard, BA-fit reframing).


Post-merge checklist (user action)

Current local state (as of 2026-04-14 03:15):

  • main is at c9c31e3 (merge commit) — 14 commits ahead of origin/main
  • v3.5.0 tag exists locally, not pushed
  • feat/mini-app-cham-cong-docs branch still exists (same commit as main now)

Review before pushing:

  • git log main --oneline -20 — review the reconciled history
  • git show v3.5.0 --stat — verify tag points to merge commit
  • git diff origin/main main --stat | tail -5 — sanity-check LOC delta
  • python3 .agent/scripts/ba_e2e_test.py --fixture outputs/mini-app-cham-cong — re-run smoke test
  • Open README.md visually — check badge count says 44, logo cache-bust, sprint spine section intact
  • Open CHANGELOG.md — verify §1.5.0 reconciliation note + historical main entries preserved
  • Spot-check 2-3 SKILL.md files (e.g. ba-elicitation, ba-writing, ba-validation) — verify anti-rationalization sections AND sprint-spine context both present

Push sequence (when ready):

git push origin main                    # trigger CI on main, badge should flip green
git push origin v3.5.0                  # publish tag
gh release create v3.5.0 \
  --title "v3.5.0 — E2E Quality Gate + Mini-App Chấm Công Showcase" \
  --notes-file plans/reports/release-260414-0237-v3-5-0.md

Optional cleanup:

  • git push origin --delete feat/mini-app-cham-cong-docs — remote branch no longer needed
  • git branch -d feat/mini-app-cham-cong-docs — local branch cleanup

Reconciliation trace

Why the scope ballooned — the initial "merge feat into main" plan assumed main was stale. Surveying revealed main had independently shipped:

  • v3.2.0 Anti-Rationalization Framework (commit 766afb9) — 5 flagship agents + using-ba-kit meta skill + 6 slash commands
  • v3.3.0 full rollout (commit b2444c1) — 28 more agents with When to Use / Common Rationalizations / Red Flags / Verification sections (~140 items each)
  • License MIT → CC BY-NC 4.0 (commit 985d2d8)
  • Logo asset refresh (commit e364cf5)
  • outputs/ removed from tracking (commit b344068)
  • knowledge-search domain mapping fixes (commit 125af14)

Critical conflict zones:

  1. outputs/ modify-delete (65 files) — main had git rm -r outputs/, feat kept modifying outputs/mini-app-cham-cong/*. Resolved by: keeping feat versions + updating .gitignore from outputs/ to outputs/* + !outputs/mini-app-cham-cong/** negation.
  2. 26 SKILL.md files — git auto-merged 25 successfully (different sections edited). Only ba-master/SKILL.md required hand-merge due to both sides editing the Decision Matrix routing table.
  3. Root docs (README, CHANGELOG, AGENTS) — heavy manual reconciliation. CHANGELOG union both histories (feat's [1.x.y] semver + main's v3.x.y plain).
  4. CHANGELOG.md — kept feat's 1.5.0 + 1.4.0 at top with a "Reconciliation note" block, appended main's v3.3.0/v3.2.0/v3.1.1/v3.1.0 entries below a "Historical entries" separator for provenance.

E2E validation loop:

  • First run after merge: 1 FAIL — master_routing check said using-ba-kit was unrouted
  • Root cause: AGENT_REF = re.compile(r"@ba-[a-z][a-z0-9-]*") couldn't match @using-ba-kit
  • Fix: added using-ba-kit to CONNECTOR_EXEMPT set in ba_e2e_test.py:62
  • Second run: PASS 243/0/0/4/247 (243 passed, 0 warned, 0 failed, 4 skipped, 247 total)

Known follow-up (not blocking release):

  • The 11 sprint spine agents (ba-as-built, ba-autoreview, ba-retro, ba-learn, ba-checkpoint, ba-challenger, ba-second-opinion, ba-baseline, ba-guard, ba-shotgun, ba-setup) do NOT yet have the anti-rationalization sections. They inherit the convention as a follow-up task. Filed as CHANGELOG note.

Unresolved questions

  • Branch retention policy — should feat/mini-app-cham-cong-docs be deleted after merge, or kept as a showcase reference branch? (Default assumption: delete; the fixture lives in main already via outputs/mini-app-cham-cong/.)
  • Knowledge entry count — README still reads "831 Entries". Did mini-app-cham-cong dogfooding add new knowledge entries? If yes, badge needs bump.
  • Agent count — README reads "43 Agents". No new agents in v3.5.0 (CI + docs only), so still 43 — confirm no drift.
  • Confluence manifest cron — 111/111 pages synced as of commit 0420b82. Any drift since? Worth adding to v3.5.0 post-release smoke.