| name | goals-extract |
| description | Extract business goals, success criteria, constraints, KPIs, assumptions, and open questions from requirements input. |
| license | MIT |
Goals Extract Skill
Intent
Extract outcome goals from requirements using rule-based pattern matching and LLM-based extraction. Focus specifically on measurable business outcomes rather than system mandates or technical constraints.
Inputs
- Source:
projects/[project-name]/artifacts/Analysis/requirements.json (generated by requirements-ingest skill)
- Format: Structured requirements data with IDs and sections for traceability
Outputs
Files Generated:
projects/[project-name]/artifacts/Analysis/goals.json - Structured data for programmatic use
projects/[project-name]/artifacts/Analysis/goals.md - Human-readable documentation
JSON Structure (goals.json)
{
"goal_statement": "string",
"success_criteria": [
{
"criteria": "string",
"source_refs": ["req_id:section"]
}
],
"kpis": [
{
"kpi": "string",
"source_refs": ["req_id:section"]
}
],
"constraints": [
{
"constraint": "string",
"source_refs": ["req_id:section"]
}
],
"assumptions": [
{
"assumption": "string",
"source_refs": ["req_id:section"]
}
],
"open_questions": [
{
"question": "string",
"source_refs": ["req_id:section"]
}
],
"traceability": {
"source_requirements": ["req_id"],
"extraction_timestamp": "ISO8601",
"confidence_scores": {
"goal_statement": "0.0-1.0",
"overall": "0.0-1.0"
}
}
}
Markdown Structure (goals.md)
# Goals Analysis
## Business Goal
[Goal statement with inline reference links]
## Success Criteria
- [Criteria 1] *(Ref: req_id:section)*
- [Criteria 2] *(Ref: req_id:section)*
## Key Performance Indicators
- [KPI 1] *(Ref: req_id:section)*
- [KPI 2] *(Ref: req_id:section)*
## Constraints
- [Constraint 1] *(Ref: req_id:section)*
- [Constraint 2] *(Ref: req_id:section)*
## Assumptions
- [Assumption 1] *(Ref: req_id:section)*
- [Assumption 2] *(Ref: req_id:section)*
## Open Questions
- [Question 1] *(Ref: req_id:section)*
- [Question 2] *(Ref: req_id:section)*
---
**Traceability:** Extracted from requirements: [req_id_1], [req_id_2]
**Generated:** [timestamp]
Tools
Rule-based Pattern Extraction (Primary)
- spaCy/Universal Dependencies for dependency parsing and grammatical analysis
- Outcome cue patterns:
increase|reduce|improve|decrease|optimize|ensure|enhance|streamline|grow|expand
- Intent signal patterns: "should aim to", "objective is to", "goal is to", "target is", "we will", "by [date]", "within [timeframe]"
- Keyphrase extraction: RAKE/YAKE/TextRank constrained to outcome-containing sentences
- OpenIE extraction: Get (subject, relation, object) tuples where relation contains outcome verbs
- Negative filtering: Exclude "the system shall..." unless followed by outcome language
LLM-based Extraction (Secondary)
- LLM with outcome-focused extraction prompt
- Confidence scoring and validation
Supporting Tools
- JSON parser to read requirements.json from Analysis folder
- Glossary lookup to normalize terms
- File writer for dual output format (JSON + Markdown)
Extraction Algorithm
Phase 1: Rule-based Pattern Matching
-
Outcome Pattern Detection:
- Scan for outcome cue words:
increase|reduce|improve|decrease|optimize|ensure|enhance|streamline|grow|expand
- Identify modal/intent signals: "should aim to", "objective is to", "goal is to", "target is", "we will", "by [date]", "within [timeframe]"
-
Dependency Analysis (spaCy/UD):
- Extract (VERB→dobj) patterns where verb ∈ outcome verbs
- Expand noun phrases and capture adjuncts (prep: by/within/to) for targets/deadlines
-
Negative Filtering:
- Exclude system mandates: "the system shall..." unless followed by outcome language ("to reduce...")
- Filter out pure technical constraints
-
Keyphrase Extraction:
- Apply RAKE/YAKE/TextRank to sentences containing outcome patterns
- Constrain to outcome-relevant phrases for precision
-
OpenIE Extraction:
- Extract (subject, relation, object) tuples
- Keep tuples where relation contains outcome verbs
Phase 2: LLM Validation & Enhancement
- Validate pattern-extracted goals for coherence
- Fill gaps in goal statements
- Generate confidence scores
- Ensure SMART criteria compliance for measurable outcomes
Quality Criteria
- Outcome Focus: Goals must describe desired business outcomes, not system features
- SMART Compliance: Specific, Measurable, Achievable, Relevant, Time-bound
- Pattern Precision: Rule-based extraction achieves >90% precision on outcome identification
- Traceability: Every extracted goal links to source requirement with confidence score
- Negative Filtering: Successfully excludes technical mandates and constraints
Example Output
JSON Format
{
"goal_statement": "Reduce requirements processing time by 75% within 6 months while maintaining 99% accuracy.",
"success_criteria": [
{
"criteria": "Achieve 75% reduction in processing time compared to current baseline.",
"source_refs": ["REQ-001:2.1"],
"extraction_method": "pattern_match",
"outcome_verb": "reduce"
},
{
"criteria": "Maintain 99% accuracy rate for all processed requirements.",
"source_refs": ["REQ-002:3.1"],
"extraction_method": "pattern_match",
"outcome_verb": "maintain"
},
{
"criteria": "Complete implementation within 6 months of project start.",
"source_refs": ["REQ-001:4.2"],
"extraction_method": "temporal_pattern",
"outcome_verb": "complete"
}
],
"kpis": [
{
"kpi": "Processing time: < 2.5 minutes per batch (75% reduction from 10 minutes baseline)",
"source_refs": ["REQ-002:2.3"],
"extraction_method": "pattern_match",
"outcome_verb": "reduce",
"target_value": "75%",
"timeframe": "per batch"
},
{
"kpi": "Accuracy rate: ≥ 99% (unit: percent, timeframe: daily)",
"source_refs": ["REQ-002:3.1"],
"extraction_method": "pattern_match",
"outcome_verb": "maintain",
"target_value": "99%",
"timeframe": "daily"
}
],
"constraints": [
{
"constraint": "Input requirements must conform to the specified format.",
"source_refs": ["REQ-001:1.1"]
},
{
"constraint": "System must operate within existing infrastructure and security policies.",
"source_refs": ["REQ-004:1.1"]
},
{
"constraint": "No manual intervention allowed during ingestion.",
"source_refs": ["REQ-002:2.5"]
}
],
"assumptions": [
{
"assumption": "Requirements provided are complete and up-to-date.",
"source_refs": ["REQ-001:assumptions"]
},
{
"assumption": "Glossary terms are available for normalization.",
"source_refs": ["REQ-003:2.1"]
},
{
"assumption": "Downstream systems are ready to consume ingested data.",
"source_refs": ["REQ-004:3.2"]
}
],
"open_questions": [
{
"question": "What is the process for handling ambiguous or conflicting requirements?",
"source_refs": ["REQ-001:notes"]
},
{
"question": "How will updates to requirements be managed post-ingestion?",
"source_refs": ["REQ-002:future_considerations"]
},
{
"question": "Are there scalability limits for batch size or frequency?",
"source_refs": ["REQ-002:performance"]
}
],
"traceability": {
"source_requirements": ["REQ-001", "REQ-002", "REQ-003", "REQ-004"],
"extraction_timestamp": "2026-02-08T10:30:00Z",
"confidence_scores": {
"goal_statement": "0.95",
"overall": "0.87",
"pattern_precision": "0.92",
"outcome_focus_score": "0.89"
}
}
}
Markdown Format
# Goals Analysis
## Business Goal
Reduce requirements processing time by 75% within 6 months while maintaining 99% accuracy.
## Success Criteria
- Achieve 75% reduction in processing time compared to current baseline. *(Ref: REQ-001:2.1) [reduce]*
- Maintain 99% accuracy rate for all processed requirements. *(Ref: REQ-002:3.1) [maintain]*
- Complete implementation within 6 months of project start. *(Ref: REQ-001:4.2) [complete]*
## Key Performance Indicators
- Processing time: < 2.5 minutes per batch (75% reduction from 10 minutes baseline) *(Ref: REQ-002:2.3) [reduce]*
- Accuracy rate: ≥ 99% (unit: percent, timeframe: daily) *(Ref: REQ-002:3.1) [maintain]*
## Constraints
- Input requirements must conform to the specified format. *(Ref: REQ-001:1.1)*
- System must operate within existing infrastructure and security policies. *(Ref: REQ-004:1.1)*
- No manual intervention allowed during ingestion. *(Ref: REQ-002:2.5)*
## Assumptions
- Requirements provided are complete and up-to-date. *(Ref: REQ-001:assumptions)*
- Glossary terms are available for normalization. *(Ref: REQ-003:2.1)*
- Downstream systems are ready to consume ingested data. *(Ref: REQ-004:3.2)*
## Open Questions
- What is the process for handling ambiguous or conflicting requirements? *(Ref: REQ-001:notes)*
- How will updates to requirements be managed post-ingestion? *(Ref: REQ-002:future_considerations)*
- Are there scalability limits for batch size or frequency? *(Ref: REQ-002:performance)*
---
**Traceability:** Extracted from requirements: REQ-001, REQ-002, REQ-003, REQ-004
**Generated:** 2026-02-08T10:30:00Z
**Extraction Method:** Rule-based patterns + LLM validation
**Pattern Precision:** 0.92 | **Outcome Focus:** 0.89 | **Overall Confidence:** 0.87