Architecture#

Markdown under a shared configured prefix is the only source of truth. Quality checks and a local Tantivy index sit in front of Jira publication.

canonic architecture: markdown → quality → Tantivy → Jira

Pipeline: author in git → check/lint → search/dedupe → convert or import as review drafts. Neither direction writes Jira automatically.

Layers#

Layer

Responsibility

Corpus

corpus/responses/{prefix}-*.md + front matter

Quality

check (prefix/sop/closings), lint engines

Index

Tantivy BM25 under .canonic-index/

Publish surface

convert (pandoc jira) / human paste

Import drafts

import-jiracorpus/imports/ only

Library map#

The CLI is a thin clap front end over the canonic library crate:

canonic library modules

Full API documentation is generated with sphinxcontrib-rust and embedded in Rust API (Shibuya pages, not a separate cargo-doc tree).

Free Jira platform map#

canonic uses only native Jira REST (Cloud Free API tokens or Server/DC PAT) - no Marketplace apps:

Command

Endpoint

Body / notes

jira-probe

GET /rest/api/2/myself (+ serverInfo)

reports Cloud vs Server

import-jira

GET …/search (v2, then v3/jql fallback); GET …/issue/{key}/comment

comments wiki or ADF

jira-comment

Server: POST /rest/api/2/…/comment; Cloud: POST /rest/api/3/…/comment

wiki string / minimal free ADF