set up gitignore so that it ignores unnecessary files
Add a content package with a sample site
Add an SCF skin to style SCF components to match your site's look and feel

Add a style sheet the overrides the default SCF styles for those
aspects of the components that you want to change. The SCF selectors
are well namespaced, descriptive and modular to make necessary changes
easily.
Add the skin to your site design so that it gets applied on your pages.
Update the version to reflect new changes to the package
Add an Ideation component that extends the AEM Communities Forum - HBS component

Create ideation forum, ideation topic (idea), ideation post (replies)
components and set them up so that their sling:resourceSuperType
property points to the corresponding component in the OOTB AEM
Communities forum components.
Copy over the templates from the forum components, this will give us a
base to build the new ideation component UI off of. You only need to
copy over a template if you think you might have to make some changes
to it, if not, Sling will automatically fall back to the super
component and pick up an appropriate template.
Make markup changes to the hbs templates so that the forum is
customized enough to start to look like an ideation forum.
Add an "Ideas" page to the sample site and include the new Ideation component on it.
Configure the forum design so that ideation operations create UGC resources of types ideation topics and ideation posts
Update the version to reflect new changes to the package
Add voting component to ideas, remove voting from replies

Use the SCF handlebars "include" helper to include components inside
other components.
Update the version to reflect new changes to the package
Update markup so that SCF knows which component's JS models and views to hook up

Edit the data-scf-component attribute to let SCF JS Framework know
which components JS model and view code you want to use for the
component. This should ideally match the resource type of the resource
being rendered.
Add client libs for ideation and also set up the SCF framework to use forum's model and view for ideation component

The client lib depends on cq.social.hbs.forum to derive any OOTB forum
JS functionality and objects
Use SCF.registerComponent to register the new ideation resource types
with forum's model and view JS objects.
Add a publicly accessible to /etc/ so that your new client lib can be accessed by users on your publish instance
Update the client lib to use on the site to point to the new client lib
Add some tags and tag namespaces for ideas

The Acme tag namespace adds a list of tags that can be used to tag
ideas so that they are categorized.
The acmeideas tag namespace adds a list of tags that can be used to
identify the current status of an idea.
Add an SCF OperationExtension that automatically sets the status of a any newly create idea to "new"

Add an OSGi bundle that will house all custom server side business
logic.
Add an OperationExtension that hooks into the ForumOperation.CREATE
operation.
Add logic to detect new ideas and automatically inject a tag property
of "acmeideas:new" so that the "new" tag is applied to each idea.
Add a reactor pom that can build the package and the bundle
Enable tagging on the ideation forum
Update the version to reflect new changes to the package
Add an SCF Operation endpoint to set the status of an operation

Implement an AbstractSocialOperation to create an endpoint that listens
for operations of type "social:setIdeaStatus"
Use the ForumOperations SCF Operations Service to update an idea with
the requested status
Return a SocialOperationResult that contains the SocialComponent of the
idea with appropriate status code. The SocailComponent is translated to
JSON as part of the response automatically by SCF