Skip to main content

SpecKit

Struct SpecKit 

Source
pub struct SpecKit;
Expand description

The Spec Kit adapter.

Trait Implementations§

Source§

impl Adapter for SpecKit

Source§

fn oracle_requirements( &self, snapshot: &ProjectSnapshot, ) -> Vec<OracleRequirement>

Each user story with its scenarios, keyed USn, citing USn-k.

Source§

fn standing_units(&self, root: &Path) -> Vec<(String, Rung)>

NNN-quick-changes and NNN-bugfixes.

Source§

fn is_convergence(&self, phase: &str) -> bool

A Convergence phase, appended by converge.

Source§

fn tool(&self) -> Option<(&'static str, &'static str)>

The format’s own command-line tool and how to install it, for doctor (None: the format has none).
Source§

fn kind(&self) -> FormatKind

Which format.
Source§

fn detect(&self, start: &Path) -> Option<PathBuf>

The project root containing start, by the format’s marker.
Source§

fn inspect( &self, start: &Path, feature: Option<&str>, ) -> Option<ProjectSnapshot>

Discovers the project containing start and selects feature. Read-only.
Source§

fn open(&self, start: &Path, feature: Option<&str>) -> Option<ProjectSnapshot>

Adapter::inspect for a command a person ran: the format’s own selection settings (its environment variables) apply.
Source§

fn parse_tasks(&self, path: &str, text: &str) -> (ParsedTasks, Vec<Diagnostic>)

Parses a task list.
Source§

fn rules(&self) -> &'static Rules

Which paths are intent and what planning may write.
Source§

fn wording(&self) -> &'static Wording

What the model is told about the format.
Source§

fn messages(&self) -> &'static Messages

What a person is told.
Source§

fn planning(&self) -> &'static Planning

Hosted planning skills.
Source§

fn current_pointer(&self) -> Option<&'static str>

The format’s per-checkout pointer to the current unit (repository-relative), if it has one.
Source§

fn set_current( &self, root: &Path, unit_dir: Option<&str>, ) -> Result<String, String>

Records unit_dir (repository-relative) as the current unit in the format’s own per-checkout pointer, or clears it (None); returns the pointer’s path. Err: the format has no current unit.
Source§

fn bundle( &self, snapshot: &ProjectSnapshot, task_id: &str, ) -> Result<Bundle, BundleError>

The context bundle for task of the selected unit.
Source§

fn scenarios(&self, snapshot: &ProjectSnapshot, task: &str) -> Vec<ScenarioRef>

The scenarios task’s acceptance tests cite, with the spec’s words (judge-side: the implementer sees the spec text, not this list).
Source§

fn acceptance_testable(&self, bundle: &Bundle) -> bool

Whether the bundle states acceptance examples to derive tests from.
Source§

fn convergence_texts(&self, root: &Path, unit_dir: &Path) -> [String; 4]

What the convergence assessment reads, in order: the project’s rules, the spec, the plan, the task list (each may be empty).
Source§

fn checklists(&self, root: &Path, unit_dir: &str) -> Vec<ChecklistStatus>

The unit’s unfinished-checklist state.
Source§

fn requirements_file(&self) -> Option<&'static str>

The unit’s document that defines its requirements (spec.md in Spec Kit), relative to the unit’s directory; None when the format has no requirement identifiers.
Source§

fn record_change( &self, root: &Path, request: &str, checks: &[String], ) -> Result<Recorded, String>

Records a quick change: request (with acceptance checks) becomes a story, a requirement and a task in the format’s standing unit for such changes. Err: the format has none.
Source§

fn extensions(&self, root: &Path) -> Option<Inventory>

The format’s installed extensions, from its own inventory (None: the format has none, or none could be read). The only reader of the format’s extension files.
Source§

fn bug_unit(&self, root: &Path) -> Result<BugHome, BugRefusal>

Where a bug lives: the format’s own bug structure when it has one, else its standing bug-fix unit. Err: neither (BUG-NO-UNIT). Read more
Source§

fn record_bug( &self, root: &Path, home: &BugHome, triad: &Triad, ) -> Result<RecordedBug, BugRefusal>

Records triad as a story, an approved-to-be requirement and a task in the standing bug-fix unit home names (appends only, verified at write time). Read more
Source§

fn bug_step(&self) -> Option<BugStep>

The format’s own bug step, for a native home.
Source§

fn bug_dir(&self, home: &BugHome, slug: &str) -> Option<(String, String)>

A native home’s directory for slug, project-relative, and its unit name.
Source§

fn bug_slug(&self, root: &Path, _home: &BugHome, title: &str) -> String

A new slug for title that no bug of home has yet.
Source§

fn read_bug( &self, root: &Path, home: &BugHome, key: &str, ) -> Result<ReadBug, BugRefusal>

The triad as the home holds it: the bug key (a native home’s slug, a standing unit’s requirement). Pure: no model, no tool. Read more
Source§

fn requirements_in(&self, text: &str) -> Vec<(String, String)>

The requirements text (the requirements file) defines, each with the line that defines it, in the document’s order.
Source§

fn tick( &self, tasks_file: &Path, task: &str, line_hash: &str, ) -> Result<(), String>

Ticks task (one byte, under the line-hash guard).
Source§

fn append( &self, tasks_file: &Path, file_hash: &str, items: &[String], ) -> Result<Vec<String>, String>

Appends convergence tasks (prefix-guarded); returns their IDs.
Source§

fn commit_precondition( &self, _root: &Path, join: &dyn Fn(&str) -> String, unit_dir: &str, ) -> CommitPrecondition

What must be committed before a worktree is made; paths are repository-relative, join maps a project-relative path to one.
Source§

fn blocking<'s>(&self, _snapshot: &'s ProjectSnapshot) -> Vec<&'s Diagnostic>

Diagnostics that stop a run of the selected unit before any model call (the format’s preflight).
Source§

fn crosscheck( &self, _snapshot: &ProjectSnapshot, _runner: &dyn CommandRunner, ) -> Vec<Diagnostic>

The format’s own tools’ opinion of the selected unit, when they are installed (read-only commands through runner).
Source§

fn requirement_ids(&self, root: &Path, unit_dir: &str) -> Vec<(String, String)>

The unit’s requirement identifiers, each with the hash of the line that defines it (FR-001, SC-002 in Spec Kit): the rows of the trace matrix. None when the format has no such identifiers.
Source§

impl Debug for SpecKit

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Detect for SpecKit

Source§

fn kind(&self) -> FormatKind

Which format.
Source§

fn root(&self, start: &Path) -> Option<PathBuf>

The root containing start, by the format’s marker.
Source§

fn adapter(&self) -> Option<&'static dyn Adapter>

The adapter, when this build runs the format.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more