core

package
v0.6.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 27, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package core is abcd's transport-agnostic engine. Every capability is a function taking a structured request and returning a structured result; nothing here writes to stdout or knows about a CLI, MCP, or prompt surface. The front doors under internal/surface/* marshal these results for their transport. This separation is the single constraint that lets the CLI, the markdown plugin surface, and a future MCP server share one core.

Index

Constants

This section is empty.

Variables

View Source
var Version = "dev"

Version is abcd's version, stamped at build time via -ldflags -X (see the Makefile). It defaults to "dev" for un-stamped local builds.

Functions

This section is empty.

Types

type StatusInfo

type StatusInfo struct {
	Dir       string   `json:"dir"`
	IsGitRepo bool     `json:"is_git_repo"`
	HasRecord bool     `json:"has_record"` // .abcd/development present
	WorkTiers []string `json:"work_tiers"` // which .abcd/ tiers exist
}

StatusInfo is the result of Status: a read-only "where am I" snapshot of a directory, mirroring abcd's bare-invocation status convention (never mutates).

func Status

func Status(dir string) (StatusInfo, error)

Status inspects dir without mutating it and reports whether it is a git repo and which abcd surfaces are present.

type VersionInfo

type VersionInfo struct {
	Name    string `json:"name"`
	Version string `json:"version"`
}

VersionInfo is the result of NewVersion.

func NewVersion

func NewVersion() VersionInfo

NewVersion reports abcd's identity and build version.

Directories

