git clone https://github.com/Intense-Visions/harness-engineering
T=$(mktemp -d) && git clone --depth=1 https://github.com/Intense-Visions/harness-engineering "$T" && mkdir -p ~/.claude/skills && cp -r "$T/agents/skills/claude-code/harness-onboarding" ~/.claude/skills/intense-visions-harness-engineering-harness-onboarding-494d3a && rm -rf "$T"
agents/skills/claude-code/harness-onboarding/SKILL.mdHarness Onboarding
Navigate an existing harness-managed project and generate a structured orientation for new team members. Map the codebase, understand constraints, identify the adoption level, and produce a summary that gets someone productive fast.
When to Use
- A new developer (human or agent) is joining a harness-managed project for the first time
- Resuming work on a project after extended time away and needing to re-orient
- When
triggers fire in an existing project (agent starting a new session)on_project_init - When someone asks "how does this project work?" or "where do I start?"
- NOT when initializing a new project (use initialize-harness-project)
- NOT when the project has no harness configuration (onboard to harness first with initialize-harness-project)
- NOT when deep-diving into a specific module (use standard code exploration — onboarding gives the big picture)
Process
Phase 1: READ — Load Project Configuration
-
Read
. This is the primary source of truth for agent behavior in the project. Note:AGENTS.md- Project description and purpose
- Architecture overview
- Conventions and coding standards
- Constraints and forbidden patterns
- Any special instructions or warnings
-
Read
. Extract:harness.config.json- Project name and stack
- Adoption level (basic, intermediate, advanced)
- Layer definitions and their directory mappings
- Dependency constraints between layers
- Registered skills and their triggers
- Persona configuration (if present)
-
Read
if it exists. This contains hard-won insights from previous sessions — decisions made, gotchas discovered, patterns that worked or failed. Summarize the most recent and most important entries..harness/learnings.md -
Read
if it exists. This reveals what was happening in the last session — current phase, active task, any blockers that were recorded..harness/state.json
Phase 2: MAP — Understand the Codebase Structure
-
Map the technology stack. Identify from package files, configuration, and code:
- Language(s) and version(s)
- Framework(s) and major libraries
- Test framework and test runner command
- Build tool and build command
- Package manager
- Database or data stores (if applicable)
-
Map the architecture. Walk the directory structure and identify:
- Top-level organization pattern (monorepo, single package, workspace)
- Source code location and entry points
- Layer boundaries (from
and actual directory structure)harness.config.json - Shared utilities or common modules
- Configuration files and their purposes
-
Map the conventions. Look for patterns in existing code:
- File naming conventions (kebab-case, camelCase, PascalCase)
- Test file location and naming (co-located, separate directory,
vs.test.ts
).spec.ts - Import style (relative, aliases, barrel files)
- Error handling patterns
- Logging patterns
- Code formatting (detect from config files:
,.prettierrc
,.eslintrc
)biome.json
-
Map the constraints. Identify what is restricted:
- Forbidden imports (from
dependency constraints)harness.config.json - Layer boundary rules (which layers can import from which)
- Linting rules that encode architectural decisions
- Any constraints documented in
that are not yet automatedAGENTS.md
- Forbidden imports (from
-
Map the design system (when present). Look for:
— W3C DTCG design tokens (colors, typography, spacing)design-system/tokens.json
— Aesthetic intent, anti-patterns, platform notesdesign-system/DESIGN.mdharness.config.json
block — strictness level, enabled platforms, token pathdesign- Active design skills — check if
,harness-design-system
,harness-accessibility
,harness-design
,harness-design-web
are availableharness-design-mobile - Design constraint violations — run a quick
scan to surface any existing issuesharness-accessibility - Token coverage — how many components reference tokens vs. hardcoded values
If no design system exists, note this as a potential improvement area.
-
Map the concerns. Identify areas that need attention:
- Are there TODOs or FIXMEs in the code?
- Does
pass cleanly, or are there warnings?harness validate - Are there known blockers in
?.harness/state.json - Is documentation up to date with the code?
- Are there tests? What is the approximate coverage?
Graph-Enhanced Context (when available)
When a knowledge graph exists at
.harness/graph/, use graph queries for faster, more accurate codebase mapping:
— map architecture automatically from module and layer nodes, replacing manual directory walkingquery_graph
— find entry points and key files by querying for high-connectivity nodessearch_similar
— show layer dependencies and module structure as a traversable graphget_relationships
Graph queries produce a complete architecture map in seconds, including transitive relationships that directory inspection misses. Fall back to file-based commands if no graph is available.
Phase 3: ORIENT — Identify Adoption Level and Maturity
-
Confirm the adoption level matches what
declares:harness.config.json- Basic:
andAGENTS.md
exist but no layers or constraintsharness.config.json - Intermediate: Layers defined, dependency constraints enforced, at least one custom skill
- Advanced: Personas, state management, learnings, CI integration
- Basic:
-
Assess harness health. Run
and note any issues. A project that declares intermediate but fails validation is not truly intermediate.harness validate -
Identify available skills. List the skills configured for the project. Note which are custom (project-specific) vs. standard (harness-provided). Each skill represents a workflow the team has formalized.
Phase 4: SUMMARIZE — Generate Orientation Output
- Produce a structured orientation summary. This is the deliverable. Format:
# Project Orientation: <project-name> ## Overview <1-2 sentence project description from AGENTS.md> ## Stack - Language: <language> <version> - Framework: <framework> - Tests: <test framework> (`<test command>`) - Build: <build tool> (`<build command>`) - Package manager: <pm> ## Architecture <Brief description of top-level organization> ### Layers | Layer | Directories | Can Import From | | ------- | ----------- | ----------------- | | <layer> | <dirs> | <allowed imports> | ### Key Components - <component>: <purpose> (<location>) ## Constraints - <constraint 1> - <constraint 2> ## Conventions - <convention 1> - <convention 2> ## Design System - **Tokens:** [present/absent] ([token count] tokens in [group count] groups) - **Aesthetic Intent:** [present/absent] (style: [style], strictness: [level]) - **Platforms:** [web, mobile, or none configured] - **Accessibility:** [baseline scan result — e.g., "3 warnings, 0 errors"] - **Design Skills:** [list of available design skills] ## Harness Status - Adoption level: <level> - Validation: <pass/fail with summary> - Available skills: <list> - State: <current phase/task if applicable> ## Recent Learnings - <most relevant learnings from .harness/learnings.md> ## Getting Started 1. <first thing to do> 2. <second thing to do> 3. <third thing to do>
-
Tailor "Getting Started" to the audience. For a new developer: how to set up the dev environment and run tests. For an agent resuming work: what the current task is and what to do next. For a reviewer: where to look and what constraints to check.
-
Present the summary to the human. Do not write it to a file unless asked. The orientation is a conversation artifact, not a project artifact.
Harness Integration
— Run during onboarding to assess project health and identify any configuration issues.harness validate
— List available skills to understand what workflows the team has formalized.harness skill list
— Run to verify dependency constraints are passing, which confirms layer boundaries are respected.harness check-deps
— View current state to understand where the last session left off.harness state show
— Primary source of project context and agent instructions.AGENTS.md
— Source of structural configuration (layers, constraints, skills).harness.config.json
— Historical context and institutional knowledge..harness/learnings.md
Success Criteria
- All four configuration sources were read (
,AGENTS.md
,harness.config.json
,.harness/learnings.md
).harness/state.json - Technology stack is accurately identified (language, framework, test runner, build tool)
- Architecture is mapped with correct layer boundaries and dependency directions
- Conventions are identified from actual code patterns, not assumed
- Constraints are enumerated from both
andharness.config.jsonAGENTS.md - Adoption level is confirmed (not just declared — validated)
- A structured orientation summary is produced with all sections filled
- The "Getting Started" section is actionable and tailored to the audience
was run and results are reportedharness validate
Rationalizations to Reject
| Rationalization | Reality |
|---|---|
| "I can skip reading .harness/learnings.md since it is just historical notes" | Learnings contain hard-won insights from previous sessions -- decisions made, gotchas discovered, patterns that worked or failed. Skipping them means repeating mistakes already diagnosed. |
| "The harness.config.json says intermediate, so I can report that without validation" | Declared adoption level must be confirmed, not assumed. A project that declares intermediate but fails harness validate is not truly intermediate. |
| "I will map the architecture by reading the directory names since that is faster than checking conventions in actual code" | Conventions must be identified from actual code patterns, not assumed from directory structure. File naming, import style, and error handling can only be verified by reading real source files. |
Examples
Example: Onboarding to an Intermediate TypeScript Project
READ:
Read AGENTS.md: - Project: Widget API — REST service for widget lifecycle management - Stack: TypeScript, Express, Vitest, PostgreSQL - Conventions: zod validation, repository pattern, kebab-case files Read harness.config.json: - Level: intermediate - Layers: presentation (src/routes/), business (src/services/), data (src/repositories/) - Constraints: presentation → business OK, business → data OK, data → presentation FORBIDDEN Read .harness/learnings.md: - "Date comparison needs UTC normalization — use Date.now()" - "The notifications table has a unique constraint on (userId, type) — upsert, don't insert" Read .harness/state.json: - Position: Phase execute, Task 4 of 6 - Blocker: none
MAP:
Stack: TypeScript 5.3, Express 4, Vitest 1.2, pg (node-postgres) Architecture: Single package, 3 layers, entry point src/index.ts Conventions: kebab-case files, co-located tests (.test.ts), barrel exports Constraints: 3 layers with strict downward-only imports Concerns: harness validate passes, 47 tests all passing
ORIENT:
Adoption level: intermediate (confirmed — layers defined, constraints enforced) Skills: harness-tdd, harness-execution, harness-code-review State: Mid-execution on a 6-task notification feature plan
SUMMARIZE:
Produce orientation with all sections. Getting Started for this context: 1. Read the plan at docs/plans/2026-03-14-notifications-plan.md 2. Resume execution at Task 4 (state shows Tasks 1-3 complete) 3. Note the UTC normalization gotcha from learnings before working with dates
Example: Onboarding to a Basic Project
READ:
Read AGENTS.md — exists, minimal content Read harness.config.json — level: basic, no layers defined No .harness/learnings.md No .harness/state.json
MAP and SUMMARIZE:
Adoption level: basic (confirmed — no layers or constraints) Getting Started: 1. Run npm install && npm test to verify the project builds and tests pass 2. Read AGENTS.md for project context and conventions 3. Consider migrating to intermediate level to add layer boundaries (use initialize-harness-project to upgrade)
Adoption Maturity
A mental model for where a team sits on the harness adoption curve. Not prescriptive — just orientation.
| Level | Name | Description |
|---|---|---|
| 1 | Manual | Write by hand, run commands manually. Harness is a reference, not a tool. |
| 2 | Repeatable | Skills installed, agent follows conventions consistently. Workflows are codified but enforcement is human-driven. |
| 3 | Automated | Mechanical gates in CI. runs on PRs. Failures auto-log to . The system catches mistakes before humans do. |
| 4 | Self-improving | Learnings accumulate in . Agents reference past failures before planning. Institutional knowledge compounds across sessions and team members. |
Most teams start at Level 1 and move up as they see the value. There is no pressure to reach Level 4 — each level delivers real benefits on its own.