Development standards
The project’s development standards (NDD): resolve, import, sync and amend them.
ndd_amendment_accept
effortless_ndd_amendment_accept — Stability: beta · project
Accepts an NDD amendment proposal: always writes the accepted content on the local side (.ai/ndd/<family>/<family>-ndd.v1.md), never into a .heritee.md file, since amending an inherited rule is a local override of the same id. Same id as the target: edits the section in place. Different id: adds a new section without touching the old one. Validates the resulting text before writing: an id collision refuses without writing anything. Also refuses an unknown or already decided proposal, or an unfindable target_id.
« Accept amendment proposal AMD-03. »
| Name | Type | Required | Description |
|---|---|---|---|
proposal_id | string | yes | Id of the amendment proposal to accept, as returned by effortless_ndd_amendment_propose. Required. |
ndd_amendment_propose
effortless_ndd_amendment_propose — Stability: beta · project
Proposes an amendment to an NDD rule (editing an existing id, or a new rule if target_id is absent): assembles the candidate text and has it analyzed by the same code as ndd_resolve. Writes only the registry .effortless/ndd_amendments.json (status Proposed); no file under .ai/ndd/ is touched. Refuses, by name, an unknown family, an out-of-scale level or a missing Why.
« Propose an amendment to the rust standard on rule RUST-012, which keeps its identifier, at level INTERDIT, titled "No unwrap() outside tests". Why: a failing unwrap() makes the program panic. Body: use `unwrap()` only in tests. »
effortless_ndd_amendment_proposefamily=rusttarget_id=RUST-012proposed_id=RUST-012level=INTERDITtitle=No unwrap() outside testswhy=A failing unwrap() makes the program panic.body=Use `unwrap()` only in tests.
| Name | Type | Required | Description |
|---|---|---|---|
family | string | yes | Target NDD family; it must exist under .ai/ndd/. Required. |
target_id | string | no | Id of the existing rule the amendment edits; absent for a new rule. |
proposed_id | string | yes | Id the rule will carry once accepted. Required. |
level | string | yes | Level of the rule: OBLIGATOIRE, RECOMMANDÉ or INTERDIT; any other value is refused. Required. |
title | string | yes | Title of the rule. Required. |
why | string | yes | Rationale of the rule (the Pourquoi section); a blank value is refused. Required. |
body | string | yes | Body text of the rule. Required. |
ndd_amendment_reject
effortless_ndd_amendment_reject — Stability: beta · project
Rejects an NDD amendment proposal: sets the Rejected status, the reason (required, verbatim) and a timestamp in .effortless/ndd_amendments.json. No file under .ai/ndd/ is opened for writing. Refuses, by name, an empty or blank reason, and an unknown or already decided proposal.
« Reject amendment proposal AMD-03, reason: it contradicts the inherited standard's rule. »
effortless_ndd_amendment_rejectproposal_id=AMD-03reason=It contradicts the inherited standard's rule.
| Name | Type | Required | Description |
|---|---|---|---|
proposal_id | string | yes | Id of the amendment proposal to reject, as returned by effortless_ndd_amendment_propose. Required. |
reason | string | yes | Reason for the rejection, recorded verbatim; a blank value is refused. Required. |
ndd_import
effortless_ndd_import — Stability: beta · project
Imports a development standard hosted in a shared repository: read through git show <repo>/<ref>:<path> (declared in the stack's languages[].ndd.source), with no fetch or clone. Writes .ai/ndd/<family>/<family>-ndd.v1.heritee.md (raw content, unvalidated) and its provenance file {depot, reference, date}. A missing or invalid git reference degrades cleanly (available:false with a named reason, no file written). Refuses, by name, an unknown stack_id, a technology absent from the stack, or a source that is not git. The only write point for inherited standards by import; ndd_resolve stays read-only.
« Import the rust standard from the shared standards repo, for the app stack. »
| Name | Type | Required | Description |
|---|---|---|---|
stack_id | string | yes | Id of the stack whose languages[].ndd.source declaration is imported. Required. |
techno | string | yes | Id of the declared language (languages[].id) whose git source is imported; it is also the name of the NDD family laid down. Required. |
ndd_resolve
effortless_ndd_resolve — Stability: beta · project
Read-only. Resolves the applicable development standards (NDD): by declared families (stack), families derived from a path, or the whole known corpus if both are absent. Returns each qualified rule (id, level, title, why, family, origin, file, line), sorted by family then id; the body is served only if include_body is true. Refuses, by name, an unknown family, an out-of-scale level, a missing Why, a duplicate id, or a total absence of standards under .ai/ndd/.
« Which development standards apply to the file src/parser.rs? »
| Name | Type | Required | Description |
|---|---|---|---|
stack | array<string> | no | Declared NDD families to resolve, named like the folders of .ai/ndd/; an unknown family is refused. With path also absent, the whole known corpus is resolved. |
path | string | no | Project-relative path from which extra families are derived, in addition to stack. |
include_body | boolean | no | If true, returns the body of each rule; default false (bodies are free prose and costly to transmit). |
ndd_source
effortless_ndd_source — Stability: beta · no project · usable before any project
Reads or sets the global source of development standards (~/.effortless/ndd_source.json): a local folder or a git URL, followed by effortless_ndd_sync. Without source: reads. Empty source: removes. A project can override it with settings.ndd_source in effortless.json.
« Set my global standards source to the git repository https://github.com/ArboRithm/standards.git. »
| Name | Type | Required | Description |
|---|---|---|---|
source | string | no | Address of the norms repository: a local folder or a git URL. Absent: reads the current source; empty string: removes the source. |
reference | string | no | Branch or tag to follow for a git source (default: the default branch). |
ndd_sync
effortless_ndd_sync — Stability: beta · project
Updates the project's inherited standards from its standards repository (project source, otherwise global): for each project language (declared stacks, present families, and agnostic), writes .ai/ndd/<family>/<family>-ndd.v1.heritee.md and its provenance. Never touches the local standard. Returns the families updated, unchanged, and those the repository does not carry. A git source is cloned then followed by fetch in ~/.effortless/ndd-cache/.
« Update the project's inherited standards from the standards repository. »
effortless_ndd_syncNo parameters.