The Lofoten Challenge, Part II: Stockfish, Collaboration, and the Skill Library
How a 1,000-year-old cod trade inspired new Hermes plugins for skill gap analysis, cross-agent collaboration, fleet monitoring, context preservation, and cost tracking. Five teams, five Lofoten connections.
Dr J

The Lofoten Challenge, Part II: Stockfish, Collaboration, and the Skill Library
How a 1,000-year-old cod trade inspired five new Hermes Agent extensions — from skill gap analysis to fleet monitoring to cross-agent collaboration protocols.
The Challenge Continues
In Part I, I covered Team Maelstrom's work: a tool telemetry plugin and agent self-diagnostic skill inspired by the Moskstraumen — the Lofoten maelstrom that makes invisible tidal forces visible.
This post covers the remaining four teams, each inspired by a different facet of the Lofoten Islands.
Team Stockfish: The 1,000-Year-Old Trade Network
The Inspiration
Stockfish (tørrfisk) is air-dried cod — no salt, no preservatives, only wind, cold, and time. It has been Lofoten's primary export for over 1,000 years, and one of the oldest continuous food industries in the world.
The process: Arctic cod (skrei) migrate from the Barents Sea to Lofoten waters to spawn between January and April. After each daily catch, the fish is cleaned, headed, tied in pairs by the tail, and hung on wooden drying racks (hjell). It stays there for approximately three months, losing 75-80% of its water weight. In June, it's taken down and sorted into 18 different quality grades.
The trade network this created was extraordinary:
- ~860 AD: Viking Ottar from Lofoten brought stockfish to the court of King Alfred of England — one of the earliest written accounts of the region
- Early 12th century: Systematic trade between Lofoten and Europe began, centered on Vágar — the first town in northern Norway
- 1432: Italian merchant Pietro Querini was stranded on Røst, Lofoten's southernmost island. He brought 60 pieces of stockfish back to Venice. The locals loved it. An opera has been written about this.
- Today: Italy remains the biggest importer of Lofoten stockfish — a trade relationship spanning 600+ years
DNA analysis of Viking Age cod bones found in Haithabu, Germany (dating to 800-1066 AD) confirmed that the cod came from Arctic stocks that swim off the coast of Lofoten — proving a stockfish trade network stretching over 1,000 miles from Arctic Norway to the Baltic Sea, a thousand years ago.
What We Built: Skill Gap Analyzer Plugin
The stockfish trade thrived on quality inspection. Each fish was examined, sorted, and graded. Fish that weren't drying properly were caught early — before they could spoil the batch.
hermes-plugin-skill-gap-analyzer brings this same systematic inspection to the Hermes skill library. As agents accumulate skills over time — through manual creation, hub installation, and plugin provisioning — the library develops problems:
- Coverage blindness — No way to see which capability categories are well-covered and which have gaps
- Duplicate accumulation — Skills with overlapping functionality accumulate without being noticed
- Quality drift — Skills created early may have stale references or outdated commands
- Discovery failure — Agents don't know what they don't know — capabilities that exist but are never loaded
The plugin scans skill directories, parses each SKILL.md's frontmatter (name, description, tags), and provides three tools:
skill_gap_scan— Scan skill directories and return coverage analysis by categoryskill_gap_report— Generate a detailed gap report with recommendations for new skillsskill_similarity— Find skills that are potential duplicates or have overlapping functionality
The plugin hooks into on_session_start and on_skill_lifecycle to maintain a living index. It uses SQLite for storing scan results, with the same thread-safety and error-handling patterns as the telemetry plugin.
What We Built: Cross-Agent Collaboration Skill
The stockfish trade required coordination at every level: fishermen caught the cod, driers managed the drying process, traders in Bergen negotiated with the Hanseatic League, and merchants across Europe distributed the product. This was a multi-agent system — a network of specialized roles working toward a shared goal.
A key institution was the rorbu system. Visiting fishermen — as many as 30,000 during the peak season, traveling from Finnmark in the north to Mandal in the south — rented traditional red-painted cabins from local "nessekonger" (squires/landowners). King Øystein built the first fishermen's cabins mentioned in the saga in 1120 AD. The nessekonger had the exclusive right to trade, buy, and dry fish. This was, in effect, a standardized collaboration protocol — a set of interfaces and roles that allowed thousands of independent actors to coordinate.
cross-agent-collaboration is a skill that defines similar protocols for Hermes agents. It covers:
- When to use multi-agent collaboration vs single-agent — the decision criteria
- delegate_task patterns for parallel work — including when to use orchestrator-worker vs peer-to-peer
- Cross-profile communication — how agents share state via files, memory, and handoff points
- The hermes-agent-handoffs pattern — shared filesystem handoff points for cross-machine coordination
- Coordination patterns: orchestrator-worker, peer-to-peer, pipeline
- Conflict resolution when agents disagree
- Session handoff protocols
The skill is practical, not theoretical. It includes code examples with actual Hermes CLI commands and delegate_task patterns that agents can use immediately.
Team Norddal: Fleet Pulse
The Inspiration
Norddal is a historic fjord-side settlement on Eidsfjorden. The traditional Norwegian fishing fleet operated as a coordinated system — boats communicated position, catch reports, and weather warnings. When the cod was running, every boat in the fleet knew it.
What We Built
fleet-pulse is a plugin that tracks session lifecycle and tool usage across all Hermes profiles. It hooks into on_session_start, on_session_end, and post_tool_call to maintain a real-time view of fleet activity. It exposes a /fleet-pulse slash command for instant status.
The accompanying fleet-ops skill teaches the agent how to interpret fleet data — when to consolidate work, when to distribute, and how to identify profiles that are overloaded or idle.
Team Røst: Context Bridge
The Inspiration
Røst is the southernmost island in the Lofoten archipelago — remote, exposed, and the site of Pietro Querini's 1432 shipwreck. Querini was isolated from everything he knew, yet he returned to Venice with a new connection — stockfish — that bridged two worlds. The context was lost, but the bridge was built.
What We Built
context-bridge is a plugin that preserves context across session resets. When an agent's session is reset (via /new or /reset), a snapshot of recent tool calls, key findings, and task state is saved. The agent can later restore this context using the /context-bridge slash command — listing, restoring, and clearing snapshots.
The accompanying skill-radar skill teaches the agent to maintain awareness of available skills — a discovery mechanism that prevents the "I didn't know I had that skill" problem.
Team Svolvær: Cost Watch
The Inspiration
Svolvær is the administrative center of the Lofoten archipelago — the largest town, the seat of government. Every shipment of dried cod was logged and accounted for. The Norwegian Parliament declared in 1816: "The fisheries are, and will hopefully always remain, Norway's most important gold mine." What is measured is managed.
What We Built
cost-watch is a plugin that tracks API costs per session and per profile using post_api_request hooks. It logs every token of agent work — the computational equivalent of logging every shipment of stockfish. The accompanying session-analytics skill teaches the agent to interpret cost patterns and optimize token usage.
The Sámi Eight Seasons: A More Granular View
The Sámi — the indigenous people of Sápmi, which spans northern Norway, Sweden, Finland, and Russia's Kola Peninsula — recognize eight seasons rather than four. The Sámi name for Lofoten is Lufuohttá (Northern Sámi).
The eight seasons reflect the subtle ecological transitions of the Arctic year:
- Giddis (early spring) — snow melts, days lengthen
- Giddal (spring) — calving season, birds return
- Giesse (early summer) — midnight sun begins
- Nässe (high summer) — continuous daylight, peak growth
- Tjaktjagiesse (late summer) — berries ripen, nights return
- Tjaktja (autumn) — harvest, colors change
- Skábma (early winter) — first snow, polar night approaches
- Galggo (deep winter) — polar night, reindeer herding
This more granular understanding of transitions maps directly to the skill gap analyzer's approach to skill categories. Just as four seasons is too coarse for the Arctic environment, four skill categories (devops, creative, research, productivity) may be too coarse for a skill library. The Sámi calendar's lesson: the granularity of your categories determines the resolution of your analysis.
The Sámi eight-season calendar is now threatened by climate change, which disrupts the timing and character of seasonal transitions. Similarly, skill categories that were appropriate at one point in an agent's lifecycle may become stale as the agent's work evolves. The skill gap analyzer's periodic scanning is designed to catch this drift.
Testing and Oppositional Assessment
Each team's work was tested with oppositional assessment — deliberately trying to break the artifacts:
Team Maelstrom (telemetry plugin): 41 tests covering registration, secret redaction, database operations, hook handlers, tool handlers, thread safety, and edge cases. 5 bugs found and fixed. All 41 pass.
Team Stockfish (skill gap analyzer): 10 tests covering registration, skill scanning, tool handler edge cases, and JSON contract verification. All 10 pass.
Teams Norddal, Røst, Svolvær: Each plugin was verified to register successfully with mock PluginContext, with hooks and commands properly declared.
Impact on Hermes and the Team
For the Hermes Community
These five artifacts address different facets of a common theme: making agent systems more self-aware and coordinated.
- Tool telemetry — agents can observe their own tool usage patterns
- Skill gap analysis — agents can assess their own capability coverage
- Cross-agent collaboration — agents can coordinate effectively across profiles
- Fleet pulse — operators can monitor all agents in real-time
- Context bridge — agents can recover context lost to session resets
- Cost watch — operators can track and optimize API costs
Together, these plugins and skills transform Hermes from a collection of individual agents into an observable, diagnosable, coordinated fleet.
For SMF Works
As the team that operates a multi-profile Hermes fleet (Dr J, Liam, Harry, Aiona, and others), these tools are immediately useful. The fleet monitoring, context preservation, and cost tracking capabilities address real operational pain points we've experienced.
For the Lofoten Connection
None of the Lofoten integrations are forced. Each team found a genuine structural analogy between a Lofoten phenomenon and the engineering problem they were solving:
- The Moskstraumen's invisible tidal forces → invisible tool usage patterns
- The stockfish trade's quality inspection → skill library quality analysis
- The rorbu collaboration protocol → cross-agent collaboration protocols
- The fishing fleet's coordination → fleet pulse monitoring
- Querini's bridge between isolation and connection → context bridging
- The administrative accounting of cod shipments → API cost tracking
- The Sámi eight-season calendar's granularity → skill category granularity
These aren't metaphors layered on top. They're structural analogies that informed design decisions.
All Artifacts
Everything is published at github.com/smfworks/hermes-lofoten-challenge:
| Team | Plugin | Skill | Tests |
|---|---|---|---|
| Maelstrom | tool-telemetry | agent-self-diagnostic | 41 pass |
| Stockfish | skill-gap-analyzer | cross-agent-collaboration | 10 pass |
| Norddal | fleet-pulse | fleet-ops | ✅ registers |
| Røst | context-bridge | skill-radar | ✅ registers |
| Svolvær | cost-watch | session-analytics | ✅ registers |
Closing
The Lofoten Islands have been continuously inhabited for over 7,000 years. The first people came during the Stone Age, making a living from fishing and hunting in a landscape covered with pine and birch forests, with deer, bears, reindeer, lynx, and beavers. The sea was full of fish, seals, and whales. Agriculture developed early — grain was harvested 4,000 years ago.
Over the millennia, the forests disappeared, the large land animals vanished, and the climate shifted. But the cod kept coming. Every winter, the skrei migrated from the Barents Sea to Lofoten to spawn, and every winter, the people were ready. The stockfish dried on the racks. The trade network connected Lofoten to Europe. The rorbu system coordinated thousands of fishermen. The Moskstraumen brought nutrients from the deep.
Agent systems are younger than Lofoten by 7,000 years. But the same principles apply: observe your environment, coordinate with your fleet, preserve your knowledge, account for your resources, and maintain your capabilities. The Lofoten Islanders learned these lessons over millennia. We're trying to build them into Hermes in a sprint.
Cross-References
- /blog/2026-08-12-lofoten-challenge-telemetry-and-diagnostics
- /blog/2026-08-11-hermes-pixel-office-pixel-art-agent-dashboard
- /blog/2026-08-08-vital-signs-collaboration-framework
- /blog/2026-08-07-ai-viking-saga-multi-agent-collaboration
- /blog/2026-08-06-agent-vital-signs-measured