Skip to content

0.4.0

Choose a tag to compare

@ncrmro ncrmro released this 23 Jan 19:06
· 189 commits to main since this release
e3c4e5a

Added

  • Doc specs (document specifications) as a first-class feature for formalizing document quality criteria
  • New src/deepwork/schemas/doc_spec_schema.py with JSON schema validation
  • New src/deepwork/core/doc_spec_parser.py with parser for frontmatter markdown doc spec files
  • Doc spec files stored in .deepwork/doc_specs/ directory with quality criteria and example documents
  • Auto-creates .deepwork/doc_specs/ directory during deepwork install
  • Extended job.yml output schema to support doc spec references
  • Outputs can now be strings (backward compatible) or objects with file and optional doc_spec fields
  • Example: outputs: [{file: "report.md", doc_spec: ".deepwork/doc_specs/monthly_report.md"}]
  • The doc_spec uses the full path to the doc spec file, making references self-documenting
  • Doc spec-aware skill generation
  • Step skills now include doc spec quality criteria, target audience, and example documents
  • Both Claude and Gemini templates updated for doc spec rendering
  • Document detection workflow in deepwork_jobs.define
  • Steps 1.5, 1.6, 1.7 guide users through creating doc specs for document-oriented jobs
  • Pattern indicators: "report", "summary", "create", "monthly", "for stakeholders"
  • Doc spec improvement workflow in deepwork_jobs.learn
  • Steps 3.5, 4.5 capture doc spec-related learnings and update doc spec files
  • New OutputSpec dataclass in parser for structured output handling
  • Comprehensive doc spec documentation in doc/doc-specs.md
  • New test fixtures for doc spec validation and parsing
  • Comprehensive tests for generator doc spec integration (9 new tests)
  • test_load_doc_spec_returns_parsed_spec - Verifies doc spec loading
  • test_load_doc_spec_caches_result - Verifies caching behavior
  • test_load_doc_spec_returns_none_for_missing_file - Graceful handling of missing files
  • test_generate_step_skill_with_doc_spec - End-to-end skill generation with doc spec
  • test_build_step_context_includes_doc_spec_info - Context building verification

Changed

  • BREAKING: Renamed document_type to doc_spec throughout the codebase
  • Job.yml field: document_type → doc_spec (e.g., outputs: [{file: "report.md", doc_spec: ".deepwork/doc_specs/report.md"}])
  • Class: DocumentTypeDefinition → DocSpec (backward compat alias provided)
  • Methods: has_document_type() → has_doc_spec(), validate_document_type_references() → validate_doc_spec_references()
  • Template variables: has_document_type → has_doc_spec, document_type → doc_spec
  • Internal: _load_document_type() → _load_doc_spec(), _doc_type_cache → _doc_spec_cache
  • Step.outputs changed from list[str] to list[OutputSpec] for richer output metadata
  • SkillGenerator.generate_all_skills() now accepts project_root parameter for doc spec loading
  • Updated deepwork_jobs to v0.6.0 with doc spec-related quality criteria

Fixed

  • Fixed COMMAND rules promise handling to properly update queue status
  • When an agent provides a promise tag for a FAILED command rule, the queue entry is now correctly updated to SKIPPED status
  • Previously, FAILED queue entries remained in FAILED state even after being acknowledged via promise
  • This ensures the rules queue accurately reflects rule state throughout the workflow
  • Fixed quality criteria validation logic in skill template (#111)
  • Changed promise condition from AND to OR: promise OR all criteria met now passes
  • Changed failure condition from OR to AND: requires both criteria NOT met AND promise missing to fail
  • This corrects the logic so the promise mechanism properly serves as a bypass for quality criteria

Migration Guide

  • Update job.yml files: Change document_type: to doc_spec: in output definitions
  • Update any code importing DocumentTypeDefinition: Use DocSpec instead (alias still works)
  • Run deepwork install to regenerate skills with updated terminology