<?xml version="1.0" encoding="UTF-8"?>
<spec xmlns="https://vibevm.org/spec/1">
  <title id="root">Package manifest</title>
  <status stage="doc" state="work" audience="user,dev"/>
  <p p="1">What `org.vibevm.world/git-practices@1.0.0` declares about itself. Everything on this page is the package's own manifest, read and shown — nothing here is an opinion about the package.</p>
  <table p="2">
    <tr>
      <td>Field</td>
      <td>Value</td>
    </tr>
    <tr>
      <td>Coordinate</td>
      <td>`org.vibevm.world/git-practices`</td>
    </tr>
    <tr>
      <td>Version</td>
      <td>`1.0.0`</td>
    </tr>
    <tr>
      <td>Kind</td>
      <td>`flow`</td>
    </tr>
    <tr>
      <td>Licence</td>
      <td>UPL-1.0</td>
    </tr>
    <tr>
      <td>Summary</td>
      <td>Git practices — the family aggregator for a repository's commit-and-push discipline: one install pulls the message format (conventional-commits) and the atomicity discipline (atomic-commits), and — as they land — human-authored attribution and commit autonomy. Content-minimal (PROP-028): no boot snippet of its own; each member ships theirs.</td>
    </tr>
    <tr>
      <td>Authors</td>
      <td>Oleg Chirukhin</td>
    </tr>
    <tr>
      <td>Keywords</td>
      <td>git, commits, discipline, family, aggregator</td>
    </tr>
  </table>
  <section id="dependants" title="Depended on by">
    <p p="3">Packages that require this one, as the catalog holds them now.</p>
    <table p="4">
      <tr>
        <td>Standing</td>
        <td>Title</td>
        <td>Coordinate</td>
        <td>Publisher and language</td>
      </tr>
      <tr>
        <td>community</td>
        <td>redbook</td>
        <td>`org.vibevm.world/redbook@1.0.0`</td>
        <td>org.vibevm.world · en</td>
      </tr>
    </table>
  </section>
  <section id="the-manifest" title="The manifest">
    <fence lang="toml" p="5">[package]
name = "git-practices"
group = "org.vibevm.world"
kind = "flow"
version = "1.0.0"
epoch = 1
format = "normal"
authors = ["Oleg Chirukhin"]
license = "UPL-1.0"
description = "Git practices — the family aggregator for a repository's commit-and-push discipline: one install pulls the message format (conventional-commits) and the atomicity discipline (atomic-commits), and — as they land — human-authored attribution and commit autonomy. Content-minimal (PROP-028): no boot snippet of its own; each member ships theirs."
keywords = ["git", "commits", "discipline", "family", "aggregator"]

[compatibility]
min_vibe_version = "0.1.0"
requires_kinds = []

# The family aggregator (PROP-028): exact pins hold the members to one set.
# Each member is its own installable flow with its own boot snippet; this
# umbrella carries no content of its own. Grows to include human-authored
# attribution (§12.1) and commit autonomy (§12.4) as those members land.
[requires.packages]
# These are a repository's non-negotiable commit-and-push rules. Each member
# self-suggests the `inline` priority lane in its own [boot_snippet], so its text
# lands verbatim in spec/boot/INLINE.md (read first) — an aggregator-declared link
# does not yet propagate to a transitive member (see neworder2/memory/BACKLOG.md
# B1, `transitive-inline`); until it does, the members carry the suggestion.
"flow:org.vibevm.world/git-conventional-commits" = "=1.0.0"
"flow:org.vibevm.world/git-atomic-commits" = "=1.0.0"
"flow:org.vibevm.world/git-autonomy" = "=1.0.0"
# Human-authored attribution (§12.1) — the existing attribution-policy flow IS
# this posture (human-authored default + documented disclosure alternative);
# reused here rather than duplicated under a new name.
"flow:org.vibevm.world/git-attribution-policy" = "=1.0.0"
</fence>
  </section>
</spec>
