SysProM
    Preparing search index...

    Function isTaskDone

    • Check if a change node's task is complete.

      If no subsystem or no change children in subsystem:

      • All items in node.plan must have done === true AND at least one item must exist. If subsystem has change children:
      • All children must be recursively done AND own plan items (if any) must be done.

      Parameters

      • node: {
            context?: string | string[];
            description?: string | string[];
            external_references?: {
                description?: string | string[];
                identifier: string;
                internalised?: string | string[];
                node_id?: string;
                role:
                    | "output"
                    | "input"
                    | "context"
                    | "evidence"
                    | "source"
                    | "standard"
                    | "prior_art";
            }[];
            id: string;
            includes?: string[];
            input?: string;
            lifecycle?: Record<string, string | boolean>;
            name: string;
            operations?: {
                description?: string | string[];
                target?: string;
                type: "link" | "add" | "update" | "remove";
                [key: string]: unknown;
            }[];
            options?: {
                description: string
                | string[];
                id: string;
                [key: string]: unknown;
            }[];
            output?: string;
            plan?: {
                description: string
                | string[];
                done?: boolean;
                [key: string]: unknown;
            }[];
            propagation?: Record<string, boolean>;
            rationale?: string | string[];
            scope?: string[];
            selected?: string;
            status?:
                | "deprecated"
                | "proposed"
                | "accepted"
                | "active"
                | "implemented"
                | "adopted"
                | "defined"
                | "introduced"
                | "in_progress"
                | "complete"
                | "consolidated"
                | "experimental"
                | "retired"
                | "superseded"
                | "abandoned"
                | "deferred";
            subsystem?: {
                $schema?: string;
                external_references?: {
                    description?: string
                    | string[];
                    identifier: string;
                    internalised?: string | string[];
                    node_id?: string;
                    role:
                        | "output"
                        | "input"
                        | "context"
                        | "evidence"
                        | "source"
                        | "standard"
                        | "prior_art";
                }[];
                metadata?: {
                    doc_type?: string;
                    scope?: string;
                    status?: string;
                    title?: string;
                    version?: string
                    | number;
                    [key: string]: unknown;
                };
                nodes: (
                    { [x: string]: unknown; id: string; type: "intent" | "concept" | "capability" | "element" | "realisation" | "invariant" | "principle" | "policy" | "protocol" | "stage" | "role" | "gate" | "mode" | ... 6 more ... | "version"; ... 16 more ...; subsystem?: { ...; } | undefined; }
                )[];
                relationships?: {
                    description?: string
                    | string[];
                    from: string;
                    polarity?: "positive" | "negative" | "neutral" | "uncertain";
                    strength?: number;
                    to: string;
                    type:
                        | "refines"
                        | "realises"
                        | "implements"
                        | "depends_on"
                        | "constrained_by"
                        | "affects"
                        | "supersedes"
                        | "must_preserve"
                        | "performs"
                        | "part_of"
                        | "precedes"
                        | "must_follow"
                        | "blocks"
                        | "routes_to"
                        | "governed_by"
                        | "modifies"
                        | "triggered_by"
                        | "applies_to"
                        | "produces"
                        | "consumes"
                        | "transforms_into"
                        | "selects"
                        | "requires"
                        | "disables"
                        | "influence";
                    [key: string]: unknown;
                }[];
            };
            type: | "intent"
            | "concept"
            | "capability"
            | "element"
            | "realisation"
            | "invariant"
            | "principle"
            | "policy"
            | "protocol"
            | "stage"
            | "role"
            | "gate"
            | "mode"
            | "artefact"
            | "artefact_flow"
            | "decision"
            | "change"
            | "view"
            | "milestone"
            | "version";
            [key: string]: unknown;
        }

        The change node to evaluate.

      Returns boolean

      Whether all tasks in the node's plan are complete.

      isTaskDone(changeNode); // => true if all plan items done