Skip to content

feat: adopt ACF in Herne — stress test against 1422-test Luau game project #8

Description

@VECTORG99

Summary

Adopt ACF in Herne to test the full pipeline (context-load → stack-audit → issue-craft → pr-context) against a real game development project with 1422 tests, 26 services, and strict --!strict Luau conventions. Herne is the ideal stress test because it has the most rigorous AC requirements of any project in the portfolio.

Context

  • ACF repo: https://github.com/VECTORG99/acf
  • Herne AGENTS.md: reading order, AAA quality loop, test requirements (1422 tests)
  • Herne ACCEPTANCE_CRITERIA.md: detailed AC patterns per issue type (feat, fix, refactor)
  • Herne tech stack: Luau (--!strict), Knit 1.4.6, Rojo 7.7.0, Lune 0.10.4
  • Herne test commands: lune run scripts/test_core.luau (113), test_gameplay.luau (278), test_services.luau (852), test_controllers.luau (179)
  • Herne conventions: OnClientEvent/OnServerEvent (not .Event), KnitDestroy cleanup, Constants.luau for all magic numbers
  • Coordination issue: feat: adopt ACF in artemisa and homedir for testing #1

Motivation

Herne is the hardest test for ACF because:

  1. Strict type system--!strict Luau means every issue AC must reference type annotations, not just behavior
  2. 1422 tests — ACF's issue-craft must reference the correct test file and test count
  3. Signal conventionsOnClientEvent vs .Event is a common bug pattern; ACF's AC must catch this
  4. Memory leak prevention — every :Connect() must be stored and disconnected; ACF must include this in AC
  5. Constants.luau — no magic numbers; ACF must check for this in code review AC
  6. Real CIbash scripts/dev.sh --ci runs the full pipeline; ACF must reference this exact command

If ACF can craft issues for Herne that pass Herne's rigorous PR review checklist, ACF works for any project. If it can't, we've found the boundary of ACF's generalization.

From 30 years of shipping software: you test your tool against the hardest case, not the easiest. Herne is the hardest case in this portfolio.

Affected Files (in Herne — tracked here, executed there)

  • Herne/.devin/skills/ or Herne/.opencode/skills/ — ACF installation
  • Herne labels — verify ACF canonical labels coexist with Herne's existing labels
  • Herne issues — at least 1 issue crafted via ACF

Constraint: This issue lives in the ACF repo. All file changes happen in Herne via separate PRs there. This issue tracks the adoption plan and results.

Acceptance Criteria

  • ACF installed in Herne via ./install.sh /home/vector/Proyectos/Herne --agent devin
  • Context-load run on Herne:
    • Snapshot includes: 26 services, 17 controllers, 1422 tests, 404 constants, 31 RemoteEvents
    • Test commands captured: lune run scripts/test_core.luau etc.
    • CI check captured: bash scripts/dev.sh --ci
    • Conventions captured: --!strict, OnClientEvent/OnServerEvent, KnitDestroy cleanup
  • Stack-audit run on Herne:
    • gh pr list --state open --repo VECTORG99/Herne → check for orphan PRs
    • gh issue list --state open --repo VECTORG99/Herne → check for stale issues
    • Document findings (if any)
  • At least 1 issue crafted via ACF for Herne:
    • Issue has all required labels (type + priority + area)
    • AC reference real test commands (lune run scripts/test_*.luau)
    • AC reference real CI check (bash scripts/dev.sh --ci)
    • AC include Herne-specific conventions (e.g., "uses OnClientEvent, not .Event")
    • Issue body is compressed (paths, not file contents)
  • At least 1 PR crafted via ACF for Herne:
    • PR has Closes #N
    • PR has AC checkboxes copied from the issue
    • PR has scope lock checkbox
    • PR references test commands and CI check
  • Compaction (phase 7) tested on Herne:
    • Herne's context is large (53 source files, 13K lines) — compaction should trigger
    • Verify compacted snapshot preserves: test commands, CI check, signal conventions
    • Document token savings (full vs compacted)
  • Findings documented in a comment on this issue:
    • Did ACF's AC match Herne's ACCEPTANCE_CRITERIA.md patterns?
    • Did ACF capture all Herne-specific conventions?
    • What was missing from ACF's output?
    • What adjustments does ACF need for game development projects?

Validation

  • gh issue list --repo VECTORG99/Herne --label "area:backend" returns the ACF-crafted issue
  • The ACF-crafted issue's AC reference lune run scripts/test_*.luau (not generic "run tests")
  • The ACF-crafted PR has Closes #N and AC checkboxes
  • Herne git status is clean after ACF installation

Complexity

Complex — Herne's conventions are extensive and specific. ACF's context-load must capture them all, and issue-craft must incorporate them into AC. This is a stress test of ACF's generalization.

Notes

  • Herne's ACCEPTANCE_CRITERIA.md is the gold standard for AC in this portfolio. ACF's issue-craft should produce AC that match this quality.
  • Herne's PR review checklist (in AGENTS.md) has 11 items — ACF's PR-context should include all of them.
  • The OnClientEvent vs .Event distinction is Herne-specific but represents a class of convention (framework-specific API usage). ACF should be able to capture and enforce such conventions.
  • This is a Phase 2 (Beta) issue per the roadmap — real-world testing on a complex project.
  • If ACF fails here, that's valuable data — it tells us where ACF's generalization breaks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions