Skip to content
Back to skills

Ynh Dev

ASecurity

Development workflow for the ynh codebase. Build, test, lint, and format in the right order.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 20, 2026
ai-agentsgobashdockertestinggit

Works with

  • cli
  • mcp

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned October 20, 2026

npx -y skills add eyelock/ynh --skill ynh-dev --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ynh Dev?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ynh Dev
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/eyelock-ynh-dev/badge)](https://www.skillsdirectory.com/skills/eyelock-ynh-dev)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ynh-dev
description: Development workflow for the ynh codebase. Build, test, lint, and format in the right order.
---

# ynh Development Workflow

You are helping a developer work on the ynh codebase.

## References

Read these before starting work:

- `references/architecture.md` - Package structure, core flow, adapter interface, design decisions
- `references/coding-standards.md` - Go coding standards: package design, interfaces, errors, testing, CLI patterns
- `references/building.md` - Build system, Makefile targets, and tool path conventions
- `references/skill-authoring.md` - Required reading (https://agentskills.io/) before creating or modifying skills
- `references/agent-and-baseline.md` - The agent loop and the baseline ratchet: convergence, stuckness, budgets, checkpoints, trajectory redaction, and why the gate forgives what it does

## Quick checks

Run the full CI pipeline:

```bash
make check
```

This runs deps, format, lint, test, and build in sequence. Fix any issues before committing.

## Individual steps

If you need to run steps individually:

```bash
make deps      # install prerequisites (goimports, golangci-lint)
make format    # goimports + gofmt
make lint      # golangci-lint
make test      # go test with race detection and coverage
make build     # build binary to bin/ynh
```

Target a specific package:

```bash
make test FILE=./cmd/ynh
make test FILE=./internal/assembler
```

## Before committing

1. Run `make check` - all steps must pass
2. Check test coverage - new features should include tests
3. Review the test matrix in `references/architecture.md` if touching assembler/resolver logic

## Manual testing

After code changes, verify against the relevant tutorial in `docs/tutorial/`.
`docs/tutorial/manual-test-plan.md` adds edge cases the tutorials do not cover.

Tutorial filenames are descriptive, not numbered — do not cite them by number.

| Package / area | Tutorial |
|---|---|
| `cmd/ynh` (install, run, ls, uninstall) | `first-harness.md` |
| `internal/vendor`, `internal/symlink` | `vendors-and-symlinks.md` |
| `internal/resolver` (includes, Git sources) | `composition.md` |
| `internal/assembler` (delegates) | `delegation.md` |
| `internal/exporter` | `export.md` |
| `internal/marketplace` | `marketplace.md` |
| `internal/registry`, `internal/sources` | `registry-and-discovery.md` |
| `cmd/ynd` (create, lint, validate, fmt, compress) | `developer-tools.md` |
| `cmd/ynd` (preview, compose, diff) | `developer-preview.md` |
| Docker image build | `docker-image.md` |
| Hooks | `hooks.md` |
| MCP servers | `mcp-servers.md` |
| Profiles | `profiles.md` |
| Focus | `focus.md` |
| Project-local config | `project-local-config.md` |
| `internal/clischema`, `internal/jsonschema` | `structured-output.md` |
| `ynh include` editing | `include-editing.md` |
| `internal/namespace`, `internal/migration` | `namespacing-and-migration.md` |
| `internal/plugin` (sensor declarations) | `sensors.md` |
| `internal/gate`, `internal/baseline` | `check.md` |
| `internal/agent` | `agent-loop.md` |
| `internal/freshness`, shadow mode | `shadow-mode.md` |

Run the relevant tutorial steps end-to-end before committing. Build first with
`make build` so the binaries reflect your changes. The tutorials use `/tmp/` as
a scratch directory; the `evals` agent has the isolation rules.

## Common issues

- **Tool not found**: The Makefile uses full paths to GOPATH/bin for go-installed tools. Run `make deps` if tools are missing.
- **Lint errors**: `errcheck` is strict - all returned errors must be handled, even in tests
- **Test isolation**: Always use `t.TempDir()` and `t.Setenv("YNH_HOME", "")` to avoid leaking state

Files in this skill

  • SKILL.md3.6 KB
  • references/agent-and-baseline.md10.9 KB
  • references/architecture.md6.6 KB
  • references/building.md3.2 KB
  • references/coding-standards.md7.4 KB
  • references/skill-authoring.md954 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.