Lazy Skill Router is a local, deterministic skill recommendation layer for Codex. It reads the current prompt and returns an activate, propose, or abstain decision while keeping recommendation separate from execution authority.

Why it matters

As the number of Codex skills grows, users have to remember which skill fits each task and whether a recommendation is safe to follow. Lazy Skill Router makes that first choice local, versioned, and inspectable. A recommendation never grants permission to execute a skill.

What it does

  • Discovers locally available Codex skills without exposing filesystem paths.
  • Matches prompts against a validated deterministic policy.
  • Activates one primary skill only when evidence is strong and eligible.
  • Holds weak, ambiguous, answer-only, and alternate matches for agent review.
  • Ranks up to three capability candidates in a separate preview lane that cannot affect activation.
  • Installs, synchronizes, diagnoses, and removes managed Codex hook files within explicit filesystem boundaries.
  • Rejects oversized prompts, unsafe regular expressions, invalid policy values, and stale installation state.

Demo

The demo uses one small CI Relay project to show the complete decision boundary:

  1. The router proposes project-mindmap to map the repository and trace data from an event JSON file to a notification.
  2. It returns an eligible activate decision for ponytail on a clear minimal-change task: add one TimeoutError retry without changing the public API or adding a dependency.
  3. It abstains when none of the demo skills is eligible.
  4. The playground runs six fixture tests and compiles the sample.

The router produces a decision only. Actual skill execution still requires fresh agent authorization.

How we used Codex and GPT-5.6

GPT-5.6 helped review the system across routing, PolicyIR parsing, installation, synchronization, diagnostics, and evaluation instead of treating each file independently. That review identified failure modes including pathological regular expressions, non-finite policy values, inventory/index drift, unsafe write boundaries, and diagnostic paths that could contaminate measurements.

Codex turned reproduced defects into characterization tests, applied focused patches, ran regression checks, reviewed cross-file contracts, and kept the README and evidence boundaries aligned with the implementation.

The product boundary remained human-controlled: deterministic routing stays authoritative, Top-K remains preview-only, recommendations never grant authority, and evaluation evidence cannot automatically approve activation or release.

Build Week disclosure

Lazy Skill Router is a pre-existing project. Architecture 3, recorded in commit 6123ffe, is the prior foundation.

The judged Build Week contribution is the separate v0.5 stabilization and reproducible judge-demo work reviewed in PR #9 and PR #10. PR #10 was squash-merged to main as commit cedaea2.

The repository remains at 0.5.0.dev0. No stable v0.5.0 tag, PyPI publication, or GitHub Release has been made. The portable quality gate remains a release blocker rather than being lowered for the submission.

How judges can test it

Judges can verify the development snapshot directly from source without installing a package or modifying ~/.codex:

git clone https://github.com/chowonje/lazy-skill-router.git
cd lazy-skill-router
python3 scripts/judge_playground.py

This path requires Git and Python 3.9 or newer on macOS or Linux. After cloning, the playground makes no network call. The merged main CI passed on Python 3.9, 3.11, and 3.14.

Built With

  • codex
  • github-actions
  • gpt-5.6
  • python
Share this project:

Updates