Add comprehensive documentation for C1.schema task:
- Notes section in Implementation Checklist with design decisions
- Development Log entry with full implementation summary
- Traceability for all deliverables (code, docs, tests, benchmarks)
- Quality metrics and next steps documented
- Complete file/line number references for all artifacts
Part 11 (final) of C1.schema implementation (Actor YAML Schema Models).
- plan use: accept positional PROJECT args, add --automation-profile,
--invariant (repeatable), and actor override flags
- lifecycle-list: add --state/--processing-state, --action filters,
optional positional REGEX for name filtering, Action column in output
- plan status: enhanced detail view with processing state, project
links, arguments order, automation profile provenance, actor
overrides, automation level, and full timestamps
- Add docs/reference/plan_cli.md reference documentation
- Add Behave feature (17 scenarios) with mock service steps
- Add Robot smoke test (7 cases) with import-safe helper
- Add ASV benchmarks for plan use/list/status commands
- Enforce config-only 'action create --config <file>' (remove legacy
inline flags: --name, --strategy-actor, --execution-actor,
--definition-of-done, --arg)
- Load config via ActionConfigSchema.from_yaml_file() then
Action.from_config() with clear validation error surfacing
- Remove 'action available' subcommand (no draft state; actions are
available by default)
- Add REGEX positional arg to 'action list' for name filtering
- Add Short Name and Definition of Done summary to all CLI outputs
- Add 'action list --namespace/-n' and '--state/-s' filters
- Update existing tests to match new config-only create flow
- Add features/action_cli_spec_alignment.feature (19 scenarios)
- Add robot/action_cli_spec.robot smoke tests
- Add benchmarks/action_cli_bench.py ASV benchmarks
- Add docs/reference/action_cli.md
Merged master into feature/q0-min-coverage. Resolved conflicts in:
- benchmarks/coverage_report_bench.py: combined AST and regex benchmarks
- docs/development/testing.md: merged both versions into comprehensive guide
- robot/coverage_threshold.robot: merged test cases from both branches
- implementation_plan.md: kept both Brent and Luis notes
Fixed coverage_threshold_config test that failed because it expected
a literal --fail-under=97 but our noxfile uses the COVERAGE_THRESHOLD
constant via f-string. Updated step to resolve the constant via AST.
- Restore pabot-based integration_tests with conservative parallelism
(<=2 processes by default) and support PABOT_PROCESSES/--processes
- Remove the temporary CI debug dump from noxfile.py
- Add robot/discovery_common.resource to silence non-fatal warning
- Document the change in implementation_plan.md
- Avoid deleting the workspace when OPENAI_API_KEY is unset
by guarding cleanup and initializing CONTEXT_DIR
- Prevents downstream Robot suites from losing .nox venv and
resource files after the basic scientific paper suite is skipped
Three fixes targeting CI integration_tests failures (18 failures on e8aa5ac):
1. Merge duplicate *** Settings *** blocks in 14 robot files into single
blocks. Multiple Settings sections are non-standard RF practice and
may cause resource import failures in certain Robot Framework versions
or CI environments.
2. Replace bare 'python' with ${PYTHON} variable in all Run Process
calls (14 files). Noxfile now passes --variable PYTHON:<venv-path>
to robot so tests use the venv interpreter regardless of PATH. This
fixes '/usr/local/bin/python: No module named cleveragents' on CI.
3. Add comprehensive CI debug output in noxfile.py: file existence
checks for .resource files, PATH/Python resolution, fixture dir
checks, and RF version. This will diagnose any remaining resource
import issues.
Also: remove hardcoded '/app/src' sys.path.insert in
system_prompt_template_rendering.robot (not portable to CI), and
add trailing newline to common.resource.
All 204 tests pass locally (4 excluded: 2 slow, 2 discovery).
- Restore session.env["PATH"] in integration_tests nox session to ensure
Run Process uses venv Python instead of system Python
- Convert bare Resource references to ${CURDIR}/ absolute paths across
30 robot files to fix CI resolution failures
- Add timeout=30s to all Run Process calls in rxpy_route_validation.robot
to prevent hanging tests
- Tag 2 rxpy tests as slow (require running actors unavailable on CI)
- Fix LangGraph test to use correct config file (LANGGRAPH_CONFIG)
- All 204 tests pass (4 excluded: 2 slow + 2 discovery)
- integration_tests: replace pabot with sequential robot execution to
eliminate FileNotFoundError caused by subprocess/FD exhaustion in
constrained CI containers (pabot spawns a robot subprocess per suite;
after ~24 suites the container cannot execve new processes)
- integration_tests: add resource debug output (open FD count, ulimit
values) to help diagnose future CI container issues
- integration_tests: remove _pabot_parallel_args (no longer needed);
slow_integration_tests session still available for parallel runs
- load_context_test: add env:TERM=dumb alongside NO_COLOR=1 to disable
all Rich terminal styling (NO_COLOR only disables color, not bold/
reset ANSI codes that may split substrings)
- load_context_test: add repr() debug logging around the --load-context
match to reveal any invisible characters on CI
- security_scan: create build/ directory before bandit writes its JSON
report (fails on fresh CI checkout where directory does not exist)
- integration_tests: cap pabot parallelism to 2 processes and explicitly
propagate venv bin/ to PATH, preventing FileNotFoundError for the
robot binary under CI resource constraints
- integration_tests: add env:NO_COLOR=1 to load_context_test.robot help
text assertions so Rich ANSI escape codes do not break substring
matching on CI
- integration_tests: tag initial_next_command_test as slow (requires
OPENAI_API_KEY for LLM agent invocation, unavailable on CI)
- Fix Rich Console line-wrapping breaking assertions in
context_unit_tests_steps.py: collapse newlines before checking for
filenames and overflow summaries (CI temp paths exceed 80 columns)
- Fix features.mocks import failure in database_integration.robot:
replace hardcoded sys.path '/app' with portable ${CURDIR}/..
- Fix --load-context help text assertions in load_context_test.robot:
merge stderr into stdout via stderr=STDOUT and remove duplicate test
- Add standalone dead_code nox session running vulture directly
- Rename security nox session to security_scan to match CI references
- Restore --exclude discovery to integration_tests nox session (lost
during merge conflict resolution)