note

This rune is part of @refrakt-md/plan. Install with npm install @refrakt-md/plan and add "@refrakt-md/plan" to the packages array in your refrakt.config.json.

Plan Activity

Renders a recent activity feed showing the most recently modified plan entities. Each entry displays the modification date, entity type, ID, status, and title. Status badges are color-coded using the plan status palette.

This is a self-closing aggregation rune — it produces a sentinel that the pipeline resolves with live entity data, sorted by file modification time.

Default (last 10 items)

{% plan-activity /%}
<section data-rune="plan-activity">
  <meta content="10" data-field="limit">
  <meta data-field="__plan-activity-sentinel" content="true">
  <div data-name="items"></div>
</section>
  1. workWORK-101readyContent model validation errors
  2. workWORK-102readyToken fallback chain for nested tints
  3. workWORK-103readyInteractive rune playground
  4. workWORK-104in-progressHeading level auto-detection for nested runes
  5. workWORK-105in-progressSnapshot tests for identity transform output
  6. workWORK-106doneAdd copy button to code fences
  7. workWORK-107draftTheme marketplace architecture
  8. workWORK-108reviewResponsive modifier system
  9. workRF-142readyImplement tint rune dark mode support
  10. workRF-215blockedAlignment system migration
<section class="rf-plan-activity" data-limit="10" data-rune="plan-activity" data-density="full">
  <ol data-name="items" class="rf-plan-activity__items rf-plan-activity__list">
    <li class="rf-plan-activity__entry" data-type="work" data-status="ready">
      <a class="rf-plan-activity__link" href="/runes/plan/examples">
        <time class="rf-plan-activity__date">2026-04-10</time>
        <span class="rf-plan-activity__type">work</span>
        <span class="rf-plan-activity__id">WORK-101</span>
        <span class="rf-plan-activity__status" data-status="ready">ready</span>
        <span class="rf-plan-activity__title">Content model validation errors</span>
      </a>
    </li>
    <li class="rf-plan-activity__entry" data-type="work" data-status="ready">
      <a class="rf-plan-activity__link" href="/runes/plan/examples">
        <time class="rf-plan-activity__date">2026-04-10</time>
        <span class="rf-plan-activity__type">work</span>
        <span class="rf-plan-activity__id">WORK-102</span>
        <span class="rf-plan-activity__status" data-status="ready">ready</span>
        <span class="rf-plan-activity__title">Token fallback chain for nested tints</span>
      </a>
    </li>
    <li class="rf-plan-activity__entry" data-type="work" data-status="ready">
      <a class="rf-plan-activity__link" href="/runes/plan/examples">
        <time class="rf-plan-activity__date">2026-04-10</time>
        <span class="rf-plan-activity__type">work</span>
        <span class="rf-plan-activity__id">WORK-103</span>
        <span class="rf-plan-activity__status" data-status="ready">ready</span>
        <span class="rf-plan-activity__title">Interactive rune playground</span>
      </a>
    </li>
    <li class="rf-plan-activity__entry" data-type="work" data-status="in-progress">
      <a class="rf-plan-activity__link" href="/runes/plan/examples">
        <time class="rf-plan-activity__date">2026-04-10</time>
        <span class="rf-plan-activity__type">work</span>
        <span class="rf-plan-activity__id">WORK-104</span>
        <span class="rf-plan-activity__status" data-status="in-progress">in-progress</span>
        <span class="rf-plan-activity__title">Heading level auto-detection for nested runes</span>
      </a>
    </li>
    <li class="rf-plan-activity__entry" data-type="work" data-status="in-progress">
      <a class="rf-plan-activity__link" href="/runes/plan/examples">
        <time class="rf-plan-activity__date">2026-04-10</time>
        <span class="rf-plan-activity__type">work</span>
        <span class="rf-plan-activity__id">WORK-105</span>
        <span class="rf-plan-activity__status" data-status="in-progress">in-progress</span>
        <span class="rf-plan-activity__title">Snapshot tests for identity transform output</span>
      </a>
    </li>
    <li class="rf-plan-activity__entry" data-type="work" data-status="done">
      <a class="rf-plan-activity__link" href="/runes/plan/examples">
        <time class="rf-plan-activity__date">2026-04-10</time>
        <span class="rf-plan-activity__type">work</span>
        <span class="rf-plan-activity__id">WORK-106</span>
        <span class="rf-plan-activity__status" data-status="done">done</span>
        <span class="rf-plan-activity__title">Add copy button to code fences</span>
      </a>
    </li>
    <li class="rf-plan-activity__entry" data-type="work" data-status="draft">
      <a class="rf-plan-activity__link" href="/runes/plan/examples">
        <time class="rf-plan-activity__date">2026-04-10</time>
        <span class="rf-plan-activity__type">work</span>
        <span class="rf-plan-activity__id">WORK-107</span>
        <span class="rf-plan-activity__status" data-status="draft">draft</span>
        <span class="rf-plan-activity__title">Theme marketplace architecture</span>
      </a>
    </li>
    <li class="rf-plan-activity__entry" data-type="work" data-status="review">
      <a class="rf-plan-activity__link" href="/runes/plan/examples">
        <time class="rf-plan-activity__date">2026-04-10</time>
        <span class="rf-plan-activity__type">work</span>
        <span class="rf-plan-activity__id">WORK-108</span>
        <span class="rf-plan-activity__status" data-status="review">review</span>
        <span class="rf-plan-activity__title">Responsive modifier system</span>
      </a>
    </li>
    <li class="rf-plan-activity__entry" data-type="work" data-status="ready">
      <a class="rf-plan-activity__link" href="/runes/plan/work">
        <time class="rf-plan-activity__date">2026-04-10</time>
        <span class="rf-plan-activity__type">work</span>
        <span class="rf-plan-activity__id">RF-142</span>
        <span class="rf-plan-activity__status" data-status="ready">ready</span>
        <span class="rf-plan-activity__title">Implement tint rune dark mode support</span>
      </a>
    </li>
    <li class="rf-plan-activity__entry" data-type="work" data-status="blocked">
      <a class="rf-plan-activity__link" href="/runes/plan/work">
        <time class="rf-plan-activity__date">2026-04-10</time>
        <span class="rf-plan-activity__type">work</span>
        <span class="rf-plan-activity__id">RF-215</span>
        <span class="rf-plan-activity__status" data-status="blocked">blocked</span>
        <span class="rf-plan-activity__title">Alignment system migration</span>
      </a>
    </li>
  </ol>
