Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions submissions/localhost-3000/.mutagent/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
config_version: "0.3.0"

global:
workspace:
repo: "chandu-jannu/fun"
path: "."
models:
default: "gpt-5.6-terra"
targets:
- name: "local-codex-workspace"
platform: "local-codex"
subject: "agent"
artifact_format: "code"
default: true
mode: "local"
root: "."
apply:
kind: "code-pr"
pr: false

lifecycle:
agentspec:
spec_dir: ".mutagent/specs"
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Decisions — Orbix First-Pass Candidate Evaluation Agent

## Human decision authority

- Decision: The agent creates evidence-cited draft evaluations only; a recruiter is the decision of record for advancement, rejection, annotations, and overrides.
- Rejected alternative: Automatic pass/reject thresholds or ATS handoff.
- Rationale: Hiring outcomes, compensation, role level, and any process-ending decision require human review.

## Evidence model

- Decision: Skill assessment uses `strong`, `weak`, or `insufficient` evidence; direct resume-answer contradictions are separate conflict flags.
- Rejected alternative: Fold contradictions and insufficient evidence into a single numeric score.
- Rationale: Recruiters must see uncertainty and conflicting evidence rather than a non-explainable aggregate.

## Interview failure behavior

- Decision: Consent decline, timeout, abandonment, and technical failure stop scoring and report generation, with distinct recorded states.
- Rejected alternative: Score partial interviews or treat failures as low performance.
- Rationale: Partial or technically compromised evidence is not a valid assessment.

## Audit preservation

- Decision: Recruiter annotations and overrides append a separate audit event and preserve the agent's original draft.
- Rejected alternative: Allow human review to overwrite the generated draft.
- Rationale: The evidence trail must remain reviewable and attributable.

## Implementation target

- Decision: Build a code artifact for the local Codex harness in the Orbix workspace.
- Rejected alternative: A framework SDK or multiple decision-making agents.
- Rationale: The first release needs one bounded workflow with reusable services and human downstream review.

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions submissions/localhost-3000/.mutagentrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"endpoint": "https://api.mutagent.io",
"defaultWorkspace": "4a096d90-88c5-449e-87be-e0d297241f02",
"defaultOrganization": "org_q9EaDbbsdJcmO2KzPFm2n"
}
11 changes: 11 additions & 0 deletions submissions/localhost-3000/.vercel/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
> Why do I have a folder named ".vercel" in my project?
The ".vercel" folder is created when you link a directory to a Vercel project.

> What does the "project.json" file contain?
The "project.json" file contains:
- The ID of the Vercel project that you linked ("projectId")
- The ID of the user or team your Vercel project is owned by ("orgId")

> Should I commit the ".vercel" folder?
No, you should not share the ".vercel" folder with anyone.
Upon creation, it will be automatically added to your ".gitignore" file.
1 change: 1 addition & 0 deletions submissions/localhost-3000/.vercel/project.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"projectId":"prj_pbEaGuboguHRSY4fkFw923ob74wV","orgId":"team_QI8FTPW2kmY5q5VQDZ3BZM88","projectName":"fun"}
3 changes: 3 additions & 0 deletions submissions/localhost-3000/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"github.copilot.chat.claudeAgent.allowAutoPermissions": true
}
16 changes: 16 additions & 0 deletions submissions/localhost-3000/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<!-- @mutagent/helix boot -->
# Helix — MutagenT ADL conductor

This project has the Helix orchestrator installed. To boot it, read and adopt the agent
definition at `.agents/skills/mutagent-helix/orchestrator.md` (run its activation-instructions: persona → system index →
ADL dashboard), then await a `*command`.

Trigger: `*mutagent` · `/mutagent-helix` · `boot`.

DASHBOARD RENDERING — HARD RULE (Codex): on `*mutagent`/`boot`/`*help`/`*status`, output the
orchestrator's `help-display-template` VERBATIM inside a fenced `text` code block. Preserve its
EXACT shape — the boxed MUTAGENT header (box-drawing chars), every panel (lifecycle · system index ·
setup/onboarding · state), and the command roster. Replace ONLY the `{placeholder}` tokens with
live values; change NOTHING else. Do NOT summarize, shorten, paraphrase, drop panels, or convert it
to Markdown headings/tables/bullets unless the operator explicitly asks for a condensed view.
<!-- @mutagent/helix boot -->
9 changes: 9 additions & 0 deletions submissions/localhost-3000/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<!-- @mutagent/helix boot -->
# Helix — MutagenT ADL conductor

This project has the Helix orchestrator installed. To boot it, read and adopt the agent
definition at `.claude/skills/mutagent-helix/orchestrator.md` (run its activation-instructions: persona → system index →
ADL dashboard), then await a `*command`.

Trigger: `*mutagent` · `/mutagent-helix` · `boot`.
<!-- @mutagent/helix boot -->
188 changes: 188 additions & 0 deletions submissions/localhost-3000/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
# Orbix — First-Pass Candidate Evaluation Agent

