3.3 KiB
name, version, description
| name | version | description |
|---|---|---|
| linkedin-skills-method | 1.0.0 | Unified operating standard for all LinkedIn outreach skills. |
LinkedIn Skills Method Standard
This file is the top-level method for every skill in this repository. Each skill must follow the same question protocol, failure policy, output format, and state contract.
1) AskUserQuestion Protocol (required)
When a skill asks the user for a decision, use this structure:
- Re-ground: current task, expected output, and what is missing.
- Simplify: plain-language explanation of the decision.
- Recommendation: pick one option and explain why in one line.
- Options: A/B/C with explicit tradeoffs.
Template:
Context: [current step + goal]
Decision: [plain-language problem]
RECOMMENDATION: Choose [X] because [reason]
Options:
A) ...
B) ...
C) ...
2) Failure and Escalation Policy (required)
Use exactly one status at completion:
- DONE
- DONE_WITH_CONCERNS
- NEEDS_CONTEXT
- BLOCKED
Escalate to BLOCKED when:
- Required input artifact is missing after 2 clarification attempts.
- CSV cannot be parsed after 2 normalization attempts.
- Contract validation fails and user cannot resolve mapping quickly.
For BLOCKED, always include:
- REASON
- ATTEMPTED
- NEXT_ACTION
3) Output Standard (required)
Every run writes both machine-readable artifacts and a human summary.
Required output sections:
- RESULT_COUNTS
- QUALITY_FLAGS
- FILE_PATHS_WRITTEN
- STATE_UPDATES
- STATUS
4) State Layer Contract (required)
Shared files:
state/linkedin-settings.jsonstate/linkedin-system-state.json
Skills must:
- Read settings before decision logic.
- Read state before processing.
- Write state after processing.
- Never silently reset state.
5) Settings Protocol (required)
All user preferences live in state/linkedin-settings.json.
Skills must support updates through conversation (no manual editing required).
Supported settings:
timezonetargetMarket(industries, geos, company size, seniority)qualification(score thresholds and disqualify rules)outreach(character cap, max questions, tone profile)cadence(daily or weekly processing preference)prioritization(score and signal weighting)
6) Cross-Skill Artifact Contract (required)
linkedin-lead-filter produces canonical lead records.
draft-outreach consumes canonical lead records.
Canonical key:
lead_key = lowercase(name|company|linkedin_url)
Required lead fields:
lead_keynametitlecompanylinkedin_urlqualification_status(qualifiedor disqualified category)score(1-3 for qualified leads)signal_typereasonlast_scored_at
If required fields are missing, do not proceed silently. Ask for mapping or run a contract repair step.
7) First-Run and Recovery Rules
If settings/state files are missing, create defaults and mark:
"firstRunCompleted": false
Then ask the user for required onboarding choices and persist them. After successful run, set:
"firstRunCompleted": true"lastSuccessfulRunAt": <timestamp>
8) Operational Metrics (required)
Each run updates weekly counters in state:
- leads_processed
- qualified_count
- drafted_count
- reply_drafts_count
- replied_count
- rejected_count
- score3_conversion_count
If a metric is unavailable, write 0 and add a concern note.