> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comet.rpamis.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect real Skills

> Inspect actual Skill content, declare input, output, capabilities, and effects, then bind pinned dependencies to a workflow.

You have research, writing, and review Skills that should generate a report together. Inspect actual files, then declare how each Skill executes, what it delivers, and how results are accepted. A Skill name does not prove a capability.

## Read a Skill and its resources

Put the actual directory inside an independent package, such as weekly-report/skills/research, with a nonempty `SKILL.md` and referenced resources. Run this script from the project root:

```js theme={null}
import path from 'node:path';
import { inspectApplicationSkill } from '@rpamis/comet/applications';

const inspected = await inspectApplicationSkill(path.resolve('weekly-report/skills/research'));
console.log(inspected.contentHash);
console.log(Object.keys(inspected.files));
```

The result includes the whole directory's content hash and files. Inspection verifies local Markdown references and rejects missing resources, symbolic links, and references outside the dependency. Scripts and resources are pinned along with SKILL.md.

## Declare the execution contract

Read the content and record these conditions in the manifest adapter:

| Configuration | Decision required |
| - | - |
| kind | Guidance, action, check, or child workflow use. |
| `inputSchema`, `outputSchema` | Business fields accepted and actual results produced. |
| scope, `requiredCapabilities` | Work scope and required host capabilities. |
| interaction, `controlsApproval` | Interaction and approval control without transferring original workflow decisions. |
| `sideEffect` | Read-only, project write, or external operation. |
| completion | Self-report, machine check, or independent review. |
| failure, recovery | Stop, repair, or retry; handling of unknown results. |
| review | Review status, content hash, and excerpts proving capabilities and effects. |

For example, a research Skill produces sources and conclusions without publishing. Declare publication as a separate tool after current-draft approval. File-writing Skills declare paths and [artifact contracts](/en/sdk/artifact-validation.md).

## Pin content and validate adaptation

A dependency records id, relative root, `contentHash`, and reviewed adapter. Put actual records in the manifest skills array; bindings connects steps to reviewed capabilities.

This script reads a prepared manifest and validates its first dependency without generating or approving contracts:

```js theme={null}
import { readFile } from 'node:fs/promises';
import { adaptApplicationSkill } from '@rpamis/comet/applications';

const packageRoot = path.resolve('weekly-report');
const manifest = JSON.parse(await readFile(path.join(packageRoot, 'application.json'), 'utf8'));
if (!manifest.skills.length) throw new Error('No Skill dependency');
const adapted = await adaptApplicationSkill(manifest.skills[0], packageRoot);
console.log(adapted);
```

Append it to the inspection script above. Changed hashes, incomplete contracts, or review evidence that does not match original content require correction or a new review. Do not merely replace hashes to bypass changes.

## Connect the host and test actual execution

The host provides Skill loading, tools, current authorization, and real results. The application Skill executor checks bindings, capabilities, and authorization before running pinned content. Unknown external results use host reconciliation.

In a temporary project test valid input/output, missing tools, denied permission, business-invalid output, and changed dependencies. Loader acceptance does not prove correct model execution; see [application evaluation](/en/eval/applications.md).

Use [Compose any Skill](/en/skill-creator/getting-started.md) for Agent-assisted inspection, planning, and compilation. See [composition](/en/sdk/composition.md) for manual assembly.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.