Commit Graph

20 Commits

Author SHA1 Message Date
5adc712193 feat(graph/mutation): implement removeTask, removeDependency, updateTask, updateEdgeAttributes 2026-04-27 11:51:57 +00:00
9ad0ec902c Merge graph/taskgraph-class: TaskGraph class skeleton with DirectedGraph, edge keys, fromJSON 2026-04-27 11:30:57 +00:00
e155e1e08a feat(graph/taskgraph-class): implement TaskGraph class skeleton with graphology DirectedGraph 2026-04-27 11:29:59 +00:00
412849501f Merge frontmatter/parsing: parseFrontmatter with YAML 1.2, TypeBox validation, InvalidInputError 2026-04-27 11:28:09 +00:00
7401e4d056 feat(frontmatter/parsing): implement parseFrontmatter with YAML parsing and TypeBox validation 2026-04-27 11:26:55 +00:00
0613a190ce feat(schema/numeric-methods-and-defaults): implement categorical numeric functions and resolveDefaults 2026-04-27 11:25:43 +00:00
30f20a9f26 Merge schema/graph-schemas: node/edge attribute schemas, SerializedGraph generic factory
# Conflicts:
#	test/schema.test.ts
2026-04-27 11:11:07 +00:00
ec30c96671 Merge schema/input-schemas: TaskInput and DependencyEdge schemas with Nullable helper 2026-04-27 11:04:07 +00:00
d2eaa0dd77 feat(schema/graph-schemas): define TaskGraphNodeAttributes, TaskGraphEdgeAttributes, and SerializedGraph generic
Implements graph attribute schemas and the SerializedGraph generic factory
parameterized with <N, E, G> following the graphology JSON format.

- TaskGraphNodeAttributes: name + optional categorical enums (scope, risk,
  impact, level, priority, status) — analysis-relevant metadata only
- TaskGraphNodeAttributesUpdate: Type.Partial(TaskGraphNodeAttributes)
- TaskGraphEdgeAttributes: optional qualityRetention number
- SerializedGraph<N, E, G>: generic factory for graphology JSON format
- TaskGraphSerialized: concrete instantiation with empty graph attributes
- No schema version field per spec

35 new tests covering validation, rejection, and compile-time type safety.
2026-04-27 11:03:07 +00:00
b415d8c86b feat(schema/input-schemas): define TaskInput, DependencyEdge schemas and Nullable re-export
- Add TaskInput schema with all fields per architecture (id, name, dependsOn,
  categorical fields as Optional(Nullable(...)), metadata fields)
- Add DependencyEdge schema with from, to, qualityRetention fields
- Re-export Nullable helper from task.ts for convenience
- Add type aliases: TaskInput, DependencyEdge via Static<typeof>
- Add 49 tests covering validation, nullable fields, edge cases, type correctness
2026-04-27 11:02:40 +00:00
e367215e43 feat(schema/result-types): define analysis result TypeBox schemas 2026-04-27 10:59:57 +00:00
8725a26b43 Merge setup/test-infrastructure: vitest config, shared fixtures, 30 tests passing 2026-04-27 10:49:01 +00:00
167dde68f4 feat(setup/test-infrastructure): configure Vitest with shared test fixtures and helpers
- Add test:coverage script and @vitest/coverage-v8 dev dependency
- Update vitest.config.ts with @/ path alias and v8 coverage config
- Create test/fixtures/graphs.ts with 5 fixture graphs (linearChain,
  diamond, mixedCategory, cyclic, largeGraph) and createTaskGraph helper
- Expand graph.test.ts with 26 fixture validation tests
- 30 tests passing, CI-compatible output (vitest run)
2026-04-27 10:48:35 +00:00
196b044ca4 Merge schema/enums: 6 TypeBox enum schemas with type aliases, 21 tests 2026-04-27 10:10:44 +00:00
6003926807 feat(schema/enums): define TypeBox categorical enum schemas and type aliases 2026-04-27 10:08:28 +00:00
e4b5ac3d54 Merge frontmatter/splitter: splitFrontmatter function with 18 tests 2026-04-27 10:05:19 +00:00
15104ff10c feat(frontmatter/splitter): implement splitFrontmatter function with tests 2026-04-27 10:04:31 +00:00
ce68271f4f feat(error/error-hierarchy): implement typed error class hierarchy
- Add typed fields to all error subclasses (taskId, cycles, field, message, prerequisite, dependent)
- Set Object.setPrototypeOf(this, new.target.prototype) in all constructors
- Add InvalidInputError.fromTypeBoxError() static factory for TypeBox Value.Errors() output
- CircularDependencyError accepts string[][] for cycle paths
- 31 unit tests covering instanceof chain, field access, .name property, and error messages
2026-04-27 10:00:40 +00:00
bd8a7b06d0 feat(setup/project-init): initialize TypeScript ESM project skeleton
- package.json with @alkdev/taskgraph, ESM primary, CJS compat exports
- tsconfig.json targeting Node 18+, strict mode, declaration output
- All production deps: graphology suite, @alkdev/typebox, yaml
- Dev deps: typescript, vitest, @types/node
- src/ skeleton: schema, graph, analysis, frontmatter, error modules
- test/ directory with 5 placeholder test files
- .gitignore and vitest.config.ts
2026-04-27 09:54:01 +00:00
131e3e929b Decompose architecture into 28 atomic implementation tasks
Break the @alkdev/taskgraph architecture specs into dependency-ordered
implementation tasks across 8 component directories: setup, schema,
error, graph, analysis, cost-benefit, frontmatter, api, and review.
Each task has clear acceptance criteria referencing specific architecture
docs. Three review tasks serve as quality gates at critical junction
points (schemas-and-errors, graph-complete, complete-library). The
dependency graph is validated acyclic with 9 topological levels enabling
significant parallelism across independent work streams.
2026-04-27 08:30:05 +00:00