Guidance for verifying documentation accuracy against running OpenStack infrastructure. Use when detecting documentation drift, validating operations procedures against live systems, or confirming that runbooks produce expected results on the deployed cloud. Implements NASA Product Verification (SP-6105 SS 5.3) applied to documentation artifacts.
This skill guides agents performing documentation verification for cloud infrastructure. Documentation drift -- the gap between what docs say and what the system does -- is the primary failure mode for operations manuals. The doc-verifier detects drift using NASA's TAID (Test, Analysis, Inspection, Demonstration) verification methods applied to documentation artifacts.
Documentation drift is insidious because it compounds silently. A single undetected drift item erodes operator trust. Once operators stop trusting documentation, they stop reading it and start improvising. The doc-verifier breaks this cycle by making verification systematic and repeatable.
Four categories of documentation drift exist, each with distinct detection strategies.
Definition: Document says setting X=A but the running system has X=B.
Detection strategy:
=, :, or YAML key-value patterns)/etc/kolla/*/ for Kolla-Ansible deployments, globals.yml)openstack configuration show)Common sources: Kolla-Ansible globals.yml changes, service reconfiguration, security hardening, upgrades.
Detection patterns:
OPS-KEYSTONE-*: Compare documented Fernet key rotation interval against keystone.conf [fernet_tokens]OPS-NOVA-*: Compare documented compute driver against nova.conf [DEFAULT] compute_driverOPS-NEUTRON-*: Compare documented ML2 plugin against ml2_conf.ini [ml2] mechanism_driversDefinition: Document references a URL, port, or API endpoint that has changed or is unreachable.
Detection strategy:
host:port patterns, API paths)curl -s -o /dev/null -w "%{http_code}")openstack endpoint list)Common sources: TLS migration (HTTP to HTTPS), port changes, VIP address changes, service catalog updates.
Definition: Documented steps no longer produce the documented results.
Detection strategy:
Common sources: CLI argument changes across OpenStack releases, output format changes, deprecated subcommands, renamed resources.
Detection patterns:
RB-KEYSTONE-*: Run openstack token issue and compare output fields to documented fieldsRB-NOVA-*: Run openstack server list and verify column headers match documentationRB-NEUTRON-*: Run openstack network list and verify output structureDefinition: Document references a software version that has been upgraded or changed.
Detection strategy:
openstack versions show, rpm -qa | grep openstack, docker image ls)Common sources: OpenStack minor releases, Kolla container rebuilds, base OS updates, Python package updates.
NASA SP-6105 SS 5.3 defines four verification methods. Applied to documentation verification:
Execute documented commands and compare output to documented expected results.
Approach:
$, #, or indented code blocks)Comparison strategies:
Compare documented configuration values against running configuration without executing commands.
Approach:
Targets: globals.yml, service .conf files, policy files, network configurations, certificate parameters.
Review documentation structure for completeness against the required format.
Checklist for operations procedures (OPS- format):*
OPS-{SERVICE}-{NNN} patternChecklist for runbooks (RB- format):*
RB-{SERVICE}-{NNN} patternWalk through an end-to-end documented scenario and confirm each step works as described.
Approach:
Demonstration scenarios (non-destructive):
openstack token issue through documented stepsopenstack server list, openstack network list, openstack volume listopenstack compute service list, openstack network agent listFor each documented procedure, build a verification script:
INPUT: Procedure document (Markdown)
PARSE: Extract (command, expected_output) pairs
FILTER: Remove destructive commands (create, delete, set, update, migrate)
RUN: Execute read-only commands against running system
COMPARE: Actual vs documented using appropriate strategy
REPORT: Per-procedure pass/fail with specific drift items
| Severity | Definition | Example | |----------|-----------|---------| | Critical | Procedure will fail if followed as written | Documented command uses deprecated flag; documented port is wrong | | Warning | Procedure works but output differs from documentation | Column headers changed; additional fields in output | | Info | Cosmetic differences that do not affect procedure outcome | Timestamp format change; UUID casing difference |
Each verification run produces a report:
VERIFICATION REPORT
Date: [ISO timestamp]
System: [hostname, OpenStack version]
Scope: [which documents were verified]
RESULTS:
Procedures verified: [N]
Pass: [N]
Fail: [N] (Critical: [N], Warning: [N], Info: [N])
DRIFT ITEMS:
1. [CRITICAL] OPS-NOVA-003 Step 4: 'openstack server create --nic'
Expected: "net-id" parameter
Actual: "network" parameter (changed in Zed release)
Fix: Update command in procedure
2. [WARNING] RB-KEYSTONE-001 Step 2: 'openstack token issue'
Expected: 4 columns in output
Actual: 5 columns (project_domain_id added)
Fix: Update expected output in runbook
Step 1: Inventory. Scan docs/operations-manual/ and docs/runbooks/ for all documented procedures. Build a registry of procedure IDs, commands, and expected outputs.
Step 2: Extract assertions. For each procedure, extract verifiable assertions: commands paired with expected outputs. Tag each assertion as read-only or destructive.
Step 3: Execute read-only assertions. Run all read-only commands against the running system. For destructive commands, verify only that preconditions and rollback sections exist.
Step 4: Compare. Match actual output to documented output using the appropriate comparison strategy (exact, pattern, presence, subset).
Step 5: Report. Generate verification report with drift items classified by severity. Flag Critical items for immediate documentation update.
Step 6: Update metadata. For verified documents, update LAST VERIFIED date and system version. For documents with Critical drift, mark as UNVERIFIED with drift details.
openstack server delete, openstack network delete, openstack volume delete, openstack project delete)openstack server create, openstack network create, openstack user set)list, show, token issue, config file reads, service status checksThe doc-verifier operates on the doc-sync communication loop (Priority 4) within the GSD communication framework.
Message flow:
Trigger conditions:
globals.yml or service config change)docs/operations-manual/ and docs/runbooks/ are the verification targetsSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer