Skip to content
Back to skills

Decisions

ASecurity

**Status: implemented (2026-07-10).** **Decision.** Importing an external corpus (Obsidian vault, markdown folder, wiki export) is an **agentic procedure** — bundled skill `kb-import` (`internal/skillbundle/bundled/kb-import/`), sister of `kb-create` — consistent with D28: no server-side ingest tool. Two legs: a mechanical **CLI scaffold** for mass conversion with no LLM consumption, and an incremental **agentic curation** driven by the lint. **WP1 — `imported_draft` lint (warning).** A conce...

  • 55 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added October 14, 2026
ai-agentsgo

Works with

  • cli
  • mcp

Security analysis

A100/100

Pro scans all 21 files and shows the line behind each finding

Scanned October 14, 2026

npx -y skills add BeppeTemp/cartographer --skill decisions --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Decisions?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Decisions
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/beppetemp-decisions-cartographer/badge)](https://www.skillsdirectory.com/skills/beppetemp-decisions-cartographer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
topic: data-plane
---

# D74 — Import of external non-OKF wikis/KBs: `kb-import` skill + CLI scaffold + lint-driven curation

**Status: implemented (2026-07-10).**

**Decision.** Importing an external corpus (Obsidian vault, markdown folder, wiki export) is an **agentic procedure** — bundled skill `kb-import` (`internal/skillbundle/bundled/kb-import/`), sister of `kb-create` — consistent with D28: no server-side ingest tool. Two legs: a mechanical **CLI scaffold** for mass conversion with no LLM consumption, and an incremental **agentic curation** driven by the lint.

**WP1 — `imported_draft` lint (warning).** A concept with frontmatter `status: imported` produces an `imported_draft` finding. Implementation next to `stale_claim` in `internal/lint/lint.go:131`; tests in `lint_test.go`. The marker makes the curation debt **visible and splittable across multiple sessions** instead of a big-bang.

**WP2 — `cartographer import` subcommand.** `cartographer import --source <dir> --kb <dir> [--archive <nome>] [--map <srcdir>=<archivio>] [--dry-run]`: walks the source's `.md` files; for each file it synthesizes the minimal frontmatter (title from the first H1 or from the filename, `status: imported`) preserving any existing frontmatter and adding only the missing fields; maps the source's relative directories onto archive/dossier; writes via `kb.Open`+`WriteConcept` (OKF invariants for free, no per-file commit: a single final commit by the operator). `--dry-run` prints the mapping plan without writing. Dispatch in `cmd/cartographer/main.go:73`.

**Links.** Wiki-links `[[...]]` remain valid as-is (D72, first-class in `ExtractLinks`); relative markdown links are rewritten best-effort by the scaffold against the new layout; `broken_link` acts as a safety net for what slips through.

**Deviations from the specification (implementation, 2026-07-10).**
- `kb.WriteConcept` requires a non-empty `type` (pre-existing OKF invariant, not discussed in D74's original text): when the source file has no `type` — neither pre-existing nor otherwise derivable — the scaffold synthesizes `type: Note` alongside `title`/`status`. A `type` already present in the source frontmatter is never touched.
- The `--map <srcdir>=<archivio>` mapping is **exact** per-directory: it matches only the literal source directory (relative to `--source`, `.` for the root), with no inheritance on nested subdirectories — consistent with WP2's "mechanical, not intelligent scaffold" spirit; subdirectories not explicitly mapped fall back to `--archive` (flat default) or, in its absence, fail the whole command with the list of unmapped directories, before any write.
- Slug collisions (two source files normalizing to the same destination concept ID) are resolved with an incremental numeric suffix (`-2`, `-3`, …) instead of failing the import.
- **Amended by D91.** The optional final commit, map scaffold, and directory-as-expanded-concept import behavior are specified in D91; the default remains an uncommitted, flat mechanical pass.

**Rationale.** The mechanical conversion (frontmatter, layout, links) must not consume LLM tokens — on a large wiki it would be unsustainable; the semantic part (mapping onto the archives, dedup, substantive rewrites) stays with the agent **with a human checkpoint on the mapping plan** before any write. Discarded alternatives: a server-side MCP import tool (re-creates the `source_ingest` removed with D28); fully agentic import (cost proportional to the corpus, not to the part requiring judgment).

Files in this skill

  • AD1-AD13-original-architecture.md2.8 KB
  • D1-stdlib-only-constraint-removed.md330 B
  • D10-concept-write-frontmatter-from-json-map.md367 B
  • D100-community-surfaces-pages-from-docs-discussions-on-wiki.md1.6 KB
  • D101-tool-names-in-the-docs-are-ci-enforced.md1.9 KB
  • D102-opt-in-per-kb-mcp-tool-name-prefix.md2.8 KB
  • D103-observable-replication-failures-and-native-git.md758 B
  • D104-structured-sops-pointers-scoped-refs-and-encrypted.md692 B
  • D105-binary-safe-provisioning-artifacts-and-executable-kb.md992 B
  • D106-concept-owned-non-markdown-assets.md1 KB
  • D107-declarative-lint-contracts-in-map-descriptors.md1.3 KB
  • D108-on-demand-backlinks-and-frontmatter-facets.md896 B
  • D109-kb-owned-concept-templates-and-one-shot-scaffolding.md1.6 KB
  • D110-topic-owned-decision-records-and-github-owned-project.md1.5 KB
  • D111-repository-e2e-tests-are-deterministic-and-model-free.md1.4 KB
  • D112-reserved-local-endpoint-defaults.md1 KB
  • D113-one-client-status-snapshot-across-cli-and-dashboard.md977 B
  • D114-verify-provisioning-artifacts-cryptographically.md1.3 KB
  • D115-mcp-allow-list-and-hash-bound-local-approval.md848 B
  • D116-trusted-stdio-mcp-descriptors-with-environment.md1.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.