Skip to main content

What is knowledge?

The knowledge command manages your project's knowledge base. The knowledge base stores domain-specific technical terms, acronyms, and synonyms that improve CIAK's search quality and query understanding.

ciak knowledge <ACTION> [OPTIONS]

This is different from ciak sync knowledge (which imports entries from a file into the database). The knowledge command manages the knowledge base itself.

Actions​

init​

Create a default .ciak/knowledge.json template in your project:

ciak knowledge init

This generates a starter file you can edit with your project's domain terms.

list​

List all knowledge entries currently in the database:

ciak knowledge list
ciak knowledge list --source user # only user-defined entries
ciak knowledge list --source extracted # only auto-extracted entries

export​

Export knowledge entries to a file:

ciak knowledge export                    # export all entries
ciak knowledge export --user-only # only user-defined entries
ciak knowledge export --extracted-only # only auto-extracted entries

install​

Install a pre-built knowledge template for a specific domain:

ciak knowledge install <TEMPLATE>        # install a template
ciak knowledge install --list-templates # list available templates
ciak knowledge install <TEMPLATE> --force # overwrite existing entries
ciak knowledge install <TEMPLATE> --dry-run # preview without applying
ciak knowledge install <TEMPLATE> --verbose # detailed output

Knowledge file format​

The .ciak/knowledge.json file contains three sections:

{
"terms": [
{
"id": "jwt",
"term": "JWT",
"definition": "JSON Web Token - a compact token format for authentication",
"category": "security",
"synonyms": ["json web token", "bearer token"],
"related_terms": ["OAuth", "authentication"],
"programming_languages": ["typescript", "python"],
"confidence": 1.0
}
],
"acronyms": [
{
"id": "api",
"acronym": "API",
"expansion": "Application Programming Interface",
"context": "web development",
"domain": "general",
"confidence": 1.0,
"usage_frequency": "high"
}
],
"synonyms": [
{
"id": "auth-synonym",
"source_term": "authenticate",
"target_term": "login",
"context": "user authentication",
"confidence": 0.9,
"mapping_type": "bidirectional",
"domain": "security"
}
]
}

Workflow​

  1. Initialize — ciak knowledge init to create the template.
  2. Edit — add your domain terms, acronyms, and synonyms to .ciak/knowledge.json.
  3. Sync — ciak sync knowledge to import entries into the database.
  4. Verify — ciak knowledge list to confirm entries are loaded.

Input and output examples​

Representative CLI output (truncated; exact formatting may vary by version):

Initialize the knowledge template​

Input

ciak knowledge init

Output

Created knowledge template: .ciak/knowledge.json
✓ Edit the file, then run: ciak sync knowledge

List entries​

Input

ciak knowledge list --source user

Output

Knowledge entries (source=user)

TERM TYPE CATEGORY CONFIDENCE
JWT technical_term security 1.00
API acronym general 1.00
login<->auth synonym security 0.90

Export entries​

Input

ciak knowledge export --user-only

Output

Exported 27 user-defined entries to stdout