Spec - nomlab/octaccord GitHub Wiki
#+TITLE: Spec
#+AUTHOR:
#+EMAIL:
#+DATE:
#+OPTIONS: H:3 num:2 toc:nil
#+OPTIONS: ^:nil @:t \n:nil ::t |:t f:t TeX:t
#+OPTIONS: skip:nil
#+OPTIONS: author:t
#+OPTIONS: email:nil
#+OPTIONS: creator:nil
#+OPTIONS: timestamp:nil
#+OPTIONS: timestamps:nil
#+OPTIONS: d:nil
#+OPTIONS: tags:t
#+TEXT:
#+DESCRIPTION:
#+KEYWORDS:
#+LANGUAGE: ja
#+STARTUP: odd
#+LATEX_CLASS: jsarticle
#+LATEX_CLASS_OPTIONS: [a4j]
# #+LATEX_HEADER: \usepackage{plain-article}
# #+LATEX_HEADER: \renewcommand\maketitle{}
# #+LATEX_HEADER: \pagestyle{empty}
# #+LaTeX: \thispagestyle{empty}
* PBL
** PBL Issue 一覧を取得して PBL Wiki Page を自動作成する
*** STORY
*** SYNOPSIS
#+BEGIN_SRC shell-script
octaccord backlog nomlab/LastNote --search='label:PBL' --replace Product-Backlog.md
#+END_SRC
*** DESCRIPTION
Product-Backlog.md 中の
#+BEGIN_EXAMPLE
<!-- begin:octaccord backlog -->
...
<!-- end:octaccord backlog -->
#+END_EXAMPLE
で囲まれた部分に,プロダクトバックログのテーブルを埋める.書式は,以下の通り.
| No. | Title | Story | Demo | Cost |
|------+----------------+-------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------|
| #100 | 招待機能の実装 | メンバとして,ML にメールを投げることでイベントの出欠を簡単に取りたい.それは,イベントの開催を活発にしたいからである. | gn メーリングリストに送信する際にアドレス末尾に「+inv」と追記して送信すると,LastNote 上に対応するイベント参加者一覧のページが作成される.メンバに届いたメール本文には,イベント出欠を返答するリンクが付いている.出席/欠席のどちらかをクリックすると,出欠一覧ページに出欠状況として名前が反映される. | 5 |
+ No :: PBL Issue の番号 =[#100](../issues/100)= のように Issue へのリンクにする.
+ Title :: PBL Issue のタイトル
+ Story :: PBL Issue の記述中の =# Story= 以下の記述を抜き出してきたもの
+ Demo :: PBL Issue の記述中の =# Demo= 以下の記述を抜き出してきたもの
+ Cost :: 実装するのにかかるコストを示す整数(空欄でよい)
ただし,既にテーブルがある場合は,以下の状態を保存する
+ No. と Cost の値
+ ソート順
既存のテーブルになかった新規の PBL Issue は,末尾に追記する.
** 指定された PBL Issue の内容から Task Issue を作成する
*** STORY
*** SYNOPSIS
#+BEGIN_SRC shell-script
octaccord pbl-to-task nomlab/LastNote --add-label=Itr0094 100 111 ...
#+END_SRC
*** DESCRIPTION
1) 引数の各 PBL Issue について
2) description か comment から =# Tasks= 以下の項目を抜き出す
(末尾の comment の =# Tasks= を優先する)
3) 子要素である各 =## title...= 項目を Task Issue として新規作成する
4) Task Issue の本文中に,元となる PBL Issue への参照を入れる.(#100 のように)
5) 元となる PBL Issue の =# Task= 以下の =## title...= 部分を =## #150 title...= のように置き換える.
6) 同じ操作を繰り返しても Task Issue を新規作成しないように,
=## title...= の =title= 部分が =#番号= で始まる場合は,無視する
7) 作成した Task Issue には,=-add-label= で指定された label を付ける
** Floating Issue を発見してラベルを付ける
*** STORY
+ スクラムマスターが,重要なラベルが付いていない Task Issue にラベルを付けたい.
それは,棚卸すべき Task Issue が何であるかを素早く確認したいからである.
*** SYNOPSIS
#+BEGIN_SRC shell-script
octaccord update-label nomlab/LastNote --search='!label:/^[A-Z]/' --label=Floating
#+END_SRC
*** DESCRIPTION
1) 全ての Issue について, =--search= 式にマッチした Issue のみに
=--label= で指定されたラベルを付与する.
2) つまり,マッチしなかった Issue からは,ラベルをはがすことも同時に実行する
** Wiki Page 中の Issue 番号に反応して最新の情報を付与する
*** STORY
*** SYNOPSIS
#+BEGIN_SRC shell-script
octaccord embed-issue-info nomlab/LastNote --replace Itr0094.md
#+END_SRC
*** DESCRIPTION
Wiki のページ中に現れる =#番号= の記述をスキャンして,
リンクやタイトルを付与する.
+ =#番号= の記述にリンクを付与して, =[#番号](../issues/番号)= の記述に置き換える
+ 行頭の =*= や =#= の直後に来る場合は後ろに Issue のタイトルも追加する
この機能によって,Wiki 中に
#+BEGIN_EXAMPLE
,* #150
#+END_EXAMPLE
とだけ書いておけば,リンクとタイトルが付いた記述に置き換えられる.
#+BEGIN_EXAMPLE
,* =[#番号](../issues/番号)= カレンダをまたぐリカーレンスを作成できないようにする
#+END_EXAMPLE
** 検索式に一致する Issue を列挙する (要検討)
*** SYNOPSIS
#+BEGIN_SRC shell-script
octaccord issues nomlab/LastNote --search="!label:"
#+END_SRC
*** DESCRIPTION
+ ある時刻の範囲でアップデートがあった
+ ある時刻の範囲で作成された
+ あるラベルにマッチする/しない
+ オープン/クローズの別