Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)
Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
59 lines
2.1 KiB
Markdown
59 lines
2.1 KiB
Markdown
---
|
|
name: capacity-matching
|
|
description: >
|
|
Find matching capacities for a task using the Teamlandkarte MCP server.
|
|
Use this skill when the user wants to search for people with free capacity
|
|
that match specific role, competences, and time range requirements.
|
|
---
|
|
|
|
# Capacity Matching Workflow
|
|
|
|
## Prerequisites
|
|
|
|
Before running a capacity search, you MUST have all of these:
|
|
- **role_name**: The required role (or "Beliebige Rolle" if user refuses to specify)
|
|
- **competences**: A non-empty list of required skills/technologies
|
|
- **date_start / date_end**: A time range (open-ended allowed)
|
|
- **description**: A concrete topic/goal (not just a single skill name)
|
|
|
|
## Decision: Extract vs Guided Capture
|
|
|
|
Use `extract_requirements(task_description)` when the user provides a reasonably complete description containing:
|
|
- A scope/goal
|
|
- At least 2 competences
|
|
- A time range
|
|
|
|
Use **guided capture** when any of the above are missing:
|
|
1. `start_guided_capture()`
|
|
2. `guided_set_description(description)`
|
|
3. `guided_set_role(role_name)`
|
|
4. `guided_set_time_range(date_start?, date_end?)`
|
|
5. `guided_set_competences([...])`
|
|
|
|
## Confirmation Gate (mandatory)
|
|
|
|
After requirements are captured:
|
|
1. Call `show_pending_requirements()` to display the review table
|
|
2. Ask: "Soll ich diese Anforderungen so übernehmen und die Suche starten?" (Ja/Nein)
|
|
3. Only on "Ja": call `confirm_requirements(confirm=true)`
|
|
4. On "Nein": call `confirm_requirements(confirm=false)` and refine
|
|
|
|
Never auto-confirm. Never confirm in the same turn as capture.
|
|
|
|
## Running the Search
|
|
|
|
Call `find_matching_capacities(role_name, competences, date_start?, date_end?)`.
|
|
|
|
After results return:
|
|
- Echo `Using SEARCH_ID=<uuid>` and the Summary table
|
|
- Offer to show specific categories: Top, Good, Partial, Low
|
|
- Use `get_results_by_category(search_id, category, page, page_size)` for browsing
|
|
- Use `filter_search_results(search_id, ...)` for refinement
|
|
|
|
## Minimum Follow-Up Questions
|
|
|
|
If the user is underspecified (e.g. "Ich suche jemanden mit JavaScript"), ask:
|
|
1. Welche Rolle soll die Person haben?
|
|
2. Ab wann und bis wann wird die Person benötigt?
|
|
3. Welche weiteren wichtigen Skills sind relevant?
|