Path Synopsis
Package ahoy is abcd's install/update engine for `abcd ahoy`.
Package ahoy is abcd's install/update engine for `abcd ahoy`.
Package banlist is abcd's two-layer banned-names store (itd-74, spc-20).
Package banlist is abcd's two-layer banned-names store (itd-74, spc-20).
Package capture is abcd's transport-agnostic issue-ledger engine: the write side of a per-repo issue ledger that replaces the free-form .work/issues.md.
Package capture is abcd's transport-agnostic issue-ledger engine: the write side of a per-repo issue ledger that replaces the free-form .work/issues.md.
Package changelog is abcd's transport-agnostic release-derivation domain: the version and the changelog are facts derived from the records that shipped, not numbers and lines a human types (itd-73, spc-10).
Package changelog is abcd's transport-agnostic release-derivation domain: the version and the changelog are facts derived from the records that shipped, not numbers and lines a human types (itd-73, spc-10).
Package cite is the live half of the citation gate: the on-demand refresh that fetches every cited URL and writes the committed baseline the zero-network docs lint then enforces offline.
Package cite is the live half of the citation gate: the on-demand refresh that fetches every cited URL and writes the committed baseline the zero-network docs lint then enforces offline.
Package frontmatter is abcd's shared markdown-frontmatter line scanner.
Package frontmatter is abcd's shared markdown-frontmatter line scanner.
Package glossary derives the brief glossary's own index from the term files.
Package glossary derives the brief glossary's own index from the term files.
Package guard is abcd's transport-agnostic shell-hazard registry (itd-103, spc-16).
Package guard is abcd's transport-agnostic shell-hazard registry (itd-103, spc-16).
Package history is abcd's native session-transcript store: the write/read/ redact engine that populates ~/.abcd/history/<root-sha>/transcripts/ and retires the specstory shim (adr-29).
Package history is abcd's native session-transcript store: the write/read/ redact engine that populates ~/.abcd/history/<root-sha>/transcripts/ and retires the specstory shim (adr-29).
Package ideate is the deterministic frame around abcd's idea-admission protocol (itd-104, spc-18): the three-leg gauntlet an idea may be put through before it is allowed to become a record entry.
Package ideate is the deterministic frame around abcd's idea-admission protocol (itd-104, spc-18): the three-leg gauntlet an idea may be put through before it is allowed to become a record entry.
Package identity checks that the git author identity a commit would use in a managed repo matches the identity pinned in .abcd/config/identity.json.
Package identity checks that the git author identity a commit would use in a managed repo matches the identity pinned in .abcd/config/identity.json.
Package intent is abcd's transport-agnostic native intent store (intent lifecycle, itd-80).
Package intent is abcd's transport-agnostic native intent store (intent lifecycle, itd-80).
Package issueschema is the issue record's frontmatter schema as DATA: the one list of properties issue.schema.json marks required, held where every gate that asks the question can read it.
Package issueschema is the issue record's frontmatter schema as DATA: the one list of properties issue.schema.json marks required, held where every gate that asks the question can read it.
Package launch is abcd's transport-agnostic launch engine: it assembles the release bundle under a default-deny taxonomy, runs the native secret+PII scan, checks manifest lockstep, and previews newest-per-line retention — all as a dry-run that renders decisions without writing an artefact or touching the network.
Package launch is abcd's transport-agnostic launch engine: it assembles the release bundle under a default-deny taxonomy, runs the native secret+PII scan, checks manifest lockstep, and previews newest-per-line retention — all as a dry-run that renders decisions without writing an artefact or touching the network.
scaffold
Package scaffold renders and writes the changelog-driven release machinery — release.yml, auto-release.yml, and the adr-37 runbook — into a managed repo that lacks it (itd-93, spc-14).
Package scaffold renders and writes the changelog-driven release machinery — release.yml, auto-release.yml, and the adr-37 runbook — into a managed repo that lacks it (itd-93, spc-14).
Package lifeboat holds the brief-to-lifeboat contract and, later, the source adapters that fill it.
Package lifeboat holds the brief-to-lifeboat contract and, later, the source adapters that fill it.
Package lint is abcd's record-drift gate: it reads a JSON config and lints the markdown design record, returning findings.
Package lint is abcd's record-drift gate: it reads a JSON config and lints the markdown design record, returning findings.
Package memory is abcd's transport-agnostic curated-knowledge substrate at .abcd/memory/ (itd-36 / adr-13).
Package memory is abcd's transport-agnostic curated-knowledge substrate at .abcd/memory/ (itd-36 / adr-13).
Package positioning holds a repository's canonical self-description — its title, tagline, and elevator pitch — and the deterministic check that every rendered surface still says it.
Package positioning holds a repository's canonical self-description — its title, tagline, and elevator pitch — and the deterministic check that every rendered surface still says it.
Package record is the read side of `abcd <id>`: dispatch on a record id — iss-N, itd-N, spc-N, adr-N — and report what the record is, its links, and the concrete next move for its lifecycle state (spc-26).
Package record is the read side of `abcd <id>`: dispatch on a record id — iss-N, itd-N, spc-N, adr-N — and report what the record is, its links, and the concrete next move for its lifecycle state (spc-26).
Package recordid is abcd's canonical home for the record-id space: the native timestamp-numeric mint (mint.go), the read-side resolver (resolve.go), and the legacy max+1 allocator support this file keeps for the families that have not yet adopted the mint seam.
Package recordid is abcd's canonical home for the record-id space: the native timestamp-numeric mint (mint.go), the read-side resolver (resolve.go), and the legacy max+1 allocator support this file keeps for the families that have not yet adopted the mint seam.
Package release is the transport-agnostic composition of a release cut: the deterministic half of `abcd launch ship` and the whole of `abcd changelog`.
Package release is the transport-agnostic composition of a release cut: the deterministic half of `abcd launch ship` and the whole of `abcd changelog`.
Package audit is abcd's read-only repo-conformance engine: it evaluates a set of declarative rules against a repository and returns findings.
Package audit is abcd's read-only repo-conformance engine: it evaluates a set of declarative rules against a repository and returns findings.
Package rules is abcd's transport-agnostic modular rules loader (itd-3).
Package rules is abcd's transport-agnostic modular rules loader (itd-3).
Package site is the home of the abcd site verb family (adr-47).
Package site is the home of the abcd site verb family (adr-47).
Package spec is abcd's transport-agnostic native spec store (intent lifecycle, itd-64).
Package spec is abcd's transport-agnostic native spec store (intent lifecycle, itd-64).
Package surface models abcd's public compatibility surface — the commands, flags, and manifest entries a consumer can bind to — as a transport-agnostic value that is snapshotted, committed, and diffed between releases (itd-73, spc-10).
Package surface models abcd's public compatibility surface — the commands, flags, and manifest entries a consumer can bind to — as a transport-agnostic value that is snapshotted, committed, and diffed between releases (itd-73, spc-10).
Package update implements the core of `abcd update` (itd-130 / spc-32): a user-invoked fetch/verify/swap for the PATH-installed binary.
Package update implements the core of `abcd update` (itd-130 / spc-32): a user-invoked fetch/verify/swap for the PATH-installed binary.
Package vintage is abcd's staleness comparator: it establishes whether the running binary is the one that should be running, by comparing the binary's own build vintage against a reference supplied by a provider.
Package vintage is abcd's staleness comparator: it establishes whether the running binary is the one that should be running, by comparing the binary's own build vintage against a reference supplied by a provider.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL