3.9 KiB
3.9 KiB
Story 8.1: Job-Level Anchor Text Control for T1 and T2+
Story Details
As a user, I want to explicitly specify anchor text terms in my job configuration for both Tier 1 and Tier 2+ links, so that I can include specific terms (like "high volume") that aren't covered by the standard algorithm.
Acceptance Criteria
1. Job JSON Configuration Support
Status: TODO
- Job JSON supports explicit anchor text configuration for both Tier 1 and Tier 2+
- Anchor text can be specified at job-level (applies to all tiers) or tier-level (tier-specific)
- Support for multiple anchor text terms per tier
- Configuration format is intuitive and well-documented
Example Format:
{
"jobs": [{
"project_id": 26,
"anchor_text_config": {
"mode": "explicit",
"tier1": ["high volume", "precision machining", "custom manufacturing"],
"tier2": ["high volume production", "bulk manufacturing", "large scale"]
},
"tiers": {
"tier1": {
"count": 12,
"anchor_text_config": {
"mode": "explicit",
"terms": ["high volume", "precision"]
}
},
"tier2": {"count": 38}
}
}]
}
2. Anchor Text Priority and Usage
Status: TODO
- When explicit anchor text is provided, it should be used instead of algorithm-generated anchor text
- Explicit anchor text takes precedence over algorithm-generated terms
- Anchor text terms are used when injecting links (tiered links, homepage links, money site links, etc.)
- System tries to find explicit terms in content first, then falls back to insertion if not found
3. Backward Compatibility
Status: TODO
- Existing jobs without explicit anchor text continue to work with current algorithm
- Default behavior unchanged when no explicit anchor text is provided
- All existing anchor text modes ("default", "override", "append") continue to work
4. Implementation Details
Status: TODO
- Extend
AnchorTextConfigdataclass insrc/generation/job_config.pyto support tier-specific term lists - Update
_parse_job()and_parse_tier()methods to parse explicit anchor text configuration - Update
_get_anchor_texts_for_tier()insrc/interlinking/content_injection.pyto prioritize explicit terms - Add validation to ensure explicit terms are provided when mode is "explicit"
- Update
JOB_FIELD_REFERENCE.mdwith documentation and examples
5. Testing
Status: TODO
- Unit tests for parsing explicit anchor text configuration
- Integration tests verifying explicit anchor text is used in link injection
- Tests for tier-level override of job-level anchor text
- Tests for backward compatibility with existing configurations
Technical Implementation
Changes Required
-
Job Config Parser (
src/generation/job_config.py):- Extend
AnchorTextConfigto supporttier1,tier2, etc. fields - Update parsing logic to handle tier-specific anchor text lists
- Add validation for explicit mode requiring term lists
- Extend
-
Content Injection (
src/interlinking/content_injection.py):- Update
_get_anchor_texts_for_tier()to check for explicit terms first - If explicit terms exist, use them; otherwise fall back to current algorithm
- Support both job-level and tier-level explicit anchor text
- Update
-
Documentation:
- Update
JOB_FIELD_REFERENCE.mdwith new anchor text configuration options - Add examples showing explicit anchor text usage
- Update
Example Use Cases
- Wide Variety: User wants to include multiple different terms to a page, which isn't in related_searches or main_keyword variations
- Brand-Specific Terms: User wants to use specific branded terms that aren't algorithmically generated
- Industry-Specific Jargon: Terms that are important for SEO but don't appear in standard keyword extraction
Dependencies
- None (standalone feature)
Related Stories
- Story 3.3: Content Interlinking Injection (existing anchor text system)