**Team:** localhost:3000

## What it does

Orbix is an AI-powered hiring platform. This submission specifies and implements the agent behind its core AI-interview flow: a bounded, auditable agent that takes a candidate through resume parsing → consent → a structured interview → an evidence-cited skill assessment, and then produces a **draft-only report** for a human recruiter.

The agent **never makes a final hire or reject decision**.

Every skill rating (`strong` / `weak` / `insufficient`) is grounded in specific resume and interview evidence. Direct contradictions between a candidate's resume and interview answers are flagged **separately** from the skill rating rather than being silently converted into a lower score.

Consent is required and recorded before interview data is captured. Incomplete interviews — including abandoned, timed-out, or technically failed sessions — do not produce a score.

## How it was built

### 1. Spec

We ran the full `*spec` interview through Helix (Codex harness), covering:

- Candidate journey
- Privacy and explainability requirements
- Access boundaries
- What the agent may read and write
- Human-approval boundaries
- Evaluation scenarios
The specification included 10 representative scenarios, including:

- Consent refusal
- Resume/interview conflicts
- Missing role requirements
- Incomplete interviews
The resulting specification files are:

```text
agentspec.yaml
agentspec.decisions.md
```

Both files document the approved agent contract and design decisions.

### 2. Build

The Codex session reached its monthly usage limit during `*build`, before Helix's builder agent could run.

Rather than block the submission, the agent was implemented directly against the approved specification.

The implementation follows the same contract and constraints defined by the specification and was verified through the evaluation suite.

To be transparent: the submitted implementation was not generated by `*build`; it is a direct implementation of the approved specification.

### 3. Evaluate

An evaluation suite was created covering all 10 scenarios defined in the specification.

**Result: 23/23 checks passed.**

The evaluation suite is:

```text
agents/orbix-first-pass-candidate-evaluator.eval.ts
```

## Important safety finding

While grounding the specification against Orbix's existing `app.js`, we identified a potentially unsafe automated hiring decision:

```js
c.status = score >= 75 ? 'Passed' : score >= 50 ? 'Review' : 'Rejected';
```

This automatically assigns a candidate status based on a score.

That conflicts with the agent's safety boundary because the AI system should not make the final hiring decision.

Instead of hiding this issue, we explicitly identified it during the spec-first process.

The intended recruiter workflow is:

```text
AI evaluation
Draft verification report
Human recruiter review
Human decision
```

This demonstrates how the specification can identify safety issues in the surrounding product rather than simply documenting the existing implementation.

## Mutagent Agent

The main agent is:

```text
orbix-first-pass-candidate-evaluator
```

| Item | Path |
|---|---|
| Agent implementation | `agents/orbix-first-pass-candidate-evaluator.ts` |
| Agent specification | `agentspec.yaml` |
| Specification decisions | `agentspec.decisions.md` |
| Evaluation suite | `agents/orbix-first-pass-candidate-evaluator.eval.ts` |

### Key capabilities

- Candidate information analysis
- Resume and project claim evaluation
- Structured interview evaluation
- Evidence-grounded skill assessment
- Resume/interview contradiction detection
- Consent-aware interview workflow
- Incomplete-interview handling
- Structured verification results
- Human-review boundary
- Auditable evaluation process
## Run the evaluation

From the submission directory:

```bash
npm install -g tsx
npx tsx agents/orbix-first-pass-candidate-evaluator.eval.ts
```

The evaluation suite contains 10 scenarios and 23 checks.

Expected result:

```text
23/23 checks pass
```

## Project Structure

```text
localhost-3000/
├── README.md
├── agentspec.yaml
├── agentspec.decisions.md
├── agents/
│ ├── orbix-first-pass-candidate-evaluator.ts
│ └── orbix-first-pass-candidate-evaluator.eval.ts
├── transcripts/
│ ├── Claude Code session transcripts
│ └── Codex session transcripts
├── app.js
├── styles.css
├── ai-interview-agent.html
├── ai-verification.html
├── analytics.html
├── candidate-detail.html
├── candidate-report.html
├── candidates.html
├── dashboard.html
├── login.html
├── resume-analysis.html
├── skill-passport.html
└── other Orbix application files
```

## Transcripts

The submission includes the available session transcripts used during development.

They are stored under:

```text
transcripts/
```

The directory contains the available Claude Code and Codex `.jsonl` session files, including the relevant main sessions and available subagent sessions.

## Traces

No separate `traces/` directory was available in the local project at submission time, so no trace files are claimed or fabricated in this submission.

## Product Feedback

Feedback was identified around the Codex harness usage-limit experience.

In particular, the usage-limit error during the build process did not clearly distinguish whether the user should retry later or reconfigure billing/usage settings. This created uncertainty and cost development time during the submission workflow.

Loading