licensed-machine-prompt-orchestration
Design self-contained prompts for licensed machines (Windows, no Hermes) that Codex / Codex / Gemini CLIs can execute autonomously. Covers fixture generation, solver validation, and cross-machine data bridging.
Best use case
licensed-machine-prompt-orchestration is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Design self-contained prompts for licensed machines (Windows, no Hermes) that Codex / Codex / Gemini CLIs can execute autonomously. Covers fixture generation, solver validation, and cross-machine data bridging.
Teams using licensed-machine-prompt-orchestration should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/licensed-machine-prompt-orchestration/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How licensed-machine-prompt-orchestration Compares
| Feature / Agent | licensed-machine-prompt-orchestration | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Design self-contained prompts for licensed machines (Windows, no Hermes) that Codex / Codex / Gemini CLIs can execute autonomously. Covers fixture generation, solver validation, and cross-machine data bridging.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Licensed-Machine Prompt Orchestration
Use this skill when you need to prepare work for a machine that has commercial solver licenses (OrcFxAPI, ANSYS, etc.) but does NOT have Hermes installed. The machine typically has Codex CLI, Codex CLI, and/or Gemini CLI available.
## When to use
- Generating solver fixtures (.owr, .sim, .dat) that require licensed APIs
- Validating dev-primary pipeline outputs against authoritative solver data
- Running calculations that can only execute on the licensed machine
- Any cross-machine workflow where dev-primary prepares code and the licensed machine produces evidence
## Prompt design principles (learned from 3 iterations)
### 1. Self-contained — no external context assumed
The agent on the licensed machine has NO memory, NO skills, NO Hermes. Every prompt must include:
- Exact workspace path (e.g., `D:\workspace-hub`)
- Which Python command to use (`python` not `uv run` on Windows)
- Full inline scripts — do NOT reference functions in packages the agent might not find
- `git pull` as the first step, `git push` as the last step
### 2. Inline Python over module imports
BAD (breaks when sys.path isn't set up):
```
from digitalmodel.hydrodynamics.hull_library.rao_extractor import xlsx_to_rao_data
```
GOOD (works anywhere):
```python
python -c "
import OrcFxAPI
d = OrcFxAPI.Diffraction()
d.LoadResults(r'path\to\file.owr')
print('Frequencies:', len(d.frequencies))
"
```
For longer scripts, use `python << 'PYEOF'` heredoc on Git Bash, or write a temp .py file.
If you MUST import from the repo, prefix with:
```python
import sys; sys.path.insert(0, r'digitalmodel\src')
```
### 3. Each prompt writes to non-overlapping paths
Structure prompts so Terminal 1 runs them sequentially and each writes to different directories:
- PROMPT 1 → `digitalmodel/tests/fixtures/solver/hemisphere.*`
- PROMPT 2 → `digitalmodel/tests/fixtures/solver/L02_*`
- PROMPT 3 → `output/orcaflex_validation/*`
This avoids git contention if prompts are accidentally parallelized.
### 4. Graceful failure — always comment on the issue
Every prompt must have a failure path that:
1. Catches the error
2. Comments on the relevant GitHub issue explaining what failed
3. Moves on to the next prompt
Example:
```
If it fails, skip to STEP 5 and do:
gh issue comment 1789 --body "Hemisphere BLOCKED. Error: [paste]. Moving on."
```
### 5. Verify before commit
Every prompt should include a verification step BETWEEN generation and commit:
```python
# Verify the fixture loads
python -c "import OrcFxAPI; d=OrcFxAPI.Diffraction(); d.LoadResults(r'path.owr'); print('OK:', len(d.frequencies), 'freqs')"
```
### 6. Use the same xlsx export template everywhere
When generating xlsx sidecars from .owr files, use this canonical template. It produces the "pipeline format" that the rao_extractor.py can auto-detect:
Sheets: Summary, RAOs, AddedMass, Damping, Discretization
- RAOs columns: `{DOF}_Mag_H{heading}`, `{DOF}_Phase_H{heading}`
- AddedMass/Damping columns: `{DOFi}_{DOFj}` for full 6x6
CRITICAL: Sort frequencies ascending (`sort_idx = np.argsort(freq_rad)`) before writing.
## Licensed-machine prompt file structure
Place prompts at: `docs/plans/licensed-win-1-session-N-prompts.md`
Standard sections:
1. **Prerequisites** — git pull, pip install checks, OrcFxAPI version verify
2. **PROMPT N** blocks — each with Priority, Time estimate, Issue reference, STEP-by-STEP instructions
3. **Execution Plan** — Terminal 1 (sequential Codex -p commands), Terminal 2 (verification)
4. **Git Contention Map** — table showing which prompt writes where
5. **Key Reminders** — python not uv run, git pull/push, digitalmodel is separate repo
## Execution on the licensed machine
```powershell
cd D:\workspace-hub
git pull origin main
cd digitalmodel && git pull origin main && cd ..
Codex -p "Read docs/plans/licensed-win-1-session-N-prompts.md, execute PROMPT 1. Use python (not uv run). Commit and push results."
Codex -p "Read docs/plans/licensed-win-1-session-N-prompts.md, execute PROMPT 2. Use python (not uv run). Commit and push results."
```
## Cross-machine data bridge pattern
The key insight from this work stream: **use xlsx as the license-free data bridge**.
1. Licensed machine runs the solver → produces binary .owr
2. Licensed machine ALSO exports .xlsx sidecar (openpyxl, inline script)
3. Both .owr + .xlsx are committed to fixtures/
4. Dev-primary reads ONLY the .xlsx (no solver license needed)
5. Licensed machine validates xlsx matches .owr at machine-epsilon precision
This pattern works for any proprietary binary format where you need dev-primary to work without the licensed reader.
## OrcFxAPI version pitfalls (discovered on licensed-win-1)
| Pattern | Works | Does NOT work |
|---------|-------|---------------|
| Frequency count | `len(np.array(d.frequencies))` | `d.frequencyCount` |
| Heading count | `len(np.array(d.headings))` | `d.headingCount` |
| Body count | `np.array(d.addedMass).shape[1] // 6` | `d.bodyCount` |
| Model objects | count manually | `model.objectCount` |
Always use the numpy-array approach for portability across OrcFxAPI versions.
## Validation script pattern
After generating fixtures, always create a validation script that compares xlsx against .owr:
```python
# Pattern: load .owr with OrcFxAPI, load .xlsx with openpyxl, compare
# Validate: frequencies, RAO amplitudes (relative), added mass (absolute)
# Threshold: machine epsilon for pipeline-format xlsx (bit-exact)
# Store script at: scripts/solver/validate_xlsx_against_owr.py
```
The validation proves the xlsx sidecar is trustworthy — dev-primary work inherits this proof.
## Session report pattern
After each licensed-machine session, create:
`docs/reports/YYYY-MM-DD-licensed-win-1-session-N-report.md`
Include: outcomes table (DONE/BLOCKED per prompt), new fixtures, validation results, issue comments posted, API lessons learned, remaining work.Related Skills
plan-review-prompt-refresh-after-plan-edits
Refresh reviewer prompt files from the latest on-disk plan before every adversarial re-review. Prevents Codex/Gemini from critiquing stale plan text after local edits.
multi-file-tax-prep-orchestration
Structured approach to complex multi-file tax return preparation with traceability and planning
label-driven-prompt-generation-architecture
Pattern for building automation scripts that classify GitHub issues into prompt templates using label-based routing and extract contextual data for batch processing
agent-team-prompt-generation
Create self-contained execution prompts that define multi-role workflows for Codex sessions without external dependencies
live-state-aware-overnight-implementation-prompts
Design overnight implementation prompts that begin with a live repo/CI precheck so workers continue from partial progress instead of replaying stale handoffs.
single-terminal-gh-issue-prompts
Generate live issue-specific Codex prompts for a single terminal, with repo-aware path contracts and plan-gate safety checks.
provider-review-prompt-path-guard
Prevent adversarial review dispatch failures caused by sandbox/tmp path mismatches and provider CLI working-directory drift when launching Codex or Gemini with prompt files.
plan-resubmit-wave-prompts
Run a planning-only multi-terminal wave to harden blocked `status:plan-review` issues for fresh adversarial re-review, with zero implementation work and explicit path ownership.
overnight-parallel-agent-prompts
Design self-contained prompts for 3-5 terminals to run overnight without supervision. Ensures zero git contention, provider-optimal allocation, and a clear morning deliverable summary.
multi-machine-ai-readiness-and-issue-triage
Assess a multi-machine, multi-repo AI-enabled workspace for readiness, provider allocation, and issue prioritization.
adversarial-review-prompt-refresh-guard
Prevent stale plan/code review prompts from being sent to Codex/Gemini after the underlying artifact changed.
absolute-path-review-prompt-dispatch
Prevent adversarial review dispatch failures caused by relative prompt paths, superseded background sessions, and stale completion notices when launching Codex/Gemini review jobs.