pacificstudio/openase/openase-platform
- community
Checking that the SKILL.md file is still in the repository.
Platform operations for tickets, projects, and runtime coordination inside OpenASE.
Install
npx vskill@latest install pacificstudio/openase/openase-platformSKILL.md
OpenASE Platform Operations
Prefer the wrapper injected into the workspace:
This wrapper is the openase binary with the current workspace's OpenASE platform context already attached. Use it first. Do not hand-roll URLs, guess endpoints, bypass the platform by writing the database directly, or fake platform state.
Core Concepts
Use these distinctions before you choose commands or explain the platform to a user:
workflow: the execution policy for a role. A workflow decides which agent
handles work, which ticket statuses it may pick up, which statuses count as finished, which harness instructions and skills are active, and which platform scopes the runtime may use.
updates: curated project progress threads for humans. Use these for
milestone checkpoints, risk reporting, stakeholder communication, and discussion. Updates are intentionally higher-signal than raw runtime logs.
activity: the append-only project event stream. It records what actually
happened across tickets, agents, workflows, and platform writes for traceability, debugging, and auditability.
One short mental model:
- workflows decide how work runs
- activity records what happened
- updates summarize what matters
Keep the boundaries clear:
- Do not describe
workflowas "just a prompt"; it is prompt + routing +
policy + execution limits.
- Do not treat
updatesas a synonym foractivity; updates are curated,
while activity is the raw event timeline.
- Do not treat
activityas a task board; it explains history, not desired
future state.
What This Skill Is For
OpenASE is not a small helper that just runs commands. It is an issue-driven automated software engineering platform. Per the PRD, it is responsible for at least:
- Project control: descriptions, statuses, repos, workflows, skills, and
scheduled jobs
- Ticket control: lifecycle, status transitions, comment primitives,
usage/cost, and external links
- Execution control: agents, providers, machines, runtimes, and orchestration
loops
- Controlled autonomy: agents can operate the platform within granted scope
and close the loop from claim to execution to platform writeback to follow-up tickets
- Auditability: every platform write goes through the API / ActivityEvent /
timeline and stays attributable
For agents, the core purpose of openase is not just inspection. It is reading and writing real control-plane state inside platform-enforced boundaries. The tickets you create, project descriptions you update, repos you register, and comments you append all affect later scheduling, UI state, audit trails, and other agents' context.
Treat openase as the control-plane API for the current engineering project.
- The code repository is only a workspace, not the task system.
- Tickets, projects, workflows, skills, and machines in OpenASE are the real
control-plane entities.
- When you need to change platform state, prefer the
openaseCLI. Do not try
to express platform state indirectly by editing local files.
- Read before you write: inspect the current state first, then make the
smallest necessary change.
- If you exceed scope, the platform returns
403. That usually means the
current harness did not grant the required platform_access.
Runtime Contract First
The runtime injects a capability contract that tells you which principal kind, scopes, and environment variables are actually available in this session. Treat that runtime contract as the source of truth.
Common environment variables include:
OPENASE_API_URL: OpenASE API base URLOPENASE_AGENT_TOKEN: current agent tokenOPENASE_PROJECT_ID: current project UUIDOPENASE_TICKET_ID: current ticket UUID; only present in ticket runtime or
ticket-focused Project AI
OPENASE_CONVERSATION_ID: current project conversation UUID; available in
Project AI conversations
OPENASE_PRINCIPAL_KIND: current principal kind, such asticket_agentor
project_conversation
OPENASE_AGENT_SCOPES: current token scopes, comma-separated
Common platform subcommands auto-fill context in this order:
- project scope:
--project-id->OPENASE_PROJECT_ID - ticket scope: positional
[ticket-id]->--ticket-id->
OPENASE_TICKET_ID
- API URL:
--api-url->OPENASE_API_URL - token:
--token->OPENASE_AGENT_TOKEN
Important limits:
- Most ID parameters require UUIDs and do not accept human-readable ticket
identifiers such as ASE-42.
- Output defaults to JSON and can be filtered with
--json,--jq, or
--template.
- When platform calls fail, the CLI prints the HTTP method, path, status, and
API error code directly, so you do not need to guess.
- Tokens are short-lived and scope-bound; not every workflow can modify
projects, repos, or scheduled jobs.
- Shared wrapper flags accept both kebab-case and snake_case, such as
--status-name / --status_name and --body-file / --body_file.
Principal-Specific Constraints
Check OPENASE_PRINCIPAL_KIND before assuming a route is available.
When the principal is ticket_agent:
- Treat this as the current ticket runtime.
- Current-ticket routes are limited to the ticket identified by
OPENASE_TICKET_ID.
- Project-level writes still depend on the scopes listed above.
When the principal is project_conversation:
- Treat this as a project-scoped conversation runtime, not a ticket runtime.
- Use the canonical ticket mutation routes when
tickets.updateis granted;
this includes ticket comment operations, and project scope still comes from the token claims even though the suffix stays aligned with the human control plane.
- Do not assume ticket usage-report endpoints are available.
- Ticket-runtime-only routes can reject this principal kind even when
OPENASE_TICKET_ID is present.
OPENASE_CONVERSATION_IDis often the stable runtime identity you should
use when inspecting the current Project AI session.
If you are unsure which write path to use, inspect OPENASE_PRINCIPAL_KIND and OPENASE_AGENT_SCOPES first, then pick the smallest typed command that matches the granted scope.
Command Selection Rules
Use this order of preference:
- Prefer a typed
openasecommand whose semantics already match the target
entity.
- Read current state first, then write the minimum necessary change.
- Use
openase apionly when there is no suitable typed command. - Do not edit local files to "represent" platform state.
- Do not rely on database access, guessed URLs, or undocumented compatibility
paths.
This skill is about platform reads and writes. It is not a substitute for the separate ticket-workpad skill, repository code changes, or workflow-specific execution instructions.
Top-Level Commands
Below is the current top-level openase command surface from source. Not every command is appropriate for agents; the first groups are the ones you will use most often.
Agent / API Surface
api: raw HTTP passthrough, the fallback entrypoint for any exposed APIticket: shared platform wrapper for common ticket reads and writes;
non-overlapping detail/run/dependency/external-link subcommands still go directly through OpenAPI
status: ticket status board managementchat: ephemeral chat and project conversationsproject: shared platform wrapper for update/add-repo; list/get/create/delete
still go directly through OpenAPI
repo: project repos, GitHub repo discovery, and ticket repo scopesworkflow: workflow and harness reads and writesscheduled-job: scheduled job managementmachine: machine registration, probing, and resource inspectionprovider: provider inspection and configurationagent: agent inspection, pause/resume, output, and step readsactivity: project activity timeline readschannel: notification channel management and testsnotification-rule: notification rule managementskill: skill inspection, updates, binding, and refreshwatch: SSE watch streamsstream: SSE stream feeds
Service / Control Plane Operations
serve: start only the HTTP API serviceorchestrate: start only the orchestration loopall-in-one: start the API and orchestrator in one processup: start the local OpenASE servicesetup: initialize the local runtime environmentdown: stop the local servicerestart: restart the local servicelogs: inspect local service logsdoctor: local environment diagnostics
Admin / Schema / Utility
issue-agent-token: issue an agent tokenopenapi: export or inspect OpenAPI artifactsversion: inspect the version
In practice, agents most often use these commands inside a workspace:
ticketstatuschatprojectrepoworkflowactivityscheduled-jobmachineprovideragentchannelnotification-ruleskillwatch/streamapi
serve / orchestrate / up / down / restart / issue-agent-token are more about platform operations or control-plane startup and are usually not the first choice for normal ticket execution.
Safe Default Commands
This is the safest first layer for agents to use. The semantics are stable and suitable for direct workflow / harness calls.
1. List current project tickets
Capabilities:
- Calls
GET /projects/{projectId}/tickets - Supports multi-value filtering with
--status-name - Supports multi-value filtering with
--priority
Use this before creating follow-up tickets or mutating status. It gives you the real project board state instead of assuming a ticket name or status lane.
2. Create a ticket
Capabilities:
- Calls
POST /projects/{projectId}/tickets --titleis required- Optional:
--description,--priority,--type, and--external-ref
Good fits:
- You discover that a follow-up ticket is needed
- You need to split work that is outside the current scope
- You need to attach follow-up security, testing, or deployment work back to
the platform explicitly
3. Update the current ticket
Capabilities:
- Calls
PATCH /tickets/{ticketId} - Can update
--title,--description, and--external-ref - Can update status via
--status,--status-name, or--status-id --status-nameand--status-idare mutually exclusive- At least one update field is required
In project_conversation runtimes, do not assume the current-ticket variant is available. Prefer the canonical ticket mutation routes exposed by the typed command shape in the current runtime contract.
4. Record usage / cost
Capabilities:
- Calls
POST /tickets/{ticketId}/report-usage - Records incremental usage instead of overwriting totals
- Set at least one field:
--input-tokens,--output-tokens, or--cost-usd
Use this only when the current runtime exposes a compatible ticket route. Project-conversation runtimes can lack current-ticket reporting endpoints even if OPENASE_TICKET_ID exists.
5. Manage ticket comments
List comments:
Create a regular comment:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckinginternal/builtin/skills/openase-platform/SKILL.md
Popularity
- Repository stars
- 261
- Repository forks
- 25
- 7-day trend score
- 28
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/pacificstudio/openase/openase-platform)