fern-mycelium

command module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 6, 2025 License: Apache-2.0 Imports: 1 Imported by: 0

README ΒΆ

fern-mycelium

CI Go Report Card codecov License Release OpenSSF Scorecard

The intelligent context layer beneath your test ecosystem.

fern-mycelium is an open-source, extensible context engine that augments your test reporting system with rich insights, test intelligence, and AI agent integration via the Model Context Protocol (MCP).

It sits on top of fern-reporter and collects structured, high-fidelity context from test executionsβ€”initially from Ginkgo (Go) and JUnit (Java) via compatible adaptersβ€”and serves it through GraphQL and RESTful APIs to power analytics dashboards, developer feedback loops, and autonomous test agents.


🌱 Why "Mycelium"?

In nature, mycelium is the underground neural network of fungal threads that enables communication and resource sharing between plants. Similarly, fern-mycelium is the substrate of test intelligence that:

  • Connects test executions with context
  • Enables analysis, pattern detection, and historical insight
  • Powers agents that observe, learn, and assist

πŸš€ Project Goals

  1. Expose test execution context via MCP

    • Normalize data from Ginkgo, JUnit, and other adapters
    • Serve historical and real-time query interfaces
  2. Provide a foundation for intelligent agents

    • Agents like Test Coach, Postmortem Generator, and Flaky Detector
  3. Drive actionable test analytics

    • Flakiness scores, latency trends, and test evolution metrics
  4. Keep it open and adaptable

    • Not bound to Ginkgo alone; built for plugin-style test source integration

πŸ”Ή Initial Capabilities

  • Historical context tracking for test runs
  • Flaky test identification framework (score calculation)
  • Latency and performance metrics
  • MCP-compatible GraphQL and REST endpoints
  • Basic agents (feedback suggester, postmortem generator)
  • Dashboard UI (Fern-UI extension planned)

πŸ”„ Roadmap

Phase Focus Description
1 Foundation Schema extensions, MCP APIs, Ginkgo+JUnit adapters
2 Analytics Flakiness scores, latency trends, test confidence metrics
3 Agents Test Coach, Postmortem Generator, Prioritizer
4 Dev Experience Slack/GitHub feedback bots, VSCode plugins
5 Extensibility Plugin system, Mycelium SDK, Agent templates

🧠 Planned Agent Capabilities

fern-mycelium is designed to power AI agents that help developers and QA teams reason about their tests and systems with minimal manual intervention. These agents are built to be pluggable and context-aware through the Model Context Protocol.

Agent Purpose
Test Coach Reviews historical test data to suggest improvements, isolate brittle specs, and guide refactoring.
Postmortem Generator Automatically drafts failure reports and incident summaries based on test runs and historical context.
Predictive Prioritizer Reorders test execution based on failure likelihood, impact, and recent code changes.
Flakiness Detector Flags intermittent test behavior, surfaces patterns, and scores test reliability.
Feedback Assistant Leaves contextual PR comments or Slack messages when tests fail, enriched with test history and runtime conditions.
QA Coach (future) Tracks test coverage quality trends, team-level reliability, and provides feedback loops for test effectiveness.

These agents will be accessible through APIs and optionally embedded into tools like GitHub Actions, CI/CD pipelines, or IDE extensions.


πŸ“Š Architecture (High Level)

                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚     Test Suites (CI/CD)      β”‚
                    β”‚ Ginkgo | JUnit | Pytest (TBD)β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 ↓
                       [ fern-ginkgo-client ]
                       [ fern-junit-adapter ]
                                 ↓
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚      fern-reporter DB        β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 ↓
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚       fern-mycelium API      β”‚
                    β”‚  - GraphQL/REST (MCP)        β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 ↓
      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
      β”‚    Fern-UI Dashboards        β”‚      Autonomous Test Agents  β”‚
      β”‚  (Latency, Flake Maps, etc) β”‚  (Test Coach, Postmortem AI) β”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🚧 Under Construction

This project is in active early-stage development. We're currently:

  • Validating schema patterns across test types
  • Exposing test context over MCP
  • Building the first generation of agents and queries

We welcome ideas, feedback, and early contributorsβ€”whether you’re working with Ginkgo, JUnit, or other test frameworks.


πŸ›Œ Contributing

  • See CONTRIBUTING.md (coming soon)
  • Open discussions in Issues
  • Suggest test adapters or agents you'd like to build!

🌐 License

Apache 2.0


πŸ›οΈ Questions?

  • Want to integrate a new test adapter?
  • Building a custom agent?
  • Interested in shaping the Model Context Protocol?

Start a discussion or open an issue β€” we’d love to hear from you.

Documentation ΒΆ

Overview ΒΆ

Copyright Β© 2025 NAME HERE <EMAIL ADDRESS>

Directories ΒΆ

Path Synopsis
internal
db
gql
pkg
repo/fakes
Package fakes contains test doubles generated by counterfeiter.
Package fakes contains test doubles generated by counterfeiter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL