|
| 1 | +# Factory Configuration |
| 2 | +<!-- This file configures the Remote Factory for your project. --> |
| 3 | +<!-- The factory reads this during Init mode and generates .factory/config.json from it. --> |
| 4 | +<!-- Fill in each section below. --> |
| 5 | + |
| 6 | +## Goal |
| 7 | +<!-- A single sentence describing what this project should achieve. --> |
| 8 | + |
| 9 | +Kubernetes-native AI automation platform that orchestrates agentic sessions through containerized microservices (Go backend/operator, NextJS frontend, Python runner). |
| 10 | + |
| 11 | +## Scope |
| 12 | + |
| 13 | +### Modifiable |
| 14 | +<!-- Files and directories the factory is allowed to create or edit. --> |
| 15 | +<!-- One path per line. Glob patterns are supported. --> |
| 16 | + |
| 17 | +- components/backend/**/*.go |
| 18 | +- components/operator/**/*.go |
| 19 | +- components/frontend/src/**/*.ts |
| 20 | +- components/frontend/src/**/*.tsx |
| 21 | +- components/runners/ambient-runner/**/*.py |
| 22 | +- components/ambient-cli/**/*.go |
| 23 | +- components/public-api/**/*.go |
| 24 | +- components/ambient-api-server/**/*.go |
| 25 | +- components/ambient-sdk/**/*.go |
| 26 | +- components/ambient-sdk/**/*.py |
| 27 | + |
| 28 | +### Read-only |
| 29 | +<!-- Files the factory may read but must never modify. --> |
| 30 | + |
| 31 | +- CLAUDE.md |
| 32 | +- README.md |
| 33 | +- components/manifests/**/* |
| 34 | +- eval/**/* |
| 35 | + |
| 36 | +## Guards |
| 37 | +<!-- Rules the factory must never violate. Checked before every commit. --> |
| 38 | + |
| 39 | +- Do not delete or overwrite existing tests |
| 40 | +- Do not modify files outside the declared scope |
| 41 | +- Do not introduce secrets or credentials into the repository |
| 42 | +- All user-facing API ops must use GetK8sClientsForRequest(c), never the backend service account |
| 43 | +- No tokens in logs/errors/responses — use len(token) for logging |
| 44 | +- No panic() in production Go code — return fmt.Errorf with context |
| 45 | +- No any types in frontend TypeScript |
| 46 | + |
| 47 | +## Eval |
| 48 | + |
| 49 | +### Command |
| 50 | +<!-- The shell command the factory runs to score a change. --> |
| 51 | +<!-- It must output JSON to stdout matching the EvalResult format. --> |
| 52 | + |
| 53 | +```bash |
| 54 | +python eval/score.py |
| 55 | +``` |
| 56 | + |
| 57 | +### Threshold |
| 58 | +<!-- Minimum composite score (0.0-1.0) required to keep a change. --> |
| 59 | + |
| 60 | +0.8 |
| 61 | + |
| 62 | +## Target Branch |
| 63 | +<!-- Branch that experiment PRs target. Default: main --> |
| 64 | +<!-- Set to a different branch (e.g. factory/dev) to stage factory changes before merging to main --> |
| 65 | + |
| 66 | +main |
| 67 | + |
| 68 | +## Project Eval |
| 69 | +<!-- No project-specific eval dimensions --> |
| 70 | + |
| 71 | +## Eval Weights |
| 72 | +- hygiene: 0.50 |
| 73 | +- growth: 0.50 |
| 74 | + |
| 75 | +## Smoke Test |
| 76 | +<!-- Optional shell command that must pass before any change is kept. --> |
| 77 | +<!-- If configured, this runs as part of `factory precheck` — failure = mandatory revert. --> |
| 78 | +<!-- Use for e2e verification: hit an endpoint, run a CLI command, check a process starts. --> |
| 79 | +<!-- Example: |
| 80 | +```bash |
| 81 | +curl -sf http://localhost:8000/health |
| 82 | +``` |
| 83 | +--> |
| 84 | + |
| 85 | +## Constraints |
| 86 | +<!-- Soft rules that guide behavior but don't block commits. --> |
| 87 | + |
| 88 | +- Prefer small, incremental changes over large rewrites |
| 89 | +- Each change should be accompanied by at least one test |
| 90 | +- Follow the existing code style and conventions |
| 91 | +- Use conventional commits (squashed on merge to main) |
| 92 | +- OwnerReferences on all K8s child resources |
| 93 | + |
| 94 | +## Research Target |
| 95 | +<!-- Not a research project --> |
| 96 | + |
| 97 | +## Mutable Surfaces |
| 98 | +<!-- Files the Builder is allowed to modify during research experiments. --> |
| 99 | +<!-- One glob pattern per line. Only used in research mode. --> |
| 100 | +<!-- Example: |
| 101 | +- src/**/*.py |
| 102 | +- config/*.yaml |
| 103 | +--> |
| 104 | + |
| 105 | +## Fixed Surfaces |
| 106 | +<!-- Ground truth files, test data, eval infrastructure. --> |
| 107 | +<!-- These files are fingerprinted for leakage detection and MUST NOT be modified. --> |
| 108 | +<!-- One glob pattern per line. Only used in research mode. --> |
| 109 | +<!-- Example: |
| 110 | +- tests/gold/*.json |
| 111 | +- eval/**/*.py |
| 112 | +- data/benchmark/*.jsonl |
| 113 | +--> |
| 114 | + |
| 115 | +## Research Constraints |
| 116 | +<!-- Additional rules for the research loop. Only used in research mode. --> |
| 117 | +<!-- Example: |
| 118 | +- Do not use GPT-4 (cost constraint) |
| 119 | +- Each experiment must complete within 30 minutes |
| 120 | +--> |
| 121 | + |
| 122 | +## Cost Budget |
| 123 | +<!-- Per-cycle or total budget constraints for research experiments. --> |
| 124 | +<!-- Example: $5/cycle, $50 total --> |
0 commit comments