diff --git a/howto/release/repositories/ci-management/misc.rst b/howto/release/repositories/ci-management/misc.rst
new file mode 100644
index 0000000..59b6247
--- /dev/null
+++ b/howto/release/repositories/ci-management/misc.rst
@@ -0,0 +1,62 @@
+Misc Todo Items
+===============
+
+- Baseline build
+
+  - Update copyright notices :ref:`Release Task Copyright`
+
+- Pre-branch build
+  - make help
+  - make lint
+
+- Build
+
+  - make help
+  - make sterile
+  - make lint
+  - make build
+  - make test
+
+## Post editing on the release branch:
+
+- Update VERSION file to contain X.Y.{1+Z}
+- Update .gitreview, defaultbranch=votlha-X.Y
+
+- `bbsim-tests.groovy <https://gerrit.opencord.org/plugins/gitiles/ci-management/+/refs/heads/master/jjb/pipeline/voltha/bbsim-tests.groovy#35>`_
+
+.. code:: groovy
+
+   // -----------------------------------------------------------------------
+   // Intent: Return branch name for the script.  A hardcoded value is used
+   //   as a guarantee release jobs are running in an expected sandbox.
+   // -----------------------------------------------------------------------
+   String branchName()
+   {
+       String br = 'master'  // <<----** Change to release branch
+
+       // "${branch}" is assigned by jenkins
+       if (br != branch)
+       {
+           String err = [
+               'ERROR: Detected invalid branch',
+               "(expected=[${br}] != found=[${branch}])"
+           ].join(' ')
+           throw new Exception(err) // groovylint-disable-line ThrowException
+       }
+       return (br)
+   }
+
+## TODO
+
+- Tools bbsim and voltctl are versioned for release.
+- Track down which test scripts contain hardcoded versions for checkout.
+
+  - Command use is all over the place and not all are being frozen.
+  - Abstract this into makefile targets (~voltctl) or a central script
+    that simply returns version string for a package.  A standalone entity
+    will simplify maintenance and can be generated/autoamtically frozen
+    on a branch at release time.
+
+- Consider tool versioning in general.  Planning for tool upgrades helps
+  minimize unplanned breakage.
+
diff --git a/howto/release/repositories/ci-management/release.rst b/howto/release/repositories/ci-management/release.rst
new file mode 100644
index 0000000..f90440e
--- /dev/null
+++ b/howto/release/repositories/ci-management/release.rst
@@ -0,0 +1,82 @@
+.. _Release Repository ci-management:
+
+Repository: ci-management
+=========================
+
+- `repo:ci-management <https://gerrit.opencord.org/plugins/gitiles/ci-management>`_
+- First repsitory to release.
+- One of only three repositories to branch-then-tag.
+- Dependency for releasing all other repositories, test suites are
+  launched from release branch=votha-X.Y.
+
+Release: {Tag,Branch}ing script
+-------------------------------
+`repo:voltha-release <https://gerrit.opencord.org/plugins/gitiles/voltha-release>`_ :: `bttb.sh <https://gerrit.opencord.org/plugins/gitiles/voltha-release/+/refs/heads/master/bttb.sh>`_ (branch-tag/or/tag-branch)
+
+The bttb.sh script will perform several tasks to release a repository.
+
+- Clone a named sandbox.
+- Identify release activity by repository name: tag-branch or branch-tag.
+
+## Identify release activity by repository (TagBranch-or-BranchTag)
+
+.. code :: python
+
+  # Identify by repository name then tag-branch or branch-tag:
+  if repo in ['ci-management', 'voltha-helm-charts', 'voltha-system-tests']:
+      create_branch voltha-X.Y
+      create_tag attached to branch=voltha-X.Y
+  else:
+      create_tag 2.12.0 OR v2.12.0
+      create_branch voltha-2.12 attached to tag=2.12.0
+
+   % git push {tags,branches}
+
+## Create a release dev branch for edits
+
+.. code-block:: shell-session
+   :caption: Identify release activity by repository
+
+   % git clone -b dev-joey voltha-2.12  (or origin/voltha-2.12)
+
+   # Edit VERSION file: X.Y.{1+Z}
+   % echo 'X.Y.{1+Z}' > VERSION
+
+   # Edit .gitreview: defaultbranch=voltha-X.Y
+   % grep -v 'defaultbranch' .gitreview > .gitreview.tmp
+   % echo "defaultbranch=voltha-2.12" >> .gitreview.tmp
+   % mv -f .gitreview.tmp .gitreview
+
+## Command usage: bttb.sh
+
+.. code-block:: shell-session
+   :caption: Release tagging and branching
+
+   % git clone ssh://gerrit.opencord.org:29418/voltha-release
+   % cd voltha-release
+
+   % ./bttb.sh --help
+
+   declare -a args=()
+
+   args+=('--clean')                  # Remove existing checkouts
+   args+=('--edit')                   # Edit VERISON, commit message, etc
+
+   args+=('--[no-]gerrit')            # View repo branch & tags early
+   args+=('--sandbox' './sandbox')    # git clone target directory
+
+   args+=('--repo' 'ci-management')
+   args+=('--version' '2.12')         # votlha-2.12 release
+
+   args+=('--jira' 'VOL-5020') # Jira ticket: release the repository
+   args+=('--jira' 'VOL-5021') # addendum
+   args+=('--jira' 'VOL-5022')
+
+   # Generate branch={master,voltha-2.12} commit messages
+   args+=('--commit-message-dir' "${PWD}/sandbox/messages")
+
+   % ./bttb.sh "${args[@]}" 2>&1 | tee ci-management.log
+
+See Also
+--------
+https://docs.voltha.org/master/release_notes/release_process.html
diff --git a/howto/release/repositories/voltha-docs/dependencies.rst b/howto/release/repositories/voltha-docs/dependencies.rst
new file mode 100644
index 0000000..e3b0fa6
--- /dev/null
+++ b/howto/release/repositories/voltha-docs/dependencies.rst
@@ -0,0 +1,3 @@
+Release Dependencies
+====================
+
diff --git a/howto/release/repositories/voltha-docs/index.rst b/howto/release/repositories/voltha-docs/index.rst
new file mode 100644
index 0000000..2a7f02b
--- /dev/null
+++ b/howto/release/repositories/voltha-docs/index.rst
@@ -0,0 +1,9 @@
+Repository: voltha-lib-go
+=========================
+
+.. toctree::
+   :maxdepth: 1
+
+   dependencies
+   misc
+   release
diff --git a/howto/release/repositories/voltha-docs/misc.rst b/howto/release/repositories/voltha-docs/misc.rst
new file mode 100644
index 0000000..6f2c12e
--- /dev/null
+++ b/howto/release/repositories/voltha-docs/misc.rst
@@ -0,0 +1,13 @@
+Misc Todo Items
+===============
+
+- Baseline build
+
+  - Update copyright notices :ref:`Release Task Copyright`
+
+- Pre-branch build
+
+  - make help
+  - make lint       # targets: lintcheck
+  - make reload
+  - make test       # interactive viewing
diff --git a/howto/release/repositories/voltha-lib-go/dependencies.rst b/howto/release/repositories/voltha-lib-go/dependencies.rst
new file mode 100644
index 0000000..e1775f0
--- /dev/null
+++ b/howto/release/repositories/voltha-lib-go/dependencies.rst
@@ -0,0 +1,4 @@
+Release Dependencies
+====================
+
+- :ref:`_Release Repository ci-management`
diff --git a/howto/release/repositories/voltha-lib-go/deps.rst b/howto/release/repositories/voltha-lib-go/deps.rst
new file mode 100644
index 0000000..e1775f0
--- /dev/null
+++ b/howto/release/repositories/voltha-lib-go/deps.rst
@@ -0,0 +1,4 @@
+Release Dependencies
+====================
+
+- :ref:`_Release Repository ci-management`
diff --git a/howto/release/repositories/voltha-lib-go/index.rst b/howto/release/repositories/voltha-lib-go/index.rst
index 0702669..2a7f02b 100644
--- a/howto/release/repositories/voltha-lib-go/index.rst
+++ b/howto/release/repositories/voltha-lib-go/index.rst
@@ -4,3 +4,6 @@
 .. toctree::
    :maxdepth: 1
 
+   dependencies
+   misc
+   release
diff --git a/howto/release/repositories/voltha-lib-go/misc.rst b/howto/release/repositories/voltha-lib-go/misc.rst
index 9658441..7a106fe 100644
--- a/howto/release/repositories/voltha-lib-go/misc.rst
+++ b/howto/release/repositories/voltha-lib-go/misc.rst
@@ -7,6 +7,7 @@
   - Golang syntax formatting :ref:`Release Task Golang Syntax`
 
 - Pre-branch build
+
   - Update module versions for voltha/onos components
   - make mod-update
 
