# One Manage Documents

> Create, read, update, and delete standalone workspace documents in One Horizon. Use when asked to "create a spec", "write a requirement doc", "find all documents", "update this document", "delete this doc", or "show document content". For initiative description edits, use patch-document through one-task-management instead. Requires One Horizon MCP.

- **Type:** Skill
- **Install:** `agentstack add skill-onehorizonai-skills-one-manage-documents`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [onehorizonai](https://agentstack.voostack.com/s/onehorizonai)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [onehorizonai](https://github.com/onehorizonai)
- **Source:** https://github.com/onehorizonai/skills/tree/main/skills/one-manage-documents

## Install

```sh
agentstack add skill-onehorizonai-skills-one-manage-documents
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Manage Documents

Create and manage standalone workspace documents. Initiative descriptions use a separate patch path.

**Do not use this skill for initiative description edits.** Use `patch-document` with `taskId` via `one-task-management` for that. This skill manages documents by `documentId`.

## Document model

**Types:** `Requirement` for specs, requirements, and design docs | `Task` for task-scoped documents

**Statuses:** `Draft` (default) | `Completed`

## Tool selection

| Goal | Tool |
|---|---|
| Create a new document | `create-document` |
| Fetch a document by ID | `get-document` |
| Replace document fields (title, content, status) | `update-document` |
| Targeted text patch by document ID | `patch-document` |
| Search or filter document metadata | `find-documents` |
| Delete a document | `delete-document` |

`update-document` replaces whole fields by `documentId`. It is not for initiative descriptions; use `patch-document` with `taskId` for those.

## Rules

- If `workspaceId` is unknown or the user has multiple workspaces, call `list-workspaces` first.
- `find-documents` is a discovery/list tool. It returns document metadata plus `excerpt`, not full `content`.
- Use `find-documents` for IDs, titles, statuses, task links, and excerpts. Use `get-document` with the selected `documentId` whenever full document content is needed.
- `get-document`, `update-document`, and `delete-document` all require `documentId`. Call `find-documents` first if you only have a title or filter criteria, then call `get-document` before reading or summarizing the full body.
- Use `patch-document` with `documentId` for targeted edits to standalone documents when replacing the whole `content` field would be unnecessarily broad.
- Do not use `update-document` for initiative description edits. Use `patch-document` with `taskId` instead.
- Do not call `delete-document` without explicit user confirmation; deletion is not reversible.

## Create a document

```json
create-document({
  "workspaceId": "",
  "title": "Auth Flow Requirements",
  "content": "## Overview\n\nFull markdown content here.",
  "type": "Requirement",
  "status": "Draft"
})
```

`type` is required. Allowed values: `Requirement`, `Task`.

## Get a document

```json
get-document({
  "workspaceId": "",
  "documentId": ""
})
```

## Update a document

Replaces the provided fields. Omit fields that should stay unchanged.

```json
update-document({
  "workspaceId": "",
  "documentId": "",
  "title": "Updated title",
  "status": "Completed"
})
```

## Patch a document

Use for targeted standalone document edits by `documentId`.

```json
patch-document({
  "workspaceId": "",
  "documentId": "",
  "ops": [
    {
      "kind": "replace_text",
      "target": "Old wording",
      "replacement": "New wording"
    }
  ]
})
```

## Find documents

Filter by type, status, task link, or creator. The result is metadata plus `excerpt` only:

```json
find-documents({
  "workspaceId": "",
  "types": ["Requirement"],
  "statuses": ["Draft"],
  "taskId": "",
  "limit": 20
})
```

Use `query` for name/title search:

```json
find-documents({
  "workspaceId": "",
  "query": "auth spec"
})
```

If the user needs the document body after choosing a result, call:

```json
get-document({
  "workspaceId": "",
  "documentId": ""
})
```

## Delete a document

Only call after the user has explicitly confirmed.

```json
delete-document({
  "workspaceId": "",
  "documentId": ""
})
```

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [onehorizonai](https://github.com/onehorizonai)
- **Source:** [onehorizonai/skills](https://github.com/onehorizonai/skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-onehorizonai-skills-one-manage-documents
- Seller: https://agentstack.voostack.com/s/onehorizonai
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
