acli — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited acli (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Common acli commands for Jira operations used across this project's workflows.
acli must be installed and authenticated: acli jira auth login --webacli jira auth statusInstalled version:
!acli --version || true
If the output above says the version is outdated, tell the user before running any other command.
The view command accepts the issue key as a positional argument, but subcommands like comment list, comment create, transition, edit, etc. require the --key flag:
acli jira workitem view PROJ-123 # positional OK
acli jira workitem comment list --key PROJ-123 # --key required
acli jira workitem comment create --key PROJ-123 --body-file comment.json # --key requiredAlways write comment bodies and issue descriptions in Atlassian Document Format (ADF). Plain text loses all formatting, and markdown or wiki markup renders as literal characters.
Write the ADF to a JSON file and pass the file path, since inline JSON breaks easily under shell quoting. See ADF Formatting for the node structure.
acli jira workitem view PROJ-123With all fields (description, comments, etc.):
acli jira workitem view PROJ-123 --fields "*all"JSON output for parsing:
acli jira workitem view PROJ-123 --jsonSpecific fields only:
acli jira workitem view PROJ-123 --fields "summary,status,priority,description,comment"acli jira workitem search --jql 'summary ~ "CVE-2024-1234" AND summary ~ "repo-name"' --jsonSearch by text across all fields:
acli jira workitem search --jql 'text ~ "search terms" AND key != PROJ-123' --jsonSearch by component:
acli jira workitem search --jql 'component = "my-component" AND key != PROJ-123' --jsonSearch recently resolved issues:
acli jira workitem search --jql 'text ~ "search terms" AND status in (Resolved, Done, Closed) AND resolved >= -30d' --jsonLimit results and select fields:
acli jira workitem search --jql 'project = PROJ' --fields "key,summary,status" --limit 20 --jsonWrite the comment as an ADF document in comment.json:
{
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [{"type": "text", "text": "Comment text here"}]
}
]
}Then post it:
acli jira workitem comment create --key PROJ-123 --body-file comment.jsonUpdate an existing comment with --body-adf, since comment update --body-file only takes plain text:
acli jira workitem comment update --key PROJ-123 --id 10001 --body-adf comment.jsonacli jira workitem comment list --key PROJ-123 --jsonUse view to see the raw ADF, since comment list flattens bodies to plain text and drops list items:
acli jira workitem view PROJ-123 --fields "comment" --jsonFirst check available transitions:
acli jira workitem view PROJ-123 --fields "status" --jsonThen transition:
acli jira workitem transition --key PROJ-123 --status "Done"
acli jira workitem transition --key PROJ-123 --status "In Progress"
acli jira workitem transition --key PROJ-123 --status "Resolved"Write the issue definition in workitem.json with an ADF description. The assignee and labels fields are optional.
{
"projectKey": "PROJ",
"type": "Bug",
"summary": "Bug title",
"assignee": "[email protected]",
"labels": ["bug", "triage"],
"description": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [{"type": "text", "text": "Description"}]
}
]
}
}Then create it:
acli jira workitem create --from-json workitem.jsonacli jira workitem edit --key PROJ-123 --summary "Updated summary"
acli jira workitem edit --key PROJ-123 --assignee "@me"ADF is the JSON format Jira uses for rich text with headings, code blocks, lists, etc. The root is always a doc node with "version": 1.
Generate a sample JSON template:
acli jira workitem create --generate-json
acli jira workitem edit --generate-jsonWrite a JSON file with issues and description fields:
{
"issues": ["PROJ-123"],
"description": {
"type": "doc",
"version": 1,
"content": [
{
"type": "heading",
"attrs": {"level": 2},
"content": [{"type": "text", "text": "Section Title"}]
},
{
"type": "paragraph",
"content": [
{"type": "text", "text": "Normal text and "},
{"type": "text", "text": "inline code", "marks": [{"type": "code"}]},
{"type": "text", "text": " in a paragraph."}
]
},
{
"type": "codeBlock",
"attrs": {"language": "json"},
"content": [{"type": "text", "text": "{\"key\": \"value\"}"}]
},
{
"type": "bulletList",
"content": [
{"type": "listItem", "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Bullet item"}]}]}
]
},
{
"type": "orderedList",
"content": [
{"type": "listItem", "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Numbered item"}]}]}
]
}
]
}
}Then apply:
acli jira workitem edit --from-json workitem.json --yes| Node | Usage |
|---|---|
heading | attrs.level: 1-6 |
paragraph | Container for text nodes |
codeBlock | attrs.language: json, bash, etc. |
bulletList | Contains listItem nodes |
orderedList | Contains listItem nodes |
text | marks: code, strong, em, link |
comment update accepts ADF only through --body-adf, its --body-file flag is plain textacli jira project list~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.