</section>

Custom limit

Show fewer or more recent items.

{% plan-activity limit="5" /%}
<section data-rune="plan-activity">
  <meta content="5" data-field="limit">
  <meta data-field="__plan-activity-sentinel" content="true">
  <div data-name="items"></div>
</section>
  1. workWORK-101readyContent model validation errors
  2. workWORK-102readyToken fallback chain for nested tints
  3. workWORK-103readyInteractive rune playground
  4. workWORK-104in-progressHeading level auto-detection for nested runes
  5. workWORK-105in-progressSnapshot tests for identity transform output
<section class="rf-plan-activity" data-limit="5" data-rune="plan-activity" data-density="full">
  <ol data-name="items" class="rf-plan-activity__items rf-plan-activity__list">
    <li class="rf-plan-activity__entry" data-type="work" data-status="ready">
      <a class="rf-plan-activity__link" href="/runes/plan/examples">
        <time class="rf-plan-activity__date">2026-04-10</time>
        <span class="rf-plan-activity__type">work</span>
        <span class="rf-plan-activity__id">WORK-101</span>
        <span class="rf-plan-activity__status" data-status="ready">ready</span>
        <span class="rf-plan-activity__title">Content model validation errors</span>
      </a>
    </li>
    <li class="rf-plan-activity__entry" data-type="work" data-status="ready">
      <a class="rf-plan-activity__link" href="/runes/plan/examples">
        <time class="rf-plan-activity__date">2026-04-10</time>
        <span class="rf-plan-activity__type">work</span>
        <span class="rf-plan-activity__id">WORK-102</span>
        <span class="rf-plan-activity__status" data-status="ready">ready</span>
        <span class="rf-plan-activity__title">Token fallback chain for nested tints</span>
      </a>
    </li>
    <li class="rf-plan-activity__entry" data-type="work" data-status="ready">
      <a class="rf-plan-activity__link" href="/runes/plan/examples">
        <time class="rf-plan-activity__date">2026-04-10</time>
        <span class="rf-plan-activity__type">work</span>
        <span class="rf-plan-activity__id">WORK-103</span>
        <span class="rf-plan-activity__status" data-status="ready">ready</span>
        <span class="rf-plan-activity__title">Interactive rune playground</span>
      </a>
    </li>
    <li class="rf-plan-activity__entry" data-type="work" data-status="in-progress">
      <a class="rf-plan-activity__link" href="/runes/plan/examples">
        <time class="rf-plan-activity__date">2026-04-10</time>
        <span class="rf-plan-activity__type">work</span>
        <span class="rf-plan-activity__id">WORK-104</span>
        <span class="rf-plan-activity__status" data-status="in-progress">in-progress</span>
        <span class="rf-plan-activity__title">Heading level auto-detection for nested runes</span>
      </a>
    </li>
    <li class="rf-plan-activity__entry" data-type="work" data-status="in-progress">
      <a class="rf-plan-activity__link" href="/runes/plan/examples">
        <time class="rf-plan-activity__date">2026-04-10</time>
        <span class="rf-plan-activity__type">work</span>
        <span class="rf-plan-activity__id">WORK-105</span>
        <span class="rf-plan-activity__status" data-status="in-progress">in-progress</span>
        <span class="rf-plan-activity__title">Snapshot tests for identity transform output</span>
      </a>
    </li>
  </ol>
</section>

Attributes

AttributeTypeDefaultDescription
limitnumber10Maximum number of recent items to show

Output structure

The rune resolves to an ordered list of entries, each containing:

  • Modification date (<time> element, ISO date format)
  • Entity type label (work, bug, spec, decision)
  • Entity ID
  • Status badge with [data-status] color-coding
  • Entity title

Items are sorted by file modification time, most recent first. Only entities with available modification data are included. Modification dates are sourced from the shared content pipeline's $file.modified variable, which uses git commit timestamps with a filesystem stat fallback.