Skip to content

Package internal/reqid

Import path: go.devnw.com/canary/internal/reqid

package reqid // import "go.devnw.com/canary/internal/reqid"

API (raw go doc)


package reqid // import "go.devnw.com/canary/internal/reqid"

CANARY: REQ=CBIN-139; FEATURE="AspectIDGenerator"; ASPECT=Engine; STATUS=IMPL;
UPDATED=2025-10-16

CANARY: REQ=CBIN-139; FEATURE="AspectIDParser"; ASPECT=Engine; STATUS=IMPL;
UPDATED=2025-10-16

CANARY: REQ=CBIN-139; FEATURE="AspectValidator"; ASPECT=Engine; STATUS=IMPL;
UPDATED=2025-10-16

FUNCTIONS

func GenerateNextID(key, aspect string) (string, error)
    GenerateNextID generates the next requirement ID for a given aspect

func NormalizeAspect(input string) string
    NormalizeAspect normalizes aspect casing to the canonical form

func SuggestAspect(typo string) string
    SuggestAspect returns fuzzy match suggestions for invalid aspects

func ValidateAspect(aspect string) error
    ValidateAspect checks if the given aspect is valid Accepts: exact canonical
    form, all-lowercase, or all-uppercase Rejects: partial capitalizations
    (e.g., "Frontend" when it should be "FrontEnd")


TYPES

type RequirementID struct {
    Key    string // e.g., "CBIN"
    Aspect string // e.g., "CLI", "API" (empty for v1 format)
    ID     string // e.g., "001", "042"
    Format string // "v1" (CBIN-XXX) or "v2" (CBIN-<ASPECT>-XXX)
}
    RequirementID represents a parsed requirement identifier

func ParseRequirementID(reqID string) (*RequirementID, error)
    ParseRequirementID parses a requirement ID string into its components

func (r *RequirementID) String() string
    String returns the string representation of the RequirementID