{"jsonrpc":"2.0","id":1,"result":{"capabilities":{"resources":{"listChanged":false,"subscribe":false},"tools":{"listChanged":false}},"protocolVersion":"2024-11-05","serverInfo":{"name":"reqproof","version":"0.1.0"}}}
{"jsonrpc":"2.0","error":{"code":-32601,"message":"method not found: notifications/initialized"}}
{"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"reqproof_what_if","description":"Preview the impact of changing a requirement's FRETish text before committing the change.","inputSchema":{"properties":{"id":{"description":"Requirement ID","type":"string"},"new_fretish":{"description":"Proposed new FRETish text","type":"string"}},"required":["id","new_fretish"],"type":"object"}},{"name":"reqproof_create_requirement","description":"Create a new requirement YAML file. AI-created requirements are automatically set to draft status with ai_generated=true.","inputSchema":{"properties":{"component":{"description":"Component assignment","type":"string"},"description":{"description":"Free-text description","type":"string"},"formalization_strategy":{"description":"Formalization strategy","enum":["fretish","manual_ltl","external","informal"],"type":"string"},"fretish":{"description":"FRETish natural language requirement text","type":"string"},"id":{"description":"Requirement ID (auto-generated if omitted)","type":"string"},"parent":{"description":"Parent requirement ID (also recorded as a traces.satisfies link)","type":"string"},"rationale":{"description":"Rationale for this requirement","type":"string"},"req_type":{"description":"Requirement type","enum":["guarantee","assumption","constraint"],"type":"string"},"spec":{"description":"Specification name or path","type":"string"},"tags":{"description":"Tags","items":{"type":"string"},"type":"array"},"traces":{"description":"Trace links: {satisfies?: string[], verified_by?: string[]}","type":"object"}},"required":["spec","component"],"type":"object"}},{"name":"reqproof_trace_analysis","description":"Traverse trace links from a requirement in a given direction.","inputSchema":{"properties":{"depth":{"description":"Maximum traversal depth (0 = unlimited)","type":"integer"},"direction":{"description":"Traversal direction","enum":["up","down","both"],"type":"string"},"id":{"description":"Starting requirement ID","type":"string"}},"required":["id"],"type":"object"}},{"name":"reqproof_decompose_requirement","description":"Suggest sub-requirements that decompose a high-level requirement into component-level requirements.","inputSchema":{"properties":{"id":{"description":"Requirement ID to decompose","type":"string"},"target_components":{"description":"Target components for sub-requirements","items":{"type":"string"},"type":"array"}},"required":["id","target_components"],"type":"object"}},{"name":"reqproof_start_analysis","description":"Start a long-running analysis and get a job ID for polling. Types: realizability, gap_analysis.","inputSchema":{"properties":{"component":{"description":"Component name","type":"string"},"options":{"description":"Type-specific options (solver, timeout, etc.)","type":"object"},"spec":{"description":"Specification name","type":"string"},"type":{"description":"Analysis type","enum":["realizability","gap_analysis"],"type":"string"}},"required":["type","spec"],"type":"object"}},{"name":"reqproof_get_analysis_status","description":"Check the status of a long-running analysis job.","inputSchema":{"properties":{"job_id":{"description":"Job ID to check","type":"string"}},"required":["job_id"],"type":"object"}},{"name":"reqproof_suggest_improvements","description":"Analyzes a requirement and returns structural suggestions (ambiguity warnings, missing scope, untestable patterns, etc.)","inputSchema":{"properties":{"id":{"description":"Requirement ID to analyze","type":"string"}},"required":["id"],"type":"object"}},{"name":"reqproof_generate_document","description":"Generate an SRS document or report from a template.","inputSchema":{"properties":{"output_format":{"description":"Output format","enum":["html","md"],"type":"string"},"spec":{"description":"Optional spec filter","type":"string"},"template":{"description":"Template name (npr7150-srs, trace-matrix, req-summary, verification-report)","type":"string"}},"required":["template"],"type":"object"}},{"name":"reqproof_compile_fretish","description":"Parse and formalize a FRETish natural language requirement. Returns semantics and formalization.","inputSchema":{"properties":{"text":{"description":"FRETish requirement text to compile","type":"string"}},"required":["text"],"type":"object"}},{"name":"reqproof_simulate_ltl","description":"Simulate an LTL formula against signal traces.","inputSchema":{"properties":{"formula":{"description":"LTL formula to simulate","type":"string"},"signals":{"description":"Signal values: {name: [0,1,0,...]}","type":"object"},"trace_length":{"description":"Trace length","type":"integer"}},"required":["formula"],"type":"object"}},{"name":"reqproof_generate_tests","description":"Generate test cases for a component's requirements.","inputSchema":{"properties":{"component":{"description":"Component name","type":"string"},"spec":{"description":"Specification name","type":"string"}},"required":["spec","component"],"type":"object"}},{"name":"reqproof_diff_baselines","description":"Compare two baselines and show differences.","inputSchema":{"properties":{"from":{"description":"Source baseline name","type":"string"},"to":{"description":"Target baseline name","type":"string"}},"required":["from","to"],"type":"object"}},{"name":"reqproof_explain_formalization","description":"Explain what a requirement's LTL formula means in plain language. Lists covered and excluded scenarios.","inputSchema":{"properties":{"id":{"description":"Requirement ID","type":"string"}},"required":["id"],"type":"object"}},{"name":"reqproof_check_pairwise_consistency","description":"Compare the variables of two requirements. This is a heuristic, not a solver check: consistent is true only when the requirements share no variable, and the result lists the shared variables. Use `proof check consistency` for a solver verdict.","inputSchema":{"properties":{"id1":{"description":"First requirement ID","type":"string"},"id2":{"description":"Second requirement ID","type":"string"}},"required":["id1","id2"],"type":"object"}},{"name":"reqproof_delete_requirement","description":"Delete a requirement file.","inputSchema":{"properties":{"id":{"description":"Requirement ID to delete","type":"string"}},"required":["id"],"type":"object"}},{"name":"reqproof_create_baseline","description":"Create a project baseline (snapshot).","inputSchema":{"properties":{"description":{"description":"Baseline description","type":"string"},"name":{"description":"Baseline name (auto-generated if omitted)","type":"string"}},"required":["description"],"type":"object"}},{"name":"reqproof_validate_all","description":"Validate all requirements in the project. Reports parse errors, missing fields, and verification gaps.","inputSchema":{"properties":{"spec":{"description":"Optional spec filter","type":"string"}},"type":"object"}},{"name":"reqproof_analyze_gaps","description":"Run gap analysis to detect missing requirements by analyzing variable, mode, and boundary coverage.","inputSchema":{"properties":{"component":{"description":"Component name","type":"string"},"spec":{"description":"Specification name","type":"string"}},"required":["spec","component"],"type":"object"}},{"name":"reqproof_update_requirement","description":"Update an existing requirement. Fields not specified are left unchanged.","inputSchema":{"properties":{"fields":{"description":"Fields to update (fretish, description, status, component, rationale, tags, req_type, etc.). A parent value also replaces the old parent's traces.satisfies link; an empty parent clears both.","type":"object"},"id":{"description":"Requirement ID to update","type":"string"}},"required":["id","fields"],"type":"object"}},{"name":"reqproof_check_realizability","description":"Check realizability of a component's requirements. Use async=true for long-running checks.","inputSchema":{"properties":{"async":{"description":"If true, returns job_id immediately","type":"boolean"},"component":{"description":"Component name","type":"string"},"solver":{"description":"Solver to use","enum":["kind2","jkind"],"type":"string"},"spec":{"description":"Specification name","type":"string"},"timeout":{"description":"Timeout in seconds","type":"integer"}},"required":["spec","component"],"type":"object"}},{"name":"reqproof_query_requirements","description":"Query and filter requirements. Supports filtering by spec, component, status, tags, traces, variables, and full-text search.","inputSchema":{"properties":{"assurance":{"description":"Filter by assurance level","type":"string"},"component":{"description":"Filter by component","type":"string"},"documented_by":{"description":"Filter by documentation trace target","type":"string"},"implemented_by":{"description":"Filter by implementation trace target","type":"string"},"parent":{"description":"Filter by parent requirement ID","type":"string"},"req_type":{"description":"Filter by requirement type","type":"string"},"satisfies":{"description":"Filter by satisfied requirement ID","type":"string"},"search":{"description":"Full-text search query","type":"string"},"spec":{"description":"Filter by specification","type":"string"},"status":{"description":"Filter by status","enum":["draft","review","approved","deprecated","rejected","retired","superseded"],"type":"string"},"tags":{"description":"Filter by tags","items":{"type":"string"},"type":"array"},"variable":{"description":"Filter by referenced variable","type":"string"},"verified_by":{"description":"Filter by verification trace target","type":"string"}},"type":"object"}},{"name":"reqproof_coverage_report","description":"Generate a trace coverage report for a specification.","inputSchema":{"properties":{"spec":{"description":"Specification name","type":"string"}},"required":["spec"],"type":"object"}}]}}
{"jsonrpc":"2.0","id":3,"result":{"content":[{"text":"{\"count\":1,\"requirements\":[{\"id\":\"SW-REQ-241\",\"spec\":\"specs/software\",\"component\":\"reservation_store\",\"status\":\"draft\",\"req_type\":\"\",\"assurance_level\":\"E\",\"fretish\":\"\",\"description\":\"A retry using the same key before 24 elapsed hours shall return the original reservation and shall not create another reservation.\",\"file_path\":\"specs/software/requirements/SW-REQ-241.req.yaml\",\"parse_status\":\"\"}]}","type":"text"}]}}
{"jsonrpc":"2.0","id":4,"result":{"content":[{"text":"{\"count\":0,\"requirements\":[]}","type":"text"}]}}
{"jsonrpc":"2.0","id":5,"result":{"content":[{"text":"{\"count\":0,\"requirements\":[]}","type":"text"}]}}
{"jsonrpc":"2.0","id":6,"result":{"content":[{"text":"{\"graph\":{\"root\":\"SW-REQ-241\",\"entries\":null}}","type":"text"}]}}
{"jsonrpc":"2.0","id":7,"result":{"resources":[{"uri":"reqproof://project/manifest","name":"Project Manifest","description":"The project configuration from proof.yaml","mimeType":"application/json"},{"uri":"reqproof://specs","name":"Specifications","description":"List of all specifications in the project","mimeType":"application/json"},{"uri":"reqproof://baselines","name":"Baselines","description":"List of all project baselines","mimeType":"application/json"},{"uri":"reqproof://specs/{spec}/requirements","name":"Spec Requirements","description":"All requirements in a given specification","mimeType":"application/json"},{"uri":"reqproof://requirements/{id}","name":"Requirement Detail","description":"Full detail of a single requirement","mimeType":"application/json"},{"uri":"reqproof://components/{name}/variables","name":"Component Variables","description":"Variable definitions for a component","mimeType":"application/json"},{"uri":"reqproof://analysis/coverage/{spec}","name":"Coverage Analysis","description":"Trace coverage metrics for a specification","mimeType":"application/json"},{"uri":"reqproof://requirements/{id}/history","name":"Requirement History","description":"Git log provenance history for a requirement","mimeType":"application/json"},{"uri":"reqproof://baselines/{name}","name":"Baseline Detail","description":"Full detail of a single baseline","mimeType":"application/json"},{"uri":"reqproof://analysis/gaps/{spec}/{component}","name":"Gap Analysis Results","description":"Gap analysis results for a specification and component","mimeType":"application/json"},{"uri":"reqproof://analysis/realizability/{spec}/{component}","name":"Realizability Results","description":"Realizability check results for a specification and component","mimeType":"application/json"},{"uri":"reqproof://jobs/{job_id}","name":"Job Status","description":"Status and result of an asynchronous analysis job","mimeType":"application/json"}]}}
{"jsonrpc":"2.0","id":8,"result":{"contents":[{"mimeType":"application/json","text":"{\"id\":\"SW-REQ-241\",\"version\":1,\"status\":\"draft\",\"priority\":\"shall\",\"category\":\"functional\",\"req_type\":\"\",\"fretish\":\"\",\"description\":\"A retry using the same key before 24 elapsed hours shall return the original reservation and shall not create another reservation.\",\"formalization_strategy\":\"\",\"informal_verification\":{\"method\":\"\",\"evidence\":\"\",\"verified\":false},\"component\":\"reservation_store\",\"rationale\":\"A client can lose the first response and retry later.\",\"tags\":null,\"variables\":null,\"traces\":{},\"verification\":{\"assurance_level\":\"E\",\"formalization_status\":\"\",\"review\":{\"status\":\"\",\"reviewer\":\"\",\"reviewed_at\":\"\",\"ai_generated\":false}},\"history\":{\"created_by\":\"\",\"created_at\":\"\",\"last_modified_by\":\"\",\"last_modified_at\":\"\"},\"assumption\":{},\"stakeholder\":{},\"interface\":{},\"lifecycle\":{},\"_computed\":{\"file_hash\":\"sha256:9d6d80120c8b85721930e6317c798e596d5fcd9ccc9205d69fe3a6fff28a33ae\"}}","uri":"reqproof://requirements/SW-REQ-241"}]}}
