AgentSkillsCN

trestle-workspace

了解 Compliance Trestle 的工作区结构、初始化流程与目录规范。适用于用户询问 Trestle 工作区、目录布局、.trestle 配置、模型目录,或如何搭建与组织 OSCAL 合规工作区时使用。

SKILL.md
--- frontmatter
name: trestle-workspace
description: >-
  Knowledge about Compliance Trestle workspace structure, initialization, and directory conventions.
  Use when users ask about trestle workspaces, directory layout, .trestle config, model directories,
  or how to set up and organize an OSCAL compliance workspace.
allowed-tools: Bash, Read, Glob, Grep, Write, Edit

Trestle Workspace Management

Workspace Structure

A trestle workspace is an opinionated directory structure (similar to git) that manages OSCAL compliance documents.

Core Directories

code
.
├── .trestle/              # Config dir (config.ini, cache, templates)
├── dist/                  # Assembled output files
│   ├── catalogs/
│   ├── profiles/
│   ├── component-definitions/
│   ├── system-security-plans/
│   ├── assessment-plans/
│   ├── assessment-results/
│   └── plan-of-action-and-milestones/
├── catalogs/              # Catalog source models
├── profiles/              # Profile source models
├── component-definitions/ # Component definition source models
├── system-security-plans/ # SSP source models
├── assessment-plans/      # Assessment plan source models
├── assessment-results/    # Assessment results source models
└── plan-of-action-and-milestones/  # POA&M source models

Model Instance Layout

Each model instance lives in its own subdirectory:

code
catalogs/
└── nist-800-53/
    └── catalog.json       # The actual OSCAL model file

Initialization Modes

trestle init creates the workspace. Three modes available:

ModeFlagCreatesUse Case
Full--full (default).trestle/ + dist/ + all model dirsFull functionality: local models, API, governed docs
Local--local.trestle/ + all model dirs (no dist/)Local OSCAL model management only
GovDocs--govdocs.trestle/ onlyDocument governance only

Key Rules

  • File and directory names created by trestle MUST NOT be changed manually
  • Within one model directory, do not mix JSON and YAML formats
  • The .trestle/ directory contains config files, caches, and templates
  • The dist/ directory holds assembled/merged output files
  • Model files can be JSON (.json) or YAML (.yaml, .yml)
  • Default format is JSON; YAML is supported on a best-effort basis

Configuration

The workspace config lives at .trestle/config.ini. It can store task configurations and other settings used by trestle commands.

Common Operations

  • Check if workspace exists: Look for .trestle/ directory
  • List models: Check subdirectories of model-type directories (e.g., catalogs/*/catalog.json)
  • Validate workspace: Run trestle validate -a to validate all models