# Agent Skills and Workflows

> Check project-specific instructions into the repo so an AI assistant does not rediscover your conventions each session.

Source: [https://askrjs.com/docs/tooling/skills](https://askrjs.com/docs/tooling/skills)

Status: stable. Packages: @askrjs/askr.

**Published packages are authoritative.** Examples may lag behind a published contract. When guidance differs, verify the exports and TypeScript declarations in your installed package, then file an issue.

## Example

Install the published project skills, keep them in version control, and review generated guidance against the current application before applying it.

```sh
npx askr skills install
npx askr skills sync
npx askr skills review foundation --cwd .

git diff -- skills
```

## Install skills

askr skills install [--cwd &lt;dir&gt;] [--force] copies the bundled Askr skills into a project's skills/ directory. It refuses to write into a non-empty skills/ directory unless you pass --force, which protects hand-authored or previously customized skills from being silently overwritten. New projects created with askr create already get this treatment automatically unless --no-skills was passed.

## Sync skills

askr skills sync [--cwd &lt;dir&gt;] [--force] is the update path for an existing project: it overwrites the bundled askr-* skill folders with the current versions and removes any askr-* folders that are no longer part of the bundle, while leaving unrelated custom skill folders untouched. Run it after upgrading @askrjs/cli to pick up skill content changes without hand-diffing each file.

## Review workflow

askr skills review &lt;prompt-id&gt; [--cwd &lt;dir&gt;] [--json] evaluates generated output against a deterministic rubric -- for example askr skills review foundation --cwd ./candidate-app checks a candidate project against the foundation prompt's rules, and askr skills review list shows the available prompt ids. Rubrics check concrete things like whether obsolete boolean or guest-string auth declarations show up in the code, or whether styling uses CSS var(--...) tokens and data-slot attributes instead of ad hoc classes.

## Project ownership

Because sync only ever touches askr-* prefixed folders, any custom skill you add under a different name survives every sync indefinitely -- the bundled skills and your project-specific ones coexist in the same skills/ directory without stepping on each other. That naming convention is the entire mechanism; there's no separate manifest or config file tracking which folders are bundled versus custom.

## Documentation navigation

[Previous](https://askrjs.com/docs/tooling/dependency-updates/index.md) | [Next](https://askrjs.com/docs/tooling/vite/index.